| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- using System.Collections.Generic;
- using System.Data.Entity;
- using System.Linq;
- using System.Threading.Tasks;
- using Abp.Auditing;
- using Abp.Domain.Repositories;
- using Abp.Runtime.Caching;
- using WeEngine.CommonDto.WeInfo;
- using WePlatform.Configuration;
- using WePlatform.WeLib;
- using WePlatform.WeLib.Package;
- namespace WePlatform.DataCenter.Package
- {
- /// <summary>
- /// 方案包API
- /// </summary>
- [DisableAuditing]
- public class WePackageAppService:DataCenterAppServiceBase, IWePackageAppService
- {
- public WePackageAppService(IRepository<PackageXmlInfo> xmlRepository, IRepository<PackageInfo, string> packageRepository, PackageAppService packageApp,ICacheManager cacheManager, IRepository<SceneFlowInfo, string> flowRepository, IRepository<SceneInfo, string> sceneRepository)
- {
- XmlRepository = xmlRepository;
- PackageRepository = packageRepository;
- PackageApp = packageApp;
- FlowRepository = flowRepository;
- SceneRepository = sceneRepository;
- CacheManager = cacheManager;
- }
- protected IRepository<PackageXmlInfo> XmlRepository { get; }
- protected IRepository<PackageInfo,string> PackageRepository { get; }
- protected IRepository<SceneFlowInfo, string> FlowRepository { get; }
- protected IRepository<SceneInfo, string> SceneRepository { get; }
- protected PackageAppService PackageApp { get; }
- /// <summary>
- /// 获取全部方案包
- /// </summary>
- /// <returns></returns>
- public async Task<List<WePackageDto>> GetPackageInfos()
- {
- var list = await PackageRepository
- .GetAllIncluding(a => a.SceneCategoryInfo, a => a.EngineModelInfo,
- a => a.EngineModelInfo.EngineInfo).Where(a => a.PackageState == PackageStateDefinition.Solidified)
- .Select(a => new WePackageDto()
- {
- Id = a.Id,
- PackageName = a.PackageName,
- SceneCategory = a.SceneCategory,
- SceneCategoryName = a.SceneCategoryInfo.CategoryName,
- Variable = a.Variable,
- EngineModelNo = a.EngineModelNo,
- EngineModelName = a.EngineModelInfo.ModelName,
- EngineModelType = a.EngineModelInfo.ModelType,
- AssessRoleNames = a.AssessRoleNames,
- AssessAuto = a.AssessAuto
- }).ToListAsync();
- return list;
- }
- /// <summary>
- /// 查询方案包信息
- /// </summary>
- /// <param name="no">方案包编号</param>
- /// <returns></returns>
- public async Task<WePackageDto> GetPackageInfo(string no)
- {
- var result = await CacheManager.GetCache(IwbCacheNames.PackageCache).GetAsync($"P{no}", async () =>
- {
- var dto = await PackageRepository
- .GetAllIncluding(a => a.SceneCategoryInfo, a => a.EngineModelInfo,
- a => a.EngineModelInfo.EngineInfo).Where(a=>a.PackageState==PackageStateDefinition.Solidified)
- .Select(a => new WePackageDto()
- {
- Id = a.Id,
- PackageName = a.PackageName,
- SceneCategory = a.SceneCategory,
- SceneCategoryName = a.SceneCategoryInfo.CategoryName,
- Variable = a.Variable,
- EngineModelNo = a.EngineModelNo,
- EngineModelName = a.EngineModelInfo.ModelName,
- EngineModelType = a.EngineModelInfo.ModelType,
- AssessRoleNames = a.AssessRoleNames,
- AssessAuto = a.AssessAuto
- })
- .FirstOrDefaultAsync(a => a.Id == no);
- if (dto == null)
- {
- CheckErrors($"未查询到编号为【{no}】的方案包信息!");
- return null;
- }
- dto.AllRoles = await PackageApp.GetPackageRoleLists(no);
- return dto;
- });
- return result;
- }
- /// <summary>
- /// 查询方案包XML信息
- /// </summary>
- /// <param name="no">方案包编号</param>
- /// <returns></returns>
- public async Task<WePackageXmlDto> GetPackageXml(string no)
- {
- var result = await CacheManager.GetCache(IwbCacheNames.PackageCache).GetAsync($"PX{no}", async () =>
- {
- var xmlEntity = await XmlRepository.FirstOrDefaultAsync(a => a.PackageNo == no);
- if (xmlEntity == null)
- {
- CheckErrors($"未查询到编号为【{no}】的方案包详情,请确认方案包已固化!");
- return null;
- }
- var dto = new WePackageXmlDto()
- {
- PackageNo = xmlEntity.PackageNo,
- PackageXml = xmlEntity.PackageXml,
- FlowXml = xmlEntity.FlowXml,
- SceneXml = xmlEntity.SceneXml,
- BehaviorXml = xmlEntity.BehaviorXml,
- ComponentXml = xmlEntity.ComponentXml,
- EnvironResourceXml = xmlEntity.EnvironResourceXml,
- GuideXml = xmlEntity.GuideXml,
- AllRoles = xmlEntity.AllRoles
- };
- return dto;
- });
- return result;
-
- }
- /// <summary>
- /// 查询方案包详情
- /// </summary>
- /// <param name="no">方案包编号</param>
- /// <returns></returns>
- public async Task<WePackageDetailDto> GetPackageDetail(string no)
- {
- var detail = await PackageApp.GetSolidifiedPackageDetail(no);
- if (detail == null)
- {
- return null;
- }
- var dto= new WePackageDetailDto()
- {
- PackageNo = detail.PackageNo,
- AssessRoleNames = detail.AssessRoleNames,
- AllRoleNames = string.Join(",", detail.AllRoles.Select(a => a.ToString()).ToArray()),
- Detail = new WePackageDto()
- {
- Id = detail.Detail.Id,
- PackageName = detail.Detail.PackageName,
- SceneCategory = detail.Detail.SceneCategory,
- SceneCategoryName = detail.Detail.SceneCategoryName,
- EngineModelNo = detail.Detail.EngineModelNo,
- EngineModelType = detail.Detail.EngineModelType,
- EngineModelName = detail.Detail.EngineModelName,
- AllRoles = detail.AllRoles,
- AssessAuto = detail.Detail.AssessAuto,
- AssessRoleNames = detail.Detail.AssessRoleNames,
- Variable= detail.Detail.Variable
- },
- Scenes = detail.Scenes,
- Behaviors = detail.Behaviors,
- Guides = detail.Guides,
- EnvironResources = detail.EnvironResources,
- };
- return dto;
- }
- }
- }
|