From ad0d91ca2f9d86213bb659698025be02989a799f Mon Sep 17 00:00:00 2001 From: "AERWEN\\26795" <123456789a> Date: Fri, 20 Oct 2023 00:09:32 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=EF=BC=8880%=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderRefunds/OrderRefundApiDto.cs | 3 +- .../Api/OrderManage/Orders/AddCommentDto.cs | 36 ++++ .../Dto/Api/OrderManage/Orders/OrderCoupon.cs | 3 +- .../Vo/Api/OrderManage/Orders/Logistics.cs | 62 +++++++ .../Vo/Api/OrderManage/Orders/OrderApiVo.cs | 149 ++++++++-------- .../Vo/Api/OrderManage/Orders/OrderItem.cs | 56 ++++++ .../OrderRefunds/OrderRefundServiceApi.cs | 1 + .../OrderManage/Orders/OrderServiceApi.cs | 165 ++++++++++++++---- .../OrderManage/Orders/IOrderServiceApi.cs | 9 + .../Custom/Regions/RegionService.cs | 12 ++ .../Custom/Regions/IRegionService.cs | 7 + .../OrderRefunds/OrderRefundApiController.cs | 20 ++- .../OrderManage/Orders/OrderApiController.cs | 33 +++- 13 files changed, 445 insertions(+), 111 deletions(-) create mode 100644 ARW.Model/Dto/Api/OrderManage/Orders/AddCommentDto.cs create mode 100644 ARW.Model/Vo/Api/OrderManage/Orders/Logistics.cs create mode 100644 ARW.Model/Vo/Api/OrderManage/Orders/OrderItem.cs diff --git a/ARW.Model/Dto/Api/OrderManage/OrderRefunds/OrderRefundApiDto.cs b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/OrderRefundApiDto.cs index 5c3461e..f98ce1a 100644 --- a/ARW.Model/Dto/Api/OrderManage/OrderRefunds/OrderRefundApiDto.cs +++ b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/OrderRefundApiDto.cs @@ -12,8 +12,9 @@ namespace ARW.Model.Dto.Api.OrderManage.OrderRefunds /// @author lwh /// @date 2023-10-16 /// - public class OrderRefundQueryDtoApi : PagerInfo + public class OrderRefundQueryDtoApi : PagerInfo { + public long CustomerGuid { get; set; } public int? RefundType { get; set; } public int? RefundReason { get; set; } public int? GoodsReceiveStatus { get; set; } diff --git a/ARW.Model/Dto/Api/OrderManage/Orders/AddCommentDto.cs b/ARW.Model/Dto/Api/OrderManage/Orders/AddCommentDto.cs new file mode 100644 index 0000000..71e9657 --- /dev/null +++ b/ARW.Model/Dto/Api/OrderManage/Orders/AddCommentDto.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using ARW.Model.Models.Business.OrderManage.Orders; + +namespace ARW.Model.Dto.Api.OrderManage.Orders +{ + + /// + /// 添加评论对象Api + /// + /// @author lwh + /// @date 2023-10-19 + /// + public class AddCommentDto + { + public long CustomerGuid { get; set; } + + [Required(ErrorMessage = "订单guid不能为空")] + public long OrderGuid { get; set; } + + [Required(ErrorMessage = "商品guid不能为空")] + public long GoodsGuid { get; set; } + + [Required(ErrorMessage = "评分分数不能为空")] + public float GoodsCommentRating { get; set; } + + + [Required(ErrorMessage = "评价内容不能为空")] + public string GoodsCommentContent { get; set; } + + public string GoodsCommentImages { get; set; } + + } + +} diff --git a/ARW.Model/Dto/Api/OrderManage/Orders/OrderCoupon.cs b/ARW.Model/Dto/Api/OrderManage/Orders/OrderCoupon.cs index e1d0eeb..41880b8 100644 --- a/ARW.Model/Dto/Api/OrderManage/Orders/OrderCoupon.cs +++ b/ARW.Model/Dto/Api/OrderManage/Orders/OrderCoupon.cs @@ -14,6 +14,7 @@ namespace ARW.Model.Dto.Api.OrderManage.Orders /// public class OrderQueryDtoApi : PagerInfo { + public long CustomerGuid { get; set; } public string OrderNumber { get; set; } public int? PayType { get; set; } public int? PayStatus { get; set; } @@ -36,5 +37,5 @@ namespace ARW.Model.Dto.Api.OrderManage.Orders [Required(ErrorMessage = "OrderGuid不能为空")] public long OrderGuid { get; set; } } - + } diff --git a/ARW.Model/Vo/Api/OrderManage/Orders/Logistics.cs b/ARW.Model/Vo/Api/OrderManage/Orders/Logistics.cs new file mode 100644 index 0000000..f270c10 --- /dev/null +++ b/ARW.Model/Vo/Api/OrderManage/Orders/Logistics.cs @@ -0,0 +1,62 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; +using System.Collections.Generic; + +namespace ARW.Model.Vo.Api.OrderManage.Orders +{ + /// + /// 订单详情地址展示对象Api + /// + /// @author lwh + /// @date 2023-10-19 + /// + public class Logistics + { + + /// + /// 描述 : 收货地址Guid + /// + public long ReceiverAddressId { get; set; } + + + /// + /// 描述 : 收货人名称 + /// + public string ReceiverName { get; set; } + + + /// + /// 描述 : 收货人电话 + /// + public string ReceiverPhone { get; set; } + + + /// + /// 描述 : 省 + /// + public string ReceiverProvince { get; set; } + + + /// + /// 描述 : 市 + /// + public string ReceiverCity { get; set; } + + + /// + /// 描述 : 区 + /// + public string receiverCountry { get; set; } + + + /// + /// 描述 : 详细地址 + /// + public string ReceiverAddress { get; set; } + + + } + +} diff --git a/ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs b/ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs index e2ebe7c..35e2b38 100644 --- a/ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs +++ b/ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs @@ -104,79 +104,90 @@ namespace ARW.Model.Vo.Api.OrderManage.Orders { [EpplusIgnore] public int OrderId { get; set; } + + [JsonConverter(typeof(ValueToStringConverter))] [EpplusIgnore] public long OrderGuid { get; set; } - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusTableColumn(Header = "商品guid")] - public long GoodsGuid { get; set; } - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusTableColumn(Header = "订单流水guid")] - public long PaymentGuid { get; set; } - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusTableColumn(Header = "客户guid")] - public long CustomerGuid { get; set; } - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] - public long? ShopGuid { get; set; } - [EpplusTableColumn(Header = "订单号")] - public string OrderNumber { get; set; } - [EpplusTableColumn(Header = "商品总金额")] - public decimal GoodsTotalAmoun { get; set; } - [EpplusTableColumn(Header = "订单金额")] - public decimal OrderAmount { get; set; } - [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; } - [EpplusTableColumn(Header = "实际付款金额(包含运费)")] - public decimal PayPrice { get; set; } - [EpplusIgnore] - public decimal UpdatePrice { get; set; } - [EpplusIgnore] - public string OrderRemark { get; set; } - [EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")] - public int PayType { get; set; } - [EpplusTableColumn(Header = "付款状态(1未付款 2已付款)")] - public int PayStatus { get; set; } - [EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] - public DateTime? PayTime { get; set; } - [EpplusTableColumn(Header = "配送方式(1快递配送)")] - public int DeliveryType { get; set; } - [EpplusTableColumn(Header = "运费金额")] - public decimal ExpressPrice { get; set; } - [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] - public long? LogisticsCompanyGuid { get; set; } - [EpplusIgnore] - public string LogisticsCompany { get; set; } - [EpplusIgnore] - public string LogisticsTrackingNumber { get; set; } - [EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")] - public int DeliveryStatus { get; set; } - [EpplusIgnore] - public DateTime? DeliveryTime { get; set; } - [EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")] - public int ReceiptStatus { get; set; } - [EpplusIgnore] - public DateTime? ReceiptTime { get; set; } - [EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")] + + + /// + /// 店铺名称 + /// + public string StoreName { get; set; } + + + /// + /// 订单号 + /// + public string OrderNo { get; set; } + + + /// + /// 订单状态 + /// public int OrderStatus { get; set; } - [EpplusIgnore] - public decimal PointsBonus { get; set; } - [EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")] - public int IsSettled { get; set; } - [EpplusIgnore] - public string TransactionId { get; set; } - [EpplusTableColumn(Header = "是否已评价(1否 2是)")] - public int IsComment { get; set; } - [EpplusTableColumn(Header = "订单来源(1普通订单)")] - public int OrderSource { get; set; } + + + /// + /// 订单总额 + /// + public decimal TotalAmount { get; set; } + + + /// + /// 商品总额 + /// + public decimal GoodsAmount { get; set; } + + + /// + /// 支付金额 + /// + public decimal PaymentAmount { get; set; } + + + /// + /// 运费 + /// + public decimal FreightFee { get; set; } + + + /// + /// 优惠券金额 + /// + public decimal CouponAmount { get; set; } + + + /// + /// 备注 + /// + public string Remark { get; set; } + + + /// + /// 订单商品 + /// + public List OrderItemVOs { get; set; } + + + /// + /// 地址 + /// + public Logistics LogisticsVO { get; set; } + + + /// + /// 自动取消时间 + /// + public DateTime AutoCancelTime { get; set; } + + + /// + /// 订单状态名称 + /// + public string OrderStatusName { get; set; } + } diff --git a/ARW.Model/Vo/Api/OrderManage/Orders/OrderItem.cs b/ARW.Model/Vo/Api/OrderManage/Orders/OrderItem.cs new file mode 100644 index 0000000..d34b00b --- /dev/null +++ b/ARW.Model/Vo/Api/OrderManage/Orders/OrderItem.cs @@ -0,0 +1,56 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; +using System.Collections.Generic; + +namespace ARW.Model.Vo.Api.OrderManage.Orders +{ + /// + /// 订单详情商品展示对象Api + /// + /// @author lwh + /// @date 2023-10-19 + /// + public class OrderItem + { + + /// + /// 描述 : 商品Id + /// + public long SpuId { get; set; } + + + /// + /// 描述 : 商品SkuId + /// + public int? SkuId { get; set; } + + + /// + /// 描述 : 商品名称 + /// + public string GoodsName { get; set; } + + + /// + /// 描述 :商品规格 + /// + public List Specifications { get; set; } + + + /// + /// 描述 :商品图片 + /// + public string GoodsPictureUrl { get; set; } + + + /// + /// 描述 :购买数量 + /// + public decimal BuyQuantity { get; set; } + + + } + +} diff --git a/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs b/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs index e884d47..f4d0401 100644 --- a/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs +++ b/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs @@ -46,6 +46,7 @@ namespace ARW.Service.Api.BusinessService.OrderManage.OrderRefunds //开始拼装查询条件d var predicate = Expressionable.Create(); + predicate = predicate.AndIF(parm.CustomerGuid != 0, s => s.CustomerGuid == parm.CustomerGuid); predicate = predicate.AndIF(parm.RefundType != null, s => s.RefundType == parm.RefundType); predicate = predicate.AndIF(parm.RefundReason != null, s => s.RefundReason == parm.RefundReason); predicate = predicate.AndIF(parm.GoodsReceiveStatus != null, s => s.GoodsReceiveStatus == parm.GoodsReceiveStatus); diff --git a/ARW.Service/Api/BusinessService/OrderManage/Orders/OrderServiceApi.cs b/ARW.Service/Api/BusinessService/OrderManage/Orders/OrderServiceApi.cs index e1d2019..b88b9ec 100644 --- a/ARW.Service/Api/BusinessService/OrderManage/Orders/OrderServiceApi.cs +++ b/ARW.Service/Api/BusinessService/OrderManage/Orders/OrderServiceApi.cs @@ -18,6 +18,17 @@ using ARW.Repository.Business.GoodsManager.GoodsSpecs.Specs; using ARW.Repository.Business.GoodsManager.GoodsSpecs.SpecValues; using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.GoodsSkus; using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Models.Business.GoodsManager.GoodsComments; +using ARW.Repository.Business.GoodsManager.GoodsComments; +using ARW.Repository.Business.ShopManager.Shops; +using ARW.Model.Models.Business.ShopManager.Shops; +using System.Security.Cryptography.X509Certificates; +using ARW.Model.Vo.Api.GoodsManager.Goodss; +using Newtonsoft.Json; +using Senparc.CO2NET.Extensions; +using ARW.Repository.Business.OrderManage.OrderCustomerAddreses; +using ARW.Repository.Business.Custom.Regions; +using ARW.Service.Business.IBusinessService.Custom.Regions; namespace ARW.Service.Api.BusinessService.OrderManage.Orders { @@ -32,12 +43,16 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders { private readonly OrderRepository _OrderRepository; private readonly OrderGoodsRepository _OrderGoodsRepository; + private readonly OrderCustomerAddressRepository _OrderCustomerAddressRepository; private readonly GoodsRepository _GoodsRepository; private readonly GoodsSkuRepository _GoodsSkuRepository; + private readonly GoodsCommentRepository _GoodsCommentRepository; private readonly SpecRepository _SpecRepository; private readonly SpecValueRepository _SpecValueRepository; + private readonly ShopRepository _ShopRepository; + private readonly IRegionService _RegionService; - public OrderServiceImplApi(OrderRepository OrderRepository, OrderGoodsRepository orderGoodsRepository, GoodsRepository goodsRepository, GoodsSkuRepository goodsSkuRepository, SpecRepository specRepository, SpecValueRepository specValueRepository) + public OrderServiceImplApi(OrderRepository OrderRepository, OrderGoodsRepository orderGoodsRepository, GoodsRepository goodsRepository, GoodsSkuRepository goodsSkuRepository, SpecRepository specRepository, SpecValueRepository specValueRepository, GoodsCommentRepository goodsCommentRepository, ShopRepository shopRepository, OrderCustomerAddressRepository orderCustomerAddressRepository, IRegionService regionService) { this._OrderRepository = OrderRepository; _OrderGoodsRepository = orderGoodsRepository; @@ -45,6 +60,10 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders _GoodsSkuRepository = goodsSkuRepository; _SpecRepository = specRepository; _SpecValueRepository = specValueRepository; + _GoodsCommentRepository = goodsCommentRepository; + _ShopRepository = shopRepository; + _OrderCustomerAddressRepository = orderCustomerAddressRepository; + _RegionService = regionService; } #region Api接口代码 @@ -60,6 +79,7 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders //开始拼装查询条件d var predicate = Expressionable.Create(); + predicate = predicate.AndIF(parm.CustomerGuid != 0, s => s.CustomerGuid == parm.CustomerGuid); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.OrderNumber), s => s.OrderNumber.Contains(parm.OrderNumber)); predicate = predicate.AndIF(parm.OrderStatus != 0, s => s.OrderStatus == parm.OrderStatus); predicate = predicate.AndIF(parm.PayType != null, s => s.PayType == parm.PayType); @@ -130,9 +150,9 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders foreach (var item in orderGoodsList) { var good = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == item.GoodsGuid); - if(good.GoodsDeductStockType == 1) + if (good.GoodsDeductStockType == 1) { - if(item.GoodsSkuId != 0) + if (item.GoodsSkuId != 0) { var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == item.GoodsSkuId); sku.GoodsSkuStockNum += item.GoodsTotalNum; @@ -202,6 +222,44 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders } + /// + /// 评价 + /// + /// + /// + public async Task AddComment(GoodsComment model) + { + var good = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == model.GoodsGuid); + var shop = await _ShopRepository.GetFirstAsync(s => s.ShopGuid == good.ShopGuid); + + model.ShopGuid = shop.ShopGuid; + + if (model.GoodsCommentRating < 3) + { + model.GoodsCommentRatingType = 3; + } + if (model.GoodsCommentRating < 3.5 && model.GoodsCommentRating >= 2.5) + { + model.GoodsCommentRatingType = 2; + } + if (model.GoodsCommentRating >= 3.5) + { + model.GoodsCommentRatingType = 1; + } + + + model.GoodsCommentRecoverStatus = 1; + model.GoodsCommentSort = 100; + var response = await _GoodsCommentRepository.InsertReturnSnowflakeIdAsync(model); + + var order = await _OrderRepository.UpdateAsync(f => new Order + { + IsComment = 2 + }, f => f.OrderGuid == model.OrderGuid); + + return "添加成功!"; + } + /// /// 查询订单详情(Api) @@ -214,44 +272,81 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders var query = _OrderRepository .Queryable() .Where(s => s.OrderGuid == parm.OrderGuid) - .Select(s => new OrderApiDetailsVo + .LeftJoin((s, c) => s.ShopGuid == c.ShopGuid) + .Select((s, c) => new OrderApiDetailsVo { OrderId = s.OrderId, OrderGuid = s.OrderGuid, - PaymentGuid = s.PaymentGuid, - CustomerGuid = s.CustomerGuid, - 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, + StoreName = c.ShopName, + OrderNo = s.OrderNumber, + TotalAmount = s.OrderAmount, + GoodsAmount = s.GoodsTotalAmoun, + PaymentAmount = s.PayPrice, + FreightFee = s.OrderAmount, + CouponAmount = s.CouponMoney, + Remark = s.OrderRemark, }).Take(1); - return await query.ToJsonAsync(); + var json = await query.ToJsonAsync(); + + if (json != "[]") + { + json = json.Remove(0, 1); + json = json.Substring(0, json.Length - 1); + var data = JsonConvert.DeserializeObject(json); + + // 订单商品 + var orderItemList = new List(); + var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == data.OrderGuid); + foreach (var item in orderGoodsList) + { + var orderItem = new OrderItem(); + + var good = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == item.GoodsGuid); + + orderItem.SpuId = item.GoodsGuid; + orderItem.SkuId = item.GoodsSkuId; + orderItem.GoodsName = good.GoodsName; + orderItem.GoodsPictureUrl = good.GoodsPicture.Split(',').First(); + orderItem.BuyQuantity = item.GoodsTotalNum; + + if (item.GoodsSkuId != 0) + { + orderItem.Specifications = await GetGoodsSpecList(orderItem.SkuId); + } + + orderItemList.Add(orderItem); + } + data.OrderItemVOs = orderItemList; + + // 用户地址 + var customerAddress = await _OrderCustomerAddressRepository.GetFirstAsync(s => s.OrderGuid == data.OrderGuid); + if (customerAddress != null) + { + var logistics = new Logistics + { + ReceiverAddressId = customerAddress.CustomerAddressGuid, + ReceiverName = customerAddress.ConsigneeName, + ReceiverPhone = customerAddress.Phont, + ReceiverProvince = await _RegionService.GetRegionName(customerAddress.ProvinceId), + ReceiverCity = await _RegionService.GetRegionName(customerAddress.CityId), + receiverCountry = await _RegionService.GetRegionName(customerAddress.RegionId), + ReceiverAddress = customerAddress.Detail + }; + data.LogisticsVO = logistics; + } + + // 处理订单状态 + //if () + //{ + + //} + + json = data.ToJson(); + } + + return json; } diff --git a/ARW.Service/Api/IBusinessService/OrderManage/Orders/IOrderServiceApi.cs b/ARW.Service/Api/IBusinessService/OrderManage/Orders/IOrderServiceApi.cs index 7794cb6..0f9742b 100644 --- a/ARW.Service/Api/IBusinessService/OrderManage/Orders/IOrderServiceApi.cs +++ b/ARW.Service/Api/IBusinessService/OrderManage/Orders/IOrderServiceApi.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using ARW.Model; using ARW.Model.Dto.Api.OrderManage.Orders; +using ARW.Model.Models.Business.GoodsManager.GoodsComments; using ARW.Model.Models.Business.OrderManage.Orders; using ARW.Model.Vo.Api.OrderManage.Orders; @@ -50,6 +51,14 @@ namespace ARW.Service.Api.IBusinessService.OrderManage.Orders Task ConfirmReceipt(OrderDtoApi parm); + /// + /// 评价 + /// + /// + /// + Task AddComment(GoodsComment parm); + + /// /// 获取订单详情(Api) /// diff --git a/ARW.Service/Business/BusinessService/Custom/Regions/RegionService.cs b/ARW.Service/Business/BusinessService/Custom/Regions/RegionService.cs index 6080adb..623e5e9 100644 --- a/ARW.Service/Business/BusinessService/Custom/Regions/RegionService.cs +++ b/ARW.Service/Business/BusinessService/Custom/Regions/RegionService.cs @@ -161,6 +161,18 @@ namespace ARW.Service.Business.BusinessService.Custom.Regions } + /// + /// 获取省市区名称 + /// + /// id + /// + public async Task GetRegionName(int id) + { + var province = await _RegionRepository.GetFirstAsync(s => s.RegionId == id); + return province.RegionName; + } + + /// /// 获取省市区完整名称 diff --git a/ARW.Service/Business/IBusinessService/Custom/Regions/IRegionService.cs b/ARW.Service/Business/IBusinessService/Custom/Regions/IRegionService.cs index 3168d0a..9e99424 100644 --- a/ARW.Service/Business/IBusinessService/Custom/Regions/IRegionService.cs +++ b/ARW.Service/Business/IBusinessService/Custom/Regions/IRegionService.cs @@ -56,6 +56,13 @@ namespace ARW.Service.Business.IBusinessService.Custom.Regions /// Task GetRegionId(string RegionCode, int level); + /// + /// 获取省市区名称 + /// + /// id + /// + Task GetRegionName(int id); + /// /// 获取省市区完整名称 /// diff --git a/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs b/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs index a3f3ec6..1807dbd 100644 --- a/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs +++ b/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs @@ -19,6 +19,7 @@ using ARW.Model.Dto.Business.OrderManage.OrderRefunds; using ARW.Service.Business.IBusinessService.OrderManage.OrderRefunds; using ARW.Admin.WebApi.Framework; using ARW.Service.Business.IBusinessService.LogisticsManage.LogisticsCompanys; +using ARW.Service.System.IService; namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds { @@ -34,15 +35,17 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds { private readonly IOrderRefundServiceApi _OrderRefundServiceApi; private readonly ILogisticsCompanyService _LogisticsCompanyService; + private readonly ISysDictDataService _SysDictDataService; /// /// 依赖注入 /// /// 售后单记录表售后单记录表Api服务 - public OrderRefundApiController(IOrderRefundServiceApi OrderRefundServiceApi, ILogisticsCompanyService logisticsCompanyService) + public OrderRefundApiController(IOrderRefundServiceApi OrderRefundServiceApi, ILogisticsCompanyService logisticsCompanyService, ISysDictDataService sysDictDataService) { _OrderRefundServiceApi = OrderRefundServiceApi; _LogisticsCompanyService = logisticsCompanyService; + _SysDictDataService = sysDictDataService; } @@ -54,6 +57,9 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds [HttpGet("getOrderRefundList")] public async Task GetOrderRefundListApi([FromQuery] OrderRefundQueryDtoApi parm) { + var user = JwtUtil.GetLoginUser(App.HttpContext); + parm.CustomerGuid = user.UserId; + var res = await _OrderRefundServiceApi.GetOrderRefundListApi(parm); return SUCCESS(res); } @@ -97,6 +103,18 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds } + /// + /// 获取退款原因 + /// + /// + [HttpGet("getRefundReason")] + public async Task GetRefundReason() + { + var res = _SysDictDataService.SelectDictDataByType("refund_reason"); + return SUCCESS(res); + } + + /// /// 添加售后单记录表 /// diff --git a/ARW.WebApi/Controllers/Api/OrderManage/Orders/OrderApiController.cs b/ARW.WebApi/Controllers/Api/OrderManage/Orders/OrderApiController.cs index ddd069d..724d478 100644 --- a/ARW.WebApi/Controllers/Api/OrderManage/Orders/OrderApiController.cs +++ b/ARW.WebApi/Controllers/Api/OrderManage/Orders/OrderApiController.cs @@ -17,6 +17,10 @@ using Microsoft.AspNetCore.Authorization; using Geocoding; using ARW.Model.Dto.Api.Carts; using ARW.Service.Api.IBusinessService.Carts; +using ARW.Model.Models.Business.GoodsManager.GoodsComments; +using ARW.Admin.WebApi.Framework; +using ARW.Service.Business.IBusinessService.ShopManager.Shops; +using ARW.Model.Vo.Api.GoodsManager.Goodss; namespace ARW.WebApi.Controllers.Api.OrderManage.Orders { @@ -50,6 +54,9 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.Orders [HttpGet("getOrderList")] public async Task GetOrderListApi([FromQuery] OrderQueryDtoApi parm) { + var user = JwtUtil.GetLoginUser(App.HttpContext); + parm.CustomerGuid = user.UserId; + var res = await _OrderServiceApi.GetOrderListApi(parm); return SUCCESS(res); } @@ -103,6 +110,25 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.Orders } + /// + /// 评价 + /// + /// + /// + [HttpPost("addComment")] + [Log(Title = "评价", BusinessType = BusinessType.UPDATE)] + public async Task AddComment([FromBody] AddCommentDto parm) + { + if (parm == null) { throw new CustomException("请求参数错误"); } + var user = JwtUtil.GetLoginUser(App.HttpContext); + parm.CustomerGuid = user.UserId; + + var modal = parm.Adapt().ToCreate(HttpContext); + var res = await _OrderServiceApi.AddComment(modal); + return SUCCESS(res); + } + + /// /// 获取Order详情(Api) /// @@ -111,14 +137,12 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.Orders [HttpGet("getOrderDetails")] public async Task GetOrderDetails([FromQuery] OrderDtoApi parm) { - //if (parm == null) throw new CustomException("参数错误!"); + if (parm == null) throw new CustomException("参数错误!"); var res = await _OrderServiceApi.GetOrderDetails(parm); if (res != "[]") - { - res = res.Remove(0, 1); - res = res.Substring(0, res.Length - 1); + { var data = res.FromJSON(); return SUCCESS(data); } @@ -126,6 +150,7 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.Orders { return SUCCESS(res); } + } }