ExpressApplicationService.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using System.Web.Mvc;
  5. using Abp.Application.Services.Dto;
  6. using Abp.Auditing;
  7. using Abp.Authorization;
  8. using Abp.Domain.Repositories;
  9. using Abp.Timing;
  10. using IwbZero.AppServiceBase;
  11. using IwbZero.IdentityFramework;
  12. using IwbZero.Setting;
  13. using ShwasherSys.Authorization.Permissions;
  14. using ShwasherSys.BasicInfo.ExpressInfo.Dto;
  15. using ShwasherSys.BasicInfo.Factory.Dto;
  16. namespace ShwasherSys.BasicInfo.ExpressInfo
  17. {
  18. [AbpAuthorize]
  19. public class ExpressAppService : ShwasherAsyncCrudAppService<ExpressLogistics, ExpressLogisticsDto, int, PagedRequestDto, ExpressLogisticsCreateDto, ExpressLogisticsUpdateDto>, IExpressAppService
  20. {
  21. protected IRepository<ExpressProviderMapper> ExpressProviderMapperRepository;
  22. protected IRepository<ExpressServiceProvider> ExpressServiceProviderRepository;
  23. public ExpressAppService(IRepository<ExpressLogistics, int> repository, IRepository<ExpressProviderMapper> expressProviderMapperRepository, IRepository<ExpressServiceProvider> expressServiceProviderRepository) : base(repository)
  24. {
  25. ExpressProviderMapperRepository = expressProviderMapperRepository;
  26. ExpressServiceProviderRepository = expressServiceProviderRepository;
  27. }
  28. protected override string GetPermissionName { get; set; } = PermissionNames.PagesBasicInfoExpress;
  29. protected override string GetAllPermissionName { get; set; } = PermissionNames.PagesBasicInfoExpress;
  30. protected override string CreatePermissionName { get; set; } = PermissionNames.PagesBasicInfoExpressCreate;
  31. protected override string UpdatePermissionName { get; set; } = PermissionNames.PagesBasicInfoExpressUpdate;
  32. protected override string DeletePermissionName { get; set; } = PermissionNames.PagesBasicInfoExpressDelete;
  33. [DisableAuditing]
  34. public List<SelectListItem> GetExpressSelects()
  35. {
  36. var slist = new List<SelectListItem>();
  37. var list = Repository.GetAll();
  38. foreach (var l in list)
  39. {
  40. slist.Add(new SelectListItem { Text = l.ExpressName, Value = l.Id+"" });
  41. }
  42. return slist;
  43. }
  44. public override async Task<ExpressLogisticsDto> Create(ExpressLogisticsCreateDto input)
  45. {
  46. CheckCreatePermission();
  47. var entity = MapToEntity(input);
  48. if (await Repository.FirstOrDefaultAsync(i => i.Code == input.Code)!=null)
  49. {
  50. CheckErrors(new IwbIdentityResult("快递公司编码已存在!"));
  51. }
  52. entity.IsLock = "N";
  53. entity.TimeCreated = Clock.Now;
  54. entity.UserIDLastMod = AbpSession.UserName;
  55. entity.TimeLastMod = Clock.Now;
  56. var id = await Repository.InsertAndGetIdAsync(entity);
  57. entity.Id = id;
  58. var mappers = input.ExpressProviderMapper;
  59. if (mappers == null) return MapToEntityDto(entity);
  60. foreach (var mapper in mappers)
  61. {
  62. ExpressProviderMapper mapperEntity = new ExpressProviderMapper()
  63. {
  64. ProviderId = mapper.ProviderId,
  65. ExpressId = id,
  66. MapperCode = mapper.MapperCode,
  67. ExtendInfo = mapper.ExtendInfo,
  68. QueryUrl = mapper.QueryUrl,
  69. ActiveStatus = mapper.ActiveStatus
  70. };
  71. await ExpressProviderMapperRepository.InsertAsync(mapperEntity);
  72. }
  73. return MapToEntityDto(entity);
  74. }
  75. public override async Task<ExpressLogisticsDto> Update(ExpressLogisticsUpdateDto input)
  76. {
  77. CheckUpdatePermission();
  78. var entity = Repository.Get(input.Id);
  79. entity.ExpressName = input.ExpressName;
  80. entity.Sort = input.Sort;
  81. entity.Code = input.Code;
  82. await ExpressProviderMapperRepository.DeleteAsync(i => i.ExpressId == input.Id);
  83. foreach (var mapper in input.ExpressProviderMapper)
  84. {
  85. ExpressProviderMapper mapperEntity = new ExpressProviderMapper()
  86. {
  87. ProviderId = mapper.ProviderId,
  88. ExpressId = input.Id,
  89. MapperCode = mapper.MapperCode,
  90. ExtendInfo = mapper.ExtendInfo,
  91. QueryUrl = mapper.QueryUrl,
  92. ActiveStatus = mapper.ActiveStatus
  93. };
  94. await ExpressProviderMapperRepository.InsertAsync(mapperEntity);
  95. }
  96. return MapToEntityDto(entity);
  97. }
  98. public override async Task Delete(EntityDto<int> input)
  99. {
  100. CheckDeletePermission();
  101. var entity = Repository.Get(input.Id);
  102. entity.IsLock = "Y";
  103. await Repository.UpdateAsync(entity);
  104. }
  105. //public async Task<string> GetProviderOptions()
  106. //{
  107. // string result = "";
  108. // var ps = await ExpressServiceProviderRepository.GetAll();
  109. //}
  110. public ExpressLogisticsDto GetExpressDtoById(EntityDto<int> input)
  111. {
  112. var entity = Repository.Get(input.Id);
  113. var ms = ExpressProviderMapperRepository.GetAllIncluding(i => i.ExpressServiceProvider,i=>i.ExpressLogistics).Where(i=>i.ExpressId==input.Id).ToList();
  114. var dto = MapToEntityDto(entity);
  115. dto.ExpressProviderMapper = ms;
  116. return dto;
  117. }
  118. }
  119. }