From f68693a0defa47f8c6cd175a64d6bb68c37f7dbb Mon Sep 17 00:00:00 2001 From: lwh <2679599887@qq.com> Date: Fri, 1 Sep 2023 13:14:28 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E5=88=9D=E6=AD=A5=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Business/OrderManage/Orders/Order.cs | 10 -- .../OrderManage/Orders/OrderGoodsVo.cs | 41 +++++ .../Vo/Business/OrderManage/Orders/OrderVo.cs | 169 ++---------------- .../GoodsSpecs/GoodsSkus/GoodsSkuService.cs | 32 +++- .../OrderManage/Orders/OrderService.cs | 115 +++++++----- .../GoodsSpecs/GoodsSkus/IGoodsSkuService.cs | 8 + 6 files changed, 164 insertions(+), 211 deletions(-) create mode 100644 ARW.Model/Vo/Business/OrderManage/Orders/OrderGoodsVo.cs diff --git a/ARW.Model/Models/Business/OrderManage/Orders/Order.cs b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs index 79f1c7f..4f507ba 100644 --- a/ARW.Model/Models/Business/OrderManage/Orders/Order.cs +++ b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs @@ -35,16 +35,6 @@ namespace ARW.Model.Models.Business.OrderManage.Orders public long OrderGuid { get; set; } - /// - /// 描述 :商品guid - /// 空值 : false - /// - [EpplusTableColumn(Header = "商品guid")] - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "goods_guid")] - public long GoodsGuid { get; set; } - - /// /// 描述 :订单流水guid /// 空值 : false diff --git a/ARW.Model/Vo/Business/OrderManage/Orders/OrderGoodsVo.cs b/ARW.Model/Vo/Business/OrderManage/Orders/OrderGoodsVo.cs new file mode 100644 index 0000000..c8f3828 --- /dev/null +++ b/ARW.Model/Vo/Business/OrderManage/Orders/OrderGoodsVo.cs @@ -0,0 +1,41 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; + +namespace ARW.Model.Vo.Business.OrderManage.Orders +{ + /// + /// 订单展示对象 + /// + /// @author lwh + /// @date 2023-08-29 + /// + public class OrderGoodsVo + { + + /// + /// 商品名称 + /// + public string GoodsName { get; set; } + + + /// + /// 商品图片 + /// + public string GoodsPicture { get; set; } + + + /// + /// 商品规格值 + /// + public string GoodsSpecName { get; set; } + + + /// + /// 商品单价 + /// + public decimal GoodsPrice { get; set; } + + } +} diff --git a/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs b/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs index 4f49230..c3af8ce 100644 --- a/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs +++ b/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs @@ -29,21 +29,10 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders [EpplusIgnore] public long OrderGuid { get; set; } - /// - /// 描述 :商品guid + /// 商品信息 /// - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusTableColumn(Header = "商品guid")] - public long GoodsGuid { get; set; } - - - /// - /// 描述 :订单流水guid - /// - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusTableColumn(Header = "订单流水guid")] - public long PaymentGuid { get; set; } + public OrderGoodsVo GoodsInfo { get; set; } /// @@ -53,14 +42,20 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders [EpplusTableColumn(Header = "客户guid")] public long CustomerGuid { get; set; } + /// + /// 客户名称 + /// + public string CustomerNickName { get; set;} /// - /// 描述 :店铺guid + /// 客户手机号 /// - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] - public long? ShopGuid { get; set; } + public string CustomerMobilePhoneNumber { get; set; } + /// + /// 客户头像 + /// + public string CustomerAvatar { get; set; } /// /// 描述 :订单号 @@ -69,49 +64,12 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders public string OrderNumber { get; set; } - /// - /// 描述 :商品总金额 - /// - [EpplusTableColumn(Header = "商品总金额")] - public decimal GoodsTotalAmoun { get; set; } - - /// /// 描述 :订单金额 /// [EpplusTableColumn(Header = "订单金额")] public decimal OrderAmount { get; set; } - - /// - /// 描述 :优惠券guid - /// - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] - public long? CouponGuid { get; set; } - - - /// - /// 描述 :优惠券抵扣金额 - /// - [EpplusIgnore] - public decimal CouponMoney { get; set; } - - - /// - /// 描述 :积分抵扣金额 - /// - [EpplusIgnore] - public decimal PointsMoney { get; set; } - - - /// - /// 描述 :积分抵扣数量 - /// - [EpplusIgnore] - public decimal PointsNum { get; set; } - - /// /// 描述 :实际付款金额(包含运费) /// @@ -120,23 +78,15 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders /// - /// 描述 :后台修改的订单金额(差价) + /// 描述 :运费金额 /// - [EpplusIgnore] - public decimal UpdatePrice { get; set; } - - - /// - /// 描述 :买家留言 - /// - [EpplusIgnore] - public string OrderRemark { get; set; } - + [EpplusTableColumn(Header = "运费金额")] + public decimal ExpressPrice { get; set; } /// /// 描述 :支付方式(1微信支付 2余额支付) /// - [EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")] + [EpplusTableColumn(Header = "支付方式")] public int PayType { get; set; } @@ -147,13 +97,6 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders public int PayStatus { get; set; } - /// - /// 描述 :付款时间 - /// - [EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] - public DateTime? PayTime { get; set; } - - /// /// 描述 :配送方式(1快递配送) /// @@ -161,103 +104,27 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders public int DeliveryType { get; set; } - /// - /// 描述 :运费金额 - /// - [EpplusTableColumn(Header = "运费金额")] - public decimal ExpressPrice { get; set; } - - - /// - /// 描述 :物流公司guid - /// - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] - public long? LogisticsCompanyGuid { get; set; } - - - /// - /// 描述 :物流公司 - /// - [EpplusIgnore] - public string LogisticsCompany { get; set; } - - - /// - /// 描述 :物流单号 - /// - [EpplusIgnore] - public string LogisticsTrackingNumber { get; set; } - - /// /// 描述 :发货状态(1未发货 2已发货) /// [EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")] public int DeliveryStatus { get; set; } - - /// - /// 描述 :发货时间 - /// - [EpplusIgnore] - public DateTime? DeliveryTime { get; set; } - - /// /// 描述 :收货状态(1未收货 2已收货) /// [EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")] public int ReceiptStatus { get; set; } - - /// - /// 描述 :收货时间 - /// - [EpplusIgnore] - public DateTime? ReceiptTime { get; set; } - - /// /// 描述 :订单状态(1进行中 2取消 3待取消 4已完成) /// [EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")] public int OrderStatus { get; set; } - /// - /// 描述 :赠送的积分数量 + /// 下单时间 /// - [EpplusIgnore] - public decimal PointsBonus { get; set; } - - - /// - /// 描述 :订单是否已结算(1未结算 2已结算) - /// - [EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")] - public int IsSettled { get; set; } - - - /// - /// 描述 :微信支付交易号 - /// - [EpplusIgnore] - public string TransactionId { get; set; } - - - /// - /// 描述 :是否已评价(1否 2是) - /// - [EpplusTableColumn(Header = "是否已评价(1否 2是)")] - public int IsComment { get; set; } - - - /// - /// 描述 :订单来源(1普通订单) - /// - [EpplusTableColumn(Header = "订单来源(1普通订单)")] - public int OrderSource { get; set; } - + public DateTime CreateTime { get; set; } } } diff --git a/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/GoodsSkus/GoodsSkuService.cs b/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/GoodsSkus/GoodsSkuService.cs index 0916136..72f6356 100644 --- a/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/GoodsSkus/GoodsSkuService.cs +++ b/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/GoodsSkus/GoodsSkuService.cs @@ -126,7 +126,7 @@ namespace ARW.Service.Business.BusinessService.GoodsManager.GoodsSpecs.GoodsSkus GoodsSkuStockNum = sku.GoodsSkuStockNum, GoodsSkuWeight = sku.GoodsSkuWeight }).ToList(); - } + } @@ -147,6 +147,36 @@ namespace ARW.Service.Business.BusinessService.GoodsManager.GoodsSpecs.GoodsSkus return string.Empty; } + + /// + /// 获取全部规格值名称 + /// + /// + /// + public async Task GetSpecValueFullName(int skuId) + { + var str = ""; + // 从数据库中查询规格值名称 + var sku = await _GoodsSkuRepository.GetByIdAsync(skuId); + if (sku != null) + { + var specValue = await _SpecValueRepository.GetByIdAsync(sku.SpecValueId); + str += specValue.SpecValueName; + if (sku.SpecSecondValueId != 0) + { + var specSecondValue = await _SpecValueRepository.GetByIdAsync(sku.SpecSecondValueId); + str += " " + specSecondValue.SpecValueName; + } + if (sku.SpecThirdValueId != 0) + { + var specThirdValue = await _SpecValueRepository.GetByIdAsync(sku.SpecThirdValueId); + str += " " + specThirdValue.SpecValueName; + } + } + + return str; + } + #region Excel处理 diff --git a/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs index 9a08cda..d877116 100644 --- a/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs +++ b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs @@ -14,6 +14,10 @@ using ARW.Service.Business.IBusinessService.OrderManage.Orders; using ARW.Model.Dto.Business.OrderManage.Orders; using ARW.Model.Models.Business.OrderManage.Orders; using ARW.Model.Vo.Business.OrderManage.Orders; +using ARW.Repository.Business.GoodsManager.Goodss; +using ARW.Repository.Business.GoodsManager.GoodsSpecs.GoodsSkus; +using ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.GoodsSkus; +using ARW.Model.Models.Business.Custom.Customers; namespace ARW.Service.Business.BusinessService.OrderManage.Orders { @@ -27,19 +31,23 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders public class OrderServiceImpl : BaseService, IOrderService { private readonly OrderRepository _OrderRepository; + private readonly GoodsRepository _GoodsRepository; + private readonly IGoodsSkuService _GoodsSkuService; - public OrderServiceImpl(OrderRepository OrderRepository) + public OrderServiceImpl(OrderRepository OrderRepository, GoodsRepository goodsRepository, IGoodsSkuService goodsSkuService) { this._OrderRepository = OrderRepository; + _GoodsRepository = goodsRepository; + _GoodsSkuService = goodsSkuService; } - #region 业务逻辑代码 - - - /// + #region 业务逻辑代码 + + + /// /// 查询订单分页列表 /// - public async Task> GetOrderList(OrderQueryDto parm) + public async Task> GetOrderList(OrderQueryDto parm) { //开始拼装查询条件d var predicate = Expressionable.Create(); @@ -54,51 +62,60 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders predicate = predicate.AndIF(parm.OrderStatus != null, s => s.OrderStatus == parm.OrderStatus); var query = _OrderRepository .Queryable() + .LeftJoin((s, c) => s.CustomerGuid == c.CustomerGuid) .Where(predicate.ToExpression()) - .OrderBy(s => s.Create_time,OrderByType.Desc) - .Select(s => new OrderVo + .OrderBy(s => s.Create_time, OrderByType.Desc) + .Select((s, c) => new OrderVo { - OrderId = s.OrderId, - OrderGuid = s.OrderGuid, - GoodsGuid = s.GoodsGuid, - PaymentGuid = s.PaymentGuid, - CustomerGuid = s.CustomerGuid, - ShopGuid = s.ShopGuid, - OrderNumber = s.OrderNumber, - GoodsTotalAmoun = s.GoodsTotalAmoun, - OrderAmount = s.OrderAmount, - CouponGuid = s.CouponGuid, - CouponMoney = s.CouponMoney, - PointsMoney = s.PointsMoney, - PointsNum = s.PointsNum, - PayPrice = s.PayPrice, - UpdatePrice = s.UpdatePrice, - OrderRemark = s.OrderRemark, - PayType = s.PayType, - PayStatus = s.PayStatus, - PayTime = s.PayTime, - DeliveryType = s.DeliveryType, - ExpressPrice = s.ExpressPrice, - LogisticsCompanyGuid = s.LogisticsCompanyGuid, - LogisticsCompany = s.LogisticsCompany, - LogisticsTrackingNumber = s.LogisticsTrackingNumber, - DeliveryStatus = s.DeliveryStatus, - DeliveryTime = s.DeliveryTime, - ReceiptStatus = s.ReceiptStatus, - ReceiptTime = s.ReceiptTime, - OrderStatus = s.OrderStatus, - PointsBonus = s.PointsBonus, - IsSettled = s.IsSettled, - TransactionId = s.TransactionId, - IsComment = s.IsComment, - OrderSource = s.OrderSource, - }); - + OrderId = s.OrderId, + OrderGuid = s.OrderGuid, + CustomerGuid = s.CustomerGuid, + CustomerNickName = c.CustomerNickname, + CustomerMobilePhoneNumber = c.CustomerMobilePhoneNumber, + CustomerAvatar = c.CustomerAvatar, + OrderNumber = s.OrderNumber, + OrderAmount = s.OrderAmount, + PayPrice = s.PayPrice, + PayType = s.PayType, + PayStatus = s.PayStatus, + DeliveryType = s.DeliveryType, + ExpressPrice = s.ExpressPrice, + DeliveryStatus = s.DeliveryStatus, + ReceiptStatus = s.ReceiptStatus, + OrderStatus = s.OrderStatus, + CreateTime = s.Create_time + }); - return await query.ToPageAsync(parm); + var list = await query.ToPageAsync(parm); + + foreach (var item in list.Result) + { + + // 获取商品信息 + //var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == item.GoodsGuid) ?? throw new CustomException("商品不存在"); + //item.GoodsInfo = new OrderGoodsVo(); + //item.GoodsInfo.GoodsName = goods.GoodsName; + //item.GoodsInfo.GoodsPicture = goods.GoodsPicture; + //if (item.GoodsSkuId != 0) + //{ + // var specName = await _GoodsSkuService.GetSpecValueFullName(item.GoodsSkuId); + // var sku = await _GoodsSkuService.GetByIdAsync(item.GoodsSkuId); + // item.GoodsInfo.GoodsSpecName = specName; + // item.GoodsInfo.GoodsPrice = sku.GoodsSkuPrice; + //} + //else + //{ + // item.GoodsInfo.GoodsPrice = goods.GoodsPriceHighest; + //} + } + + return list; } - /// + + + + /// /// 添加或修改订单 /// public async Task AddOrUpdateOrder(Order model) @@ -118,7 +135,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders #region Excel处理 - + /// /// Excel数据导出处理 /// @@ -128,10 +145,10 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders } #endregion - -#endregion + + #endregion } } diff --git a/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/GoodsSkus/IGoodsSkuService.cs b/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/GoodsSkus/IGoodsSkuService.cs index 6f044f8..6691796 100644 --- a/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/GoodsSkus/IGoodsSkuService.cs +++ b/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/GoodsSkus/IGoodsSkuService.cs @@ -28,5 +28,13 @@ namespace ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.GoodsSku Task GetGoodsSkuList(GoodsSkuQueryDto parm); + + /// + /// 获取全部规格值名称 + /// + /// + /// + Task GetSpecValueFullName(int skuId); + } }