using Infrastructure.Attribute; using Microsoft.AspNetCore.Http; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Infrastructure; using ARW.Model; using ARW.Repository; using ARW.Repository.Business.LogisticsManage.Deliverys; using ARW.Service.Business.IBusinessService.LogisticsManage.Deliverys; using ARW.Model.Dto.Business.LogisticsManage.Deliverys; using ARW.Model.Models.Business.LogisticsManage.Deliverys; using ARW.Model.Vo.Business.LogisticsManage.Deliverys; using Aliyun.OSS; using ARW.Repository.Business.LogisticsManage.DeliveryRules; using ARW.Service.Business.IBusinessService.LogisticsManage.DeliveryRules; using ARW.Model.Models.Business.ShopManager.Shops; namespace ARW.Service.Business.BusinessService.LogisticsManage.Deliverys { /// /// 配送模板接口实现类 /// /// @author 黎文豪 /// @date 2023-06-16 /// [AppService(ServiceType = typeof(IDeliveryService), ServiceLifetime = LifeTime.Transient)] public class DeliveryServiceImpl : BaseService, IDeliveryService { private readonly DeliveryRepository _DeliveryRepository; private readonly IDeliveryRuleService _DeliveryRuleService; public DeliveryServiceImpl(DeliveryRepository DeliveryRepository, IDeliveryRuleService deliveryRuleService) { this._DeliveryRepository = DeliveryRepository; _DeliveryRuleService = deliveryRuleService; } #region 业务逻辑代码 /// /// 查询配送模板分页列表 /// public async Task> GetDeliveryList(DeliveryQueryDto parm) { //开始拼装查询条件d var predicate = Expressionable.Create(); predicate = predicate.AndIF(parm.ShopGuid != null, s => s.ShopGuid == parm.ShopGuid); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.DeliveryName), s => s.DeliveryName.Contains(parm.DeliveryName)); predicate = predicate.AndIF(parm.DeliveryBillingMethod != null, s => s.DeliveryBillingMethod == parm.DeliveryBillingMethod); var query = _DeliveryRepository .Queryable() .LeftJoin((s, c) => s.ShopGuid == c.ShopGuid) .Where(predicate.ToExpression()) .WhereIF(!string.IsNullOrEmpty(parm.ShopName), (s, c) => c.ShopName.Contains(parm.ShopName)) .OrderBy(s => s.DeliverySort, OrderByType.Asc) .Select((s,c) => new DeliveryVo { DeliveryId = s.DeliveryId, DeliveryGuid = s.DeliveryGuid, ShopGuid = s.ShopGuid, ShopName = c.ShopName, DeliveryName = s.DeliveryName, DeliveryBillingMethod = s.DeliveryBillingMethod, DeliverySort = s.DeliverySort, }); return await query.ToPageAsync(parm); } /// /// 添加或修改配送模板 /// public async Task AddOrUpdateDelivery(Delivery model) { if (model.DeliveryId != 0) { if (model.DeliveryRuleDataList.Count != 0) { await _DeliveryRuleService.UpdateDeliveryRuleAsync(model.DeliveryRuleDataList, model.DeliveryGuid); } var response = await _DeliveryRepository.UpdateAsync(model); return "修改成功!"; } else { var response = await _DeliveryRepository.InsertReturnSnowflakeIdAsync(model); if (model.DeliveryRuleDataList.Count != 0 && response > 0) { foreach (var item in model.DeliveryRuleDataList) { item.DeliveryGuid = response; } await _DeliveryRuleService.InsertDeliveryRuleAsync(model.DeliveryRuleDataList); } return "添加成功!"; } } #region Excel处理 /// /// Excel数据导出处理 /// public async Task> HandleExportData(List data) { return data; } #endregion #endregion } }