QueryAppService.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. using System.Collections.Generic;
  2. using System.Data.Entity;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using System.Web.Mvc;
  6. using Abp.Application.Services.Dto;
  7. using Abp.Auditing;
  8. using Abp.Authorization;
  9. using Abp.Domain.Repositories;
  10. using Abp.Runtime.Caching;
  11. using IwbZero.AppServiceBase;
  12. using IwbZero.ToolCommon.StringModel;
  13. using WeEngine.Enum;
  14. using WePlatform.Authorization.Users;
  15. using WePlatform.BaseSystem.Users.Dto;
  16. using WePlatform.Configuration;
  17. using WePlatform.WeBase;
  18. using WePlatform.WeLib;
  19. using WePlatform.WeLib.Guide.Dto;
  20. using WePlatform.WeLib.Knowledge;
  21. using WePlatform.WeLib.Knowledge.Plan.Dto;
  22. using WePlatform.WeLib.Scene.Dto;
  23. using WePlatform.WeLib.SceneFlow.Dto;
  24. using WePlatform.WeModel;
  25. namespace WePlatform.BaseSystem.Query
  26. {
  27. [AbpAuthorize, DisableAuditing]
  28. public class QueryAppService : IwbAppServiceBase, IQueryAppService
  29. {
  30. #region 仓储
  31. public QueryAppService(
  32. IRepository<User, long> userRepository,
  33. ICacheManager cacheManager, IRepository<SceneCategoryInfo, string> sceneCategoryRepository, IRepository<EngineInfo, string> engineRepository, IRepository<EngineModelInfo, string> engineModelRepository, IRepository<BehaviorInfo, string> behaviorRepository, IRepository<BehaviorRoleInfo, string> behaviorRoleRepository, IRepository<SceneInfo, string> sceneRepository, IRepository<GuideInfo, string> guideRepository, IRepository<KnowledgeInfo, string> knowledgeRepository, IRepository<SceneFlowInfo, string> sceneFlowRepository, IRepository<EngineComponentInfo, string> componentRepository, IRepository<EnvironResourceInfo, string> environRepository, IRepository<EvalModelInfo, string> evalModelRepository, IRepository<RoleRelateCategoryInfo> roleCategoryRepository, IRepository<EmergencyPlanInfo, string> planRepository, IRepository<EvalTargetInfo, string> evalTargetRepository)
  34. {
  35. UserRepository = userRepository;
  36. SceneCategoryRepository = sceneCategoryRepository;
  37. EngineRepository = engineRepository;
  38. EngineModelRepository = engineModelRepository;
  39. BehaviorRepository = behaviorRepository;
  40. BehaviorRoleRepository = behaviorRoleRepository;
  41. SceneRepository = sceneRepository;
  42. GuideRepository = guideRepository;
  43. KnowledgeRepository = knowledgeRepository;
  44. SceneFlowRepository = sceneFlowRepository;
  45. ComponentRepository = componentRepository;
  46. EnvironRepository = environRepository;
  47. EvalModelRepository = evalModelRepository;
  48. RoleCategoryRepository = roleCategoryRepository;
  49. PlanRepository = planRepository;
  50. EvalTargetRepository = evalTargetRepository;
  51. CacheManager = cacheManager;
  52. }
  53. protected IRepository<User, long> UserRepository { get; }
  54. protected IRepository<SceneCategoryInfo, string> SceneCategoryRepository { get; }
  55. protected IRepository<RoleRelateCategoryInfo> RoleCategoryRepository { get; }
  56. protected IRepository<BehaviorInfo, string> BehaviorRepository { get; }
  57. protected IRepository<BehaviorRoleInfo, string> BehaviorRoleRepository { get; }
  58. protected IRepository<SceneInfo, string> SceneRepository { get; }
  59. protected IRepository<SceneFlowInfo, string> SceneFlowRepository { get; }
  60. protected IRepository<EmergencyPlanInfo, string> PlanRepository { get; }
  61. protected IRepository<KnowledgeInfo, string> KnowledgeRepository { get; }
  62. protected IRepository<GuideInfo, string> GuideRepository { get; }
  63. protected IRepository<EngineInfo, string> EngineRepository { get; }
  64. protected IRepository<EngineComponentInfo, string> ComponentRepository { get; }
  65. protected IRepository<EngineModelInfo, string> EngineModelRepository { get; }
  66. protected IRepository<EvalModelInfo, string> EvalModelRepository { get; }
  67. protected IRepository<EvalTargetInfo, string> EvalTargetRepository { get; }
  68. protected IRepository<EnvironResourceInfo, string> EnvironRepository { get; }
  69. #endregion
  70. #region SELECT
  71. #region 场景类别
  72. [DisableAuditing]
  73. public async Task<List<SelectListItem>> GetCategorySelectList()
  74. {
  75. var list = await SceneCategoryRepository.GetAllListAsync(a => a.ParentNo != null);
  76. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择场景类别...", Value = "", Selected = true } };
  77. foreach (var l in list)
  78. {
  79. sList.Add(new SelectListItem { Value = l.Id, Text = l.CategoryName });
  80. }
  81. return sList;
  82. }
  83. [DisableAuditing]
  84. public async Task<string> GetCategorySelectStr()
  85. {
  86. var list = await SceneCategoryRepository.GetAllListAsync();
  87. string str = "";//"<option value=\"\" selected >请选择场景类别...</option>";
  88. var tempParentNo = list.FirstOrDefault(a=>a.ParentNo==null)?.Id??"";
  89. foreach (var l in list)
  90. {
  91. var name = l.CategoryName;
  92. var parentNo = l.ParentNo;
  93. var id = l.Id;
  94. if (l.ParentNo == null)
  95. {
  96. parentNo = "0";
  97. id = "";
  98. name = "请选择场景类别";
  99. }
  100. else if(l.ParentNo == tempParentNo)
  101. {
  102. parentNo = "";
  103. }
  104. str += $"<option parent=\"{parentNo}\" value=\"{id}\">{name}</option>";
  105. }
  106. return str;
  107. }
  108. #endregion 场景类别
  109. #region 行为角色
  110. [DisableAuditing]
  111. public async Task<List<SelectListItem>> GetBehaviorRoleSelectList()
  112. {
  113. var list = await BehaviorRoleRepository.GetAllListAsync();
  114. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择行为角色...", Value = "", Selected = true } };
  115. foreach (var l in list)
  116. {
  117. sList.Add(new SelectListItem { Value = l.Id, Text = l.RoleName });
  118. }
  119. return sList;
  120. }
  121. [DisableAuditing]
  122. public async Task<string> GetBehaviorRoleSelectStr()
  123. {
  124. var list = await BehaviorRoleRepository.GetAllListAsync();
  125. string str = "<option value=\"\" selected>请选择行为角色...</option>";
  126. foreach (var l in list)
  127. {
  128. str += $"<option value=\"{l.Id}\">{l.RoleName}</option>";
  129. }
  130. return str;
  131. }
  132. [DisableAuditing]
  133. public async Task<string> GetBehaviorRoleSelectStrByCategory(string no)
  134. {
  135. return await CacheManager.GetCache(IwbCacheNames.BehaviorRoleCache).GetAsync($"SC-{no}",async () => {
  136. var list = await RoleCategoryRepository.GetAllIncluding(a => a.RoleInfo).Where(a => a.CategoryNo == no).ToListAsync();
  137. string str = "<option value=\"\" selected>请选择行为角色...</option>";
  138. foreach (var l in list)
  139. {
  140. str += $"<option value=\"{l.RoleNo}\">{l.RoleName}</option>";
  141. }
  142. return str;
  143. });
  144. }
  145. #endregion 行为角色
  146. #region 行为
  147. [DisableAuditing]
  148. public async Task<List<SelectListItem>> GetBehaviorSelectList()
  149. {
  150. var list = await BehaviorRepository.GetAllListAsync();
  151. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择行为规则...", Value = "", Selected = true } };
  152. foreach (var l in list)
  153. {
  154. sList.Add(new SelectListItem { Value = l.Id, Text = l.BehaviorName });
  155. }
  156. return sList;
  157. }
  158. [DisableAuditing]
  159. public async Task<string> GetBehaviorSelectStr()
  160. {
  161. var list = await BehaviorRepository.GetAllListAsync();
  162. string str = "<option value=\"\" selected>请选择行为规则...</option>";
  163. foreach (var l in list)
  164. {
  165. str += $"<option value=\"{l.Id}\">{l.BehaviorName}</option>";
  166. }
  167. return str;
  168. }
  169. [DisableAuditing]
  170. public async Task<string> GetBehaviorSelectStrByCategory(string no)
  171. {
  172. var list = await BehaviorRepository.GetAllListAsync(a => a.SceneCategory == no);
  173. string str = "<option value=\"\" selected>请选择行为规则...</option>";
  174. foreach (var l in list)
  175. {
  176. str += $"<option value=\"{l.Id}\">{l.BehaviorName}</option>";
  177. }
  178. return str;
  179. }
  180. [DisableAuditing]
  181. public async Task<string> GetBehaviorScoreTypeStr()
  182. {
  183. string str = "<option value=\"\" selected>请选择行为评估类型...</option>";
  184. str += await StatesManager.GetSelectListStrAsync("Behavior", "ScoreType");
  185. return str;
  186. }
  187. [DisableAuditing]
  188. public string GetBehaviorNonEvolutionTypeStr()
  189. {
  190. string str = "<option value=\"\" selected>请选择答案类型...</option>";
  191. str += $"<option value=\"{BehaviorScoreType.Normal.ToInt()}\" selected>正确</option>";
  192. str += $"<option value=\"{BehaviorScoreType.ImportantNegative.ToInt()}\" selected>错误</option>";
  193. return str;
  194. }
  195. #endregion 行为
  196. #region 情景
  197. [DisableAuditing]
  198. public async Task<List<SelectListItem>> GetSceneSelectList()
  199. {
  200. var list = await SceneRepository.GetAllListAsync();
  201. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择情景信息...", Value = "", Selected = true } };
  202. foreach (var l in list)
  203. {
  204. sList.Add(new SelectListItem { Value = l.Id, Text = l.Name });
  205. }
  206. return sList;
  207. }
  208. [DisableAuditing]
  209. public async Task<string> GetSceneSelectStr()
  210. {
  211. var list = await SceneRepository.GetAllListAsync();
  212. string str = "<option value=\"\" selected>请选择情景信息...</option>";
  213. foreach (var l in list)
  214. {
  215. str += $"<option value=\"{l.Id}\">{l.Name}</option>";
  216. }
  217. return str;
  218. }
  219. [DisableAuditing]
  220. public async Task<string> GetSceneSelectStrByCategory(string no)
  221. {
  222. var list = await SceneRepository.GetAllListAsync(a => a.SceneCategory == no);
  223. string str = "<option value=\"\" selected>请选择情景信息...</option>";
  224. foreach (var l in list)
  225. {
  226. str += $"<option value=\"{l.Id}\">{l.Name}</option>";
  227. }
  228. return str;
  229. }
  230. [DisableAuditing]
  231. public async Task<string> GetSceneTypeStr()
  232. {
  233. string str = "<option value=\"\" selected>请选择情景类型...</option>";
  234. str += await StatesManager.GetSelectListStrAsync("Scene", "SceneType");
  235. return str;
  236. }
  237. #endregion 情景
  238. #region 情景流
  239. [DisableAuditing]
  240. public async Task<List<SelectListItem>> GetSceneFlowSelectList()
  241. {
  242. var list = await SceneFlowRepository.GetAllListAsync();
  243. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择情景流信息...", Value = "", Selected = true } };
  244. foreach (var l in list)
  245. {
  246. sList.Add(new SelectListItem { Value = l.Id, Text = l.FlowName });
  247. }
  248. return sList;
  249. }
  250. [DisableAuditing]
  251. public async Task<string> GetSceneFlowSelectStr()
  252. {
  253. var list = await SceneFlowRepository.GetAllListAsync();
  254. string str = "<option value=\"\" selected>请选择情景流信息...</option>";
  255. foreach (var l in list)
  256. {
  257. str += $"<option value=\"{l.Id}\">{l.FlowName}</option>";
  258. }
  259. return str;
  260. }
  261. [DisableAuditing]
  262. public async Task<string> GetSceneFlowSelectStrByCategory(string no)
  263. {
  264. var list = await SceneFlowRepository.GetAllListAsync(a => a.SceneCategory == no);
  265. string str = "<option value=\"\" selected>请选择情景流信息...</option>";
  266. foreach (var l in list)
  267. {
  268. str += $"<option value=\"{l.Id}\">{l.FlowName}</option>";
  269. }
  270. return str;
  271. }
  272. #endregion 情景流
  273. #region 知识引导信息
  274. [DisableAuditing]
  275. public async Task<List<SelectListItem>> GetGuideSelectList()
  276. {
  277. var list = await GuideRepository.GetAllListAsync();
  278. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择引导提示信息...", Value = "", Selected = true } };
  279. foreach (var l in list)
  280. {
  281. sList.Add(new SelectListItem { Value = l.Id, Text = l.Name });
  282. }
  283. return sList;
  284. }
  285. [DisableAuditing]
  286. public async Task<string> GetGuideSelectStr()
  287. {
  288. var list = await GuideRepository.GetAllListAsync();
  289. string str = "<option value=\"\" selected>请选择引导提示信息...</option>";
  290. foreach (var l in list)
  291. {
  292. str += $"<option value=\"{l.Id}\">{l.Name}</option>";
  293. }
  294. return str;
  295. }
  296. [DisableAuditing]
  297. public async Task<string> GetGuideTypeSelectStr()
  298. {
  299. string str = "<option value=\"\" selected>请选择引导提示类型...</option>";
  300. str += await StatesManager.GetSelectListStrAsync("Guide", "GuideType");
  301. return str;
  302. }
  303. [DisableAuditing]
  304. public async Task<List<SelectListItem>> GetKnowledgeSelectList()
  305. {
  306. var list = await KnowledgeRepository.GetAllListAsync();
  307. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择知识信息...", Value = "", Selected = true } };
  308. foreach (var l in list)
  309. {
  310. sList.Add(new SelectListItem { Value = l.Id, Text = l.Name });
  311. }
  312. return sList;
  313. }
  314. [DisableAuditing]
  315. public async Task<string> GetKnowledgeSelectStr()
  316. {
  317. var list = await KnowledgeRepository.GetAllListAsync();
  318. string str = "<option value=\"\" selected>请选择知识信息...</option>";
  319. foreach (var l in list)
  320. {
  321. str += $"<option value=\"{l.Id}\">{l.Name}</option>";
  322. }
  323. return str;
  324. }
  325. [DisableAuditing]
  326. public async Task<string> GetPlanTreeSelectStr()
  327. {
  328. var list = await PlanRepository.GetAllListAsync();
  329. string str = "";
  330. var tempParentNo = list.FirstOrDefault(a => a.ParentNo == null)?.Id ?? "";
  331. foreach (var l in list)
  332. {
  333. var name = l.Name;
  334. var parentNo = l.ParentNo;
  335. var id = l.Id;
  336. if (l.ParentNo == null)
  337. {
  338. parentNo = "0";
  339. id = "";
  340. name = "请选择应急预案";
  341. }
  342. else if (l.ParentNo == tempParentNo)
  343. {
  344. parentNo = "";
  345. }
  346. str += $"<option parent=\"{parentNo}\" value=\"{id}\">{name}</option>";
  347. }
  348. return str;
  349. }
  350. #endregion 知识引导信息
  351. #region 事务组件
  352. [DisableAuditing]
  353. public async Task<List<SelectListItem>> GetComponentSelectList()
  354. {
  355. var list = await ComponentRepository.GetAllListAsync();
  356. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择事务组件...", Value = "", Selected = true } };
  357. foreach (var l in list)
  358. {
  359. sList.Add(new SelectListItem { Value = l.Id, Text = l.Name });
  360. }
  361. return sList;
  362. }
  363. [DisableAuditing]
  364. public async Task<string> GetComponentSelectStr()
  365. {
  366. var list = await ComponentRepository.GetAllListAsync();
  367. string str = "<option value=\"\" selected>请选择事务组件...</option>";
  368. foreach (var l in list)
  369. {
  370. str += $"<option value=\"{l.Id}\">{l.Name}</option>";
  371. }
  372. return str;
  373. }
  374. #endregion 引擎
  375. #region 引擎
  376. [DisableAuditing]
  377. public async Task<List<SelectListItem>> GetEngineSelectList()
  378. {
  379. var list = await EngineRepository.GetAllListAsync();
  380. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择推演引擎...", Value = "", Selected = true } };
  381. foreach (var l in list)
  382. {
  383. sList.Add(new SelectListItem { Value = l.Id, Text = l.EngineName });
  384. }
  385. return sList;
  386. }
  387. [DisableAuditing]
  388. public async Task<string> GetEngineSelectStr()
  389. {
  390. var list = await EngineRepository.GetAllListAsync();
  391. string str = "<option value=\"\" selected>请选择推演引擎...</option>";
  392. foreach (var l in list)
  393. {
  394. str += $"<option value=\"{l.Id}\">{l.EngineName}</option>";
  395. }
  396. return str;
  397. }
  398. #endregion 引擎
  399. #region 模型
  400. [DisableAuditing]
  401. public async Task<List<SelectListItem>> GetModelSelectList()
  402. {
  403. var list = await EngineModelRepository.GetAllListAsync();
  404. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择推演模型...", Value = "", Selected = true } };
  405. foreach (var l in list)
  406. {
  407. sList.Add(new SelectListItem { Value = l.Id, Text = l.ModelName });
  408. }
  409. return sList;
  410. }
  411. [DisableAuditing]
  412. public async Task<string> GetModelSelectStr()
  413. {
  414. var list = await EngineModelRepository.GetAllIncluding(a=>a.EngineInfo).ToListAsync();
  415. string str = "<option value=\"\" selected>请选择推演模型...</option>";
  416. foreach (var l in list)
  417. {
  418. str += $"<option value=\"{l.Id}\" data-model-type=\"{l.ModelType}\" data-engine-type=\"{l.EngineType}\">{l.ModelName}</option>";
  419. }
  420. return str;
  421. }
  422. [DisableAuditing]
  423. public async Task<string> GetEngineModelTypeSelectStr()
  424. {
  425. string str = "<option value=\"\" selected>请选择推演模型...</option>";
  426. str += await StatesManager.GetSelectListStrAsync("Engine", "ModelType");
  427. return str;
  428. }
  429. [DisableAuditing]
  430. public async Task<string> GetEvalModelSelectStr()
  431. {
  432. var list = await EvalModelRepository.GetAllListAsync();
  433. string str = "<option value=\"\" selected>请选择评估模型...</option>";
  434. foreach (var l in list)
  435. {
  436. str += $"<option value=\"{l.Id}\">{l.ModelName}</option>";
  437. }
  438. return str;
  439. }
  440. [DisableAuditing]
  441. public async Task<string> GetEvalTargetSelectStr()
  442. {
  443. var list = await EvalTargetRepository.GetAllListAsync();
  444. var tempParentNo = list.FirstOrDefault(a => a.ParentNo == null)?.Id ?? "";
  445. var str = "";
  446. foreach (var l in list)
  447. {
  448. var name = l.Name;
  449. var parentNo = l.ParentNo;
  450. var id = l.Id;
  451. if (l.ParentNo == null)
  452. {
  453. parentNo = "0";
  454. id = "";
  455. name = "请选择评估指标";
  456. }
  457. else if (l.ParentNo == tempParentNo)
  458. {
  459. parentNo = "";
  460. }
  461. str += $"<option parent=\"{parentNo}\" value=\"{id}\">{name}</option>";
  462. }
  463. return str;
  464. }
  465. [DisableAuditing]
  466. public async Task<string> GetEvalTargetTypeSelectStr()
  467. {
  468. string str = "<option value=\"\" selected>请选择指标类型...</option>";
  469. str += await StatesManager.GetSelectListStrAsync("Eval", "TargetType");
  470. return str;
  471. }
  472. #endregion 模型
  473. #region 环境资源配置
  474. [DisableAuditing]
  475. public async Task<List<SelectListItem>> GetEnvironmentSelectList()
  476. {
  477. var list = await EnvironRepository.GetAllListAsync();
  478. var sList = new List<SelectListItem> { new SelectListItem { Text = @"请选择环境资源...", Value = "", Selected = true } };
  479. foreach (var l in list)
  480. {
  481. sList.Add(new SelectListItem { Value = l.Id, Text = l.ResourceName });
  482. }
  483. return sList;
  484. }
  485. [DisableAuditing]
  486. public async Task<string> GetEnvironmentSelectStr()
  487. {
  488. var list = await EnvironRepository.GetAllListAsync();
  489. string str = "<option value=\"\" selected>请选择环境资源...</option>";
  490. foreach (var l in list)
  491. {
  492. str += $"<option value=\"{l.Id}\">{l.ResourceName}</option>";
  493. }
  494. return str;
  495. }
  496. [DisableAuditing]
  497. public async Task<string> GetResourceTypeStr()
  498. {
  499. string str = "<option value=\"\" selected>请选择资源类型...</option>";
  500. str += await StatesManager.GetSelectListStrAsync("Resource", "Type");
  501. return str;
  502. }
  503. #endregion 模型
  504. #endregion SELECT
  505. /// <summary>
  506. /// 查询用户信息
  507. /// </summary>
  508. /// <param name="input"></param>
  509. /// <returns></returns>
  510. [DisableAuditing]
  511. public async Task<PagedResultDto<UserDto>> QueryUsers(IwbPagedRequestDto input)
  512. {
  513. var query = UserRepository.GetAll().Where(a => a.IsActive);
  514. query = ApplyFilter(query, input);
  515. var totalCount = await query.CountAsync();
  516. query = query.OrderBy(a => a.Id);
  517. query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
  518. var entities = await query.ToListAsync();
  519. var dtoList = new PagedResultDto<UserDto>(totalCount, ObjectMapper.Map<List<UserDto>>(entities));
  520. return dtoList;
  521. }
  522. /// <summary>
  523. /// 查询情景信息
  524. /// </summary>
  525. /// <param name="input"></param>
  526. /// <returns></returns>
  527. [DisableAuditing]
  528. public async Task<PagedResultDto<SceneDto>> QueryScenes(IwbPagedRequestDto input)
  529. {
  530. var query = SceneRepository.GetAllIncluding(a=>a.SceneCategoryInfo);
  531. var search = input.SearchList?.FirstOrDefault(a => a.KeyWords.IsNotEmpty() && a.KeyField.ToLower() == "scenecategory");
  532. if (search != null)
  533. {
  534. query = query.Where(a => a.SceneCategoryInfo.CategoryPath.Contains(search.KeyWords));
  535. input.SearchList.Remove(search);
  536. }
  537. query = ApplyFilter(query, input);
  538. var totalCount = await query.CountAsync();
  539. query = query.OrderBy(a => a.Id);
  540. query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
  541. var entities = await query.ToListAsync();
  542. var dtoList = new PagedResultDto<SceneDto>(totalCount, ObjectMapper.Map<List<SceneDto>>(entities));
  543. return dtoList;
  544. }
  545. /// <summary>
  546. /// 查询引导信息
  547. /// </summary>
  548. /// <param name="input"></param>
  549. /// <returns></returns>
  550. [DisableAuditing]
  551. public async Task<PagedResultDto<GuideDto>> QueryGuides(IwbPagedRequestDto input)
  552. {
  553. var query = GuideRepository.GetAll();
  554. query = ApplyFilter(query, input);
  555. var totalCount = await query.CountAsync();
  556. query = query.OrderBy(a => a.Id);
  557. query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
  558. var entities = await query.ToListAsync();
  559. var dtoList = new PagedResultDto<GuideDto>(totalCount, ObjectMapper.Map<List<GuideDto>>(entities));
  560. return dtoList;
  561. }
  562. /// <summary>
  563. /// 根据编号查询情景流信息
  564. /// </summary>
  565. /// <param name="no"></param>
  566. /// <returns></returns>
  567. [DisableAuditing]
  568. public async Task<SceneFlowDto> QuerySceneFlowByNo(string no)
  569. {
  570. var entity = await SceneFlowRepository.FirstOrDefaultAsync(a => a.Id == no);
  571. return ObjectMapper.Map<SceneFlowDto>(entity);
  572. }
  573. /// <summary>
  574. /// 查询情景流信息
  575. /// </summary>
  576. /// <param name="input"></param>
  577. /// <returns></returns>
  578. [DisableAuditing]
  579. public async Task<PagedResultDto<SceneFlowDto>> QuerySceneFlows(IwbPagedRequestDto input)
  580. {
  581. var query = SceneFlowRepository.GetAllIncluding(a => a.SceneCategoryInfo);
  582. var search = input.SearchList?.FirstOrDefault(a => a.KeyWords.IsNotEmpty() && a.KeyField.ToLower() == "scenecategory");
  583. if (search != null)
  584. {
  585. query = query.Where(a => a.SceneCategoryInfo.CategoryPath.Contains(search.KeyWords));
  586. input.SearchList.Remove(search);
  587. }
  588. query = ApplyFilter(query, input);
  589. var totalCount = await query.CountAsync();
  590. query = query.OrderBy(a => a.Id);
  591. query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
  592. var entities = await query.ToListAsync();
  593. var dtoList = new PagedResultDto<SceneFlowDto>(totalCount, ObjectMapper.Map<List<SceneFlowDto>>(entities));
  594. return dtoList;
  595. }
  596. /// <summary>
  597. /// 查询子目录
  598. /// </summary>
  599. /// <param name="input"></param>
  600. /// <returns></returns>
  601. [DisableAuditing]
  602. public async Task<List<JsTreeDto>> GetChildSceneCategory(EntityDto<string> input)
  603. {
  604. if (input.Id.IsEmpty() || input.Id == "#" || input.Id == "0")
  605. {
  606. input.Id = null;
  607. }
  608. var list = new List<JsTreeDto>();
  609. var children = await SceneCategoryRepository.GetAllListAsync(a => a.ParentNo == input.Id);
  610. if (children.Any())
  611. {
  612. foreach (var child in children)
  613. {
  614. list.Add(new JsTreeDto()
  615. {
  616. Id = child.Id,
  617. Text = child.CategoryName,
  618. Children = (await SceneCategoryRepository.CountAsync(a => a.ParentNo == child.Id)) > 0
  619. });
  620. }
  621. }
  622. return list;
  623. }
  624. }
  625. }