From e1a6a8434aaf079cd4a073e3f274229d83c1220f Mon Sep 17 00:00:00 2001
From: "AERWEN\\26795" <123456789a>
Date: Wed, 18 Oct 2023 03:18:07 +0800
Subject: [PATCH] =?UTF-8?q?fixed=20=E4=BF=AE=E6=94=B9=E4=BC=98=E6=83=A0?=
=?UTF-8?q?=E5=88=B8=E5=BA=97=E9=93=BA=E5=AD=97=E6=AE=B5=EF=BC=8C=E8=AE=A2?=
=?UTF-8?q?=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=BA=97=E9=93=BA=E5=AD=97=E6=AE=B5?=
=?UTF-8?q?=EF=BC=8C=E6=94=AF=E4=BB=98=E5=90=8E=E8=AE=A2=E5=8D=95=E7=9A=84?=
=?UTF-8?q?=E6=93=8D=E4=BD=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../OrderRefunds/AddOrderRefundApiDto.cs | 3 +
.../OrderRefunds/BuyerDeliveryApiDto.cs | 41 +++
ARW.Model/Dto/Api/Pay/GoodsRequest.cs | 12 +
.../CouponManage/Coupons/CouponDto.cs | 5 +-
.../OrderRefunds/OrderRefundAuditDto.cs | 31 +++
.../OrderRefunds/OrderRefundDto.cs | 2 +-
.../Business/OrderManage/Orders/OrderDto.cs | 1 +
.../Marketing/CouponManage/Coupons/Coupon.cs | 9 +
.../OrderManage/OrderRefunds/OrderRefund.cs | 19 ++
.../Business/OrderManage/Orders/Order.cs | 9 +
.../OrderRefunds/OrderRefundApiVo.cs | 13 +
.../Api/OrderManage/Orders/OrderShopApiVo.cs | 48 ++++
.../CouponManage/Coupons/CouponVo.cs | 13 +
.../OrderRefunds/OrderRefundDetailVo.cs | 6 +
.../OrderManage/OrderRefunds/OrderRefundVo.cs | 22 ++
.../BusinessService/Carts/CartServiceApi.cs | 4 +
.../OrderRefunds/OrderRefundServiceApi.cs | 33 +++
.../PayManage/PayServiceApi.cs | 257 +++++++++++-------
.../OrderRefunds/IOrderRefundServiceApi.cs | 23 +-
.../CouponManage/Coupons/CouponService.cs | 7 +-
.../OrderRefunds/OrderRefundService.cs | 66 ++++-
.../OrderManage/Orders/OrderService.cs | 1 +
.../OrderRefunds/IOrderRefundService.cs | 11 +-
.../OrderRefunds/OrderRefundApiController.cs | 87 ++++--
.../CouponManage/Coupons/CouponController.cs | 21 +-
.../OrderRefunds/OrderRefundController.cs | 45 ++-
.../OrderManage/Orders/OrderController.cs | 13 +-
27 files changed, 650 insertions(+), 152 deletions(-)
create mode 100644 ARW.Model/Dto/Api/OrderManage/OrderRefunds/BuyerDeliveryApiDto.cs
create mode 100644 ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundAuditDto.cs
create mode 100644 ARW.Model/Vo/Api/OrderManage/Orders/OrderShopApiVo.cs
diff --git a/ARW.Model/Dto/Api/OrderManage/OrderRefunds/AddOrderRefundApiDto.cs b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/AddOrderRefundApiDto.cs
index 9ae3d02..4bdf1e0 100644
--- a/ARW.Model/Dto/Api/OrderManage/OrderRefunds/AddOrderRefundApiDto.cs
+++ b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/AddOrderRefundApiDto.cs
@@ -21,6 +21,9 @@ namespace ARW.Model.Dto.Api.OrderManage.OrderRefunds
[Required(ErrorMessage = "订单guid不能为空")]
public long OrderGuid { get; set; }
+ [Required(ErrorMessage = "店铺guid不能为空")]
+ public long ShopGuid { get; set; }
+
public long CustomerGuid { get; set; }
[Required(ErrorMessage = "售后类型(1退货退款 2退货(无需退款) 3换货)不能为空")]
diff --git a/ARW.Model/Dto/Api/OrderManage/OrderRefunds/BuyerDeliveryApiDto.cs b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/BuyerDeliveryApiDto.cs
new file mode 100644
index 0000000..7c361e2
--- /dev/null
+++ b/ARW.Model/Dto/Api/OrderManage/OrderRefunds/BuyerDeliveryApiDto.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using ARW.Model.Models.Business.OrderManage.OrderRefunds;
+
+namespace ARW.Model.Dto.Api.OrderManage.OrderRefunds
+{
+
+ ///
+ /// 买家发货对象Api
+ ///
+ /// @author lwh
+ /// @date 2023-10-17
+ ///
+ public class BuyerDeliveryApiDto
+ {
+ public int OrderRefundId { get; set; }
+
+ public long OrderRefundGuid { get; set; }
+
+ ///
+ /// 物流公司guid
+ ///
+ [Required(ErrorMessage = "物流公司guid不能为空")]
+ public long LogisticsCompanyGuid { get; set; }
+
+ ///
+ /// 客户发货物流单号
+ ///
+ public string ExpressNo { get; set; }
+
+
+ ///
+ /// 客户发货备注
+ ///
+ public string CustomerWaybillRemark { get; set; }
+
+ }
+
+
+}
diff --git a/ARW.Model/Dto/Api/Pay/GoodsRequest.cs b/ARW.Model/Dto/Api/Pay/GoodsRequest.cs
index 98a2c34..d7713cb 100644
--- a/ARW.Model/Dto/Api/Pay/GoodsRequest.cs
+++ b/ARW.Model/Dto/Api/Pay/GoodsRequest.cs
@@ -36,5 +36,17 @@ namespace ARW.Model.Dto.Api.Pay
///
public int Quantity { get; set; }
+
+ ///
+ /// 店铺guid
+ ///
+ public long StoreId { get; set; }
+
+
+ ///
+ /// 购物车加入时间
+ ///
+ public DateTime JoinCartTime { get; set; }
+
}
}
diff --git a/ARW.Model/Dto/Business/Marketing/CouponManage/Coupons/CouponDto.cs b/ARW.Model/Dto/Business/Marketing/CouponManage/Coupons/CouponDto.cs
index 4748f59..4785a00 100644
--- a/ARW.Model/Dto/Business/Marketing/CouponManage/Coupons/CouponDto.cs
+++ b/ARW.Model/Dto/Business/Marketing/CouponManage/Coupons/CouponDto.cs
@@ -21,6 +21,9 @@ namespace ARW.Model.Dto.Business.Marketing.CouponManage.Coupons
public long CouponGuid { get; set; }
+ public long ShopGuid { get; set; }
+
+
[Required(ErrorMessage = "优惠劵名称不能为空")]
public string CouponName { get; set; }
@@ -78,7 +81,7 @@ namespace ARW.Model.Dto.Business.Marketing.CouponManage.Coupons
///
public class CouponQueryDto : PagerInfo
{
-
+ public long ShopGuid { get; set; }
public string CouponName { get; set; }
public int? CouponType { get; set; }
diff --git a/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundAuditDto.cs b/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundAuditDto.cs
new file mode 100644
index 0000000..0ce6825
--- /dev/null
+++ b/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundAuditDto.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using ARW.Model.Models.Business.OrderManage.OrderRefunds;
+
+namespace ARW.Model.Dto.Business.OrderManage.OrderRefunds
+{
+ ///
+ /// 售后单记录表输入对象
+ ///
+ /// @author lwh
+ /// @date 2023-10-17
+ ///
+ public class OrderRefundAuditDto
+ {
+
+ public int OrderRefundId { get; set; }
+
+ [Required(ErrorMessage = "售后单guid不能为空!")]
+ public long OrderRefundGuid { get; set; }
+
+
+ public bool IsAgree { get; set; }
+
+ public string MerchantRefuseDesc { get; set; }
+
+ public long? ShopAddressGuid { get; set; }
+
+ }
+
+}
diff --git a/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundDto.cs b/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundDto.cs
index 31b092d..a2c179d 100644
--- a/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundDto.cs
+++ b/ARW.Model/Dto/Business/OrderManage/OrderRefunds/OrderRefundDto.cs
@@ -74,7 +74,7 @@ namespace ARW.Model.Dto.Business.OrderManage.OrderRefunds
///
public class OrderRefundQueryDto : PagerInfo
{
-
+ public long ShopGuid { get; set; }
public int? RefundType { get; set; }
public int? RefundReason { get; set; }
diff --git a/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs b/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs
index 6acf226..cb50764 100644
--- a/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs
+++ b/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs
@@ -116,6 +116,7 @@ namespace ARW.Model.Dto.Business.OrderManage.Orders
public class OrderQueryDto : PagerInfo
{
+ public long ShopGuid { get; set; }
public string OrderNumber { get; set; }
public int? PayType { get; set; }
diff --git a/ARW.Model/Models/Business/Marketing/CouponManage/Coupons/Coupon.cs b/ARW.Model/Models/Business/Marketing/CouponManage/Coupons/Coupon.cs
index 2c09609..a653897 100644
--- a/ARW.Model/Models/Business/Marketing/CouponManage/Coupons/Coupon.cs
+++ b/ARW.Model/Models/Business/Marketing/CouponManage/Coupons/Coupon.cs
@@ -35,6 +35,15 @@ namespace ARW.Model.Models.Business.Marketing.CouponManage.Coupons
public long CouponGuid { get; set; }
+ ///
+ /// 描述 :
+ /// 空值 : false
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName = "shop_guid")]
+ public long ShopGuid { get; set; }
+
+
///
/// 描述 :优惠劵名称
/// 空值 : false
diff --git a/ARW.Model/Models/Business/OrderManage/OrderRefunds/OrderRefund.cs b/ARW.Model/Models/Business/OrderManage/OrderRefunds/OrderRefund.cs
index 8ce3596..ba043a1 100644
--- a/ARW.Model/Models/Business/OrderManage/OrderRefunds/OrderRefund.cs
+++ b/ARW.Model/Models/Business/OrderManage/OrderRefunds/OrderRefund.cs
@@ -35,6 +35,16 @@ namespace ARW.Model.Models.Business.OrderManage.OrderRefunds
public long OrderRefundGuid { get; set; }
+ ///
+ /// 描述 :店铺guid
+ /// 空值 : false
+ ///
+ [EpplusTableColumn(Header = "店铺guid")]
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName = "shop_guid")]
+ public long ShopGuid { get; set; }
+
+
///
/// 描述 :订单guid
/// 空值 : false
@@ -199,6 +209,15 @@ namespace ARW.Model.Models.Business.OrderManage.OrderRefunds
public string ExpressNo { get; set; }
+ ///
+ /// 描述 :客户发货备注
+ /// 空值 : true
+ ///
+ [EpplusTableColumn(Header = "客户发货备注")]
+ [SugarColumn(ColumnName = "customer_waybill_remark")]
+ public string CustomerWaybillRemark { get; set; }
+
+
///
/// 描述 :售后单状态(1进行中 2已拒绝 3已完成 4已取消)
/// 空值 : false
diff --git a/ARW.Model/Models/Business/OrderManage/Orders/Order.cs b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs
index 509260c..a702506 100644
--- a/ARW.Model/Models/Business/OrderManage/Orders/Order.cs
+++ b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs
@@ -55,6 +55,15 @@ namespace ARW.Model.Models.Business.OrderManage.Orders
public long CustomerGuid { get; set; }
+ ///
+ /// 描述 :店铺guid
+ /// 空值 : false
+ ///
+ [EpplusTableColumn(Header = "店铺guid")]
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName = "shop_guid")]
+ public long ShopGuid { get; set; }
+
///
/// 描述 :购物车Id
/// 空值 : false
diff --git a/ARW.Model/Vo/Api/OrderManage/OrderRefunds/OrderRefundApiVo.cs b/ARW.Model/Vo/Api/OrderManage/OrderRefunds/OrderRefundApiVo.cs
index 25c6306..0c702dd 100644
--- a/ARW.Model/Vo/Api/OrderManage/OrderRefunds/OrderRefundApiVo.cs
+++ b/ARW.Model/Vo/Api/OrderManage/OrderRefunds/OrderRefundApiVo.cs
@@ -145,6 +145,19 @@ namespace ARW.Model.Vo.Api.OrderManage.OrderRefunds
[EpplusTableColumn(Header = "售后单状态(1进行中 2已拒绝 3已完成 4已取消)")]
public int OrderRefundStatus { get; set; }
+
+ ///
+ /// 描述 :客户发货备注
+ /// 空值 : true
+ ///
+ [EpplusTableColumn(Header = "客户发货备注")]
+ public string CustomerWaybillRemark { get; set; }
+
+
+ ///
+ /// 商家收货时间
+ ///
+ public DateTime? MerchantReceiveTime { get; set; }
}
diff --git a/ARW.Model/Vo/Api/OrderManage/Orders/OrderShopApiVo.cs b/ARW.Model/Vo/Api/OrderManage/Orders/OrderShopApiVo.cs
new file mode 100644
index 0000000..b195743
--- /dev/null
+++ b/ARW.Model/Vo/Api/OrderManage/Orders/OrderShopApiVo.cs
@@ -0,0 +1,48 @@
+using ARW.Model.Dto.Api.Pay;
+using ARW.Model.Models.Business.OrderManage.Orders;
+using ARW.Model.Vo.Api.Carts;
+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-17
+ ///
+ public class OrderShopApiVo
+ {
+ ///
+ /// 描述 : 店铺Id
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ public long ShopGuid { get; set; }
+
+
+ ///
+ /// 订单号
+ ///
+ public string OrderNo { get; set; }
+
+
+ ///
+ /// 该店铺待结算列表
+ ///
+ public List OrderShopGoodsRequestList { get; set; }
+
+
+ ///
+ /// 关联购物车ids
+ ///
+ public List CartIdsList { get; set; }
+
+ }
+
+
+
+}
diff --git a/ARW.Model/Vo/Business/Marketing/CouponManage/Coupons/CouponVo.cs b/ARW.Model/Vo/Business/Marketing/CouponManage/Coupons/CouponVo.cs
index c3905e6..ffa1dec 100644
--- a/ARW.Model/Vo/Business/Marketing/CouponManage/Coupons/CouponVo.cs
+++ b/ARW.Model/Vo/Business/Marketing/CouponManage/Coupons/CouponVo.cs
@@ -36,6 +36,19 @@ namespace ARW.Model.Vo.Business.Marketing.CouponManage.Coupons
[EpplusTableColumn(Header = "优惠劵名称")]
public string CouponName { get; set; }
+ ///
+ /// 描述 :
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ public long ShopGuid { get; set; }
+
+
+ ///
+ /// 描述 :店铺名称
+ ///
+ [EpplusTableColumn(Header = "店铺名称")]
+ public string ShopName { get; set; }
+
///
/// 描述 :优惠劵介绍
///
diff --git a/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundDetailVo.cs b/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundDetailVo.cs
index 8c2f112..14834f2 100644
--- a/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundDetailVo.cs
+++ b/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundDetailVo.cs
@@ -39,6 +39,12 @@ namespace ARW.Model.Vo.Business.OrderManage.OrderRefunds
public long OrderGuid { get; set; }
+ ///
+ /// 描述 : 店铺guid
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ public long ShopGuid { get; set; }
+
///
/// 描述 :订单号
///
diff --git a/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundVo.cs b/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundVo.cs
index 17f2419..46a499b 100644
--- a/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundVo.cs
+++ b/ARW.Model/Vo/Business/OrderManage/OrderRefunds/OrderRefundVo.cs
@@ -40,6 +40,14 @@ namespace ARW.Model.Vo.Business.OrderManage.OrderRefunds
public long OrderGuid { get; set; }
+ ///
+ /// 描述 :店铺guid
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [EpplusTableColumn(Header = "店铺guid")]
+ public long ShopGuid { get; set; }
+
+
///
/// 描述 :订单号
///
@@ -48,6 +56,20 @@ namespace ARW.Model.Vo.Business.OrderManage.OrderRefunds
public string OrderNumber { get; set; }
+ ///
+ /// 描述 :实际付款
+ ///
+ [EpplusTableColumn(Header = "实际付款")]
+ public decimal PayPrice { get; set; }
+
+
+ ///
+ /// 描述 :运费
+ ///
+ [EpplusTableColumn(Header = "运费")]
+ public decimal ExpressPrice { get; set; }
+
+
///
/// 商品信息
///
diff --git a/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs b/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
index 24521d0..d166265 100644
--- a/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
+++ b/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
@@ -99,6 +99,8 @@ namespace ARW.Service.Api.BusinessService.Carts
shopCart.StoreName = shop.ShopName;
var promotionGoodsList = new List();
+
+ #region 购物车优惠券算法
// 查找当前客户可使用的优惠券
//var couponList = await _CustomerCouponRepository.GetListAsync(s => s.CustomerGuid == parm.CustomerGuid && s.CustomerCouponIsUsed == 1 && s.CustomerCouponIsExpired == 1);
@@ -174,6 +176,8 @@ namespace ARW.Service.Api.BusinessService.Carts
//}
//else // 如果没有优惠券
//{
+ #endregion
+
var promotionGoods = new PromotionGoods();
var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
diff --git a/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs b/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs
index 7f851b6..e884d47 100644
--- a/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs
+++ b/ARW.Service/Api/BusinessService/OrderManage/OrderRefunds/OrderRefundServiceApi.cs
@@ -13,6 +13,7 @@ using ARW.Service.Api.IBusinessService.OrderManage.OrderRefunds;
using ARW.Model.Dto.Api.OrderManage.OrderRefunds;
using ARW.Model.Models.Business.OrderManage.OrderRefunds;
using ARW.Model.Vo.Api.OrderManage.OrderRefunds;
+using System.Reflection.Metadata;
namespace ARW.Service.Api.BusinessService.OrderManage.OrderRefunds
{
@@ -75,6 +76,8 @@ namespace ARW.Service.Api.BusinessService.OrderManage.OrderRefunds
LogisticsCompanyGuid = s.LogisticsCompanyGuid,
ExpressNo = s.ExpressNo,
OrderRefundStatus = s.OrderRefundStatus,
+ CustomerWaybillRemark = s.CustomerWaybillRemark,
+ MerchantReceiveTime = s.MerchantReceiveTime
});
@@ -99,6 +102,36 @@ namespace ARW.Service.Api.BusinessService.OrderManage.OrderRefunds
}
+ ///
+ /// 撤销申请
+ ///
+ public async Task RepealOrderRefund(AddOrderRefundApiDto parm)
+ {
+ var response = await _OrderRefundRepository.UpdateAsync(f => new OrderRefund
+ {
+ OrderRefundStatus = 4
+ }, s => s.OrderRefundGuid == parm.OrderRefundGuid);
+ return "撤销成功!";
+ }
+
+
+ ///
+ /// 买家发货(填写运单号)
+ ///
+ public async Task BuyerDelivery(BuyerDeliveryApiDto parm)
+ {
+ var response = await _OrderRefundRepository.UpdateAsync(f => new OrderRefund
+ {
+ LogisticsCompanyGuid = parm.LogisticsCompanyGuid,
+ ExpressNo = parm.ExpressNo,
+ CustomerWaybillRemark = parm.CustomerWaybillRemark,
+ IsCustomerSend = 2,
+ CustomerSendTime = DateTime.Now,
+ }, s => s.OrderRefundGuid == parm.OrderRefundGuid);
+ return "发货成功!";
+ }
+
+
///
/// 查询售后单记录表详情(Api)
diff --git a/ARW.Service/Api/BusinessService/PayManage/PayServiceApi.cs b/ARW.Service/Api/BusinessService/PayManage/PayServiceApi.cs
index 7289920..5c14299 100644
--- a/ARW.Service/Api/BusinessService/PayManage/PayServiceApi.cs
+++ b/ARW.Service/Api/BusinessService/PayManage/PayServiceApi.cs
@@ -31,6 +31,8 @@ using ARW.Model.Models.Business.Carts;
using ARW.Repository.Business.Marketing.CouponManage.CustomerCoupons;
using ARW.Model.Models.Business.Marketing.CouponManage.CustomerCoupons;
using ARW.Model.Vo.Business.Marketing.CouponManage.CustomerCoupons;
+using System.Linq;
+using ARW.Model.Vo.Api.OrderManage.Orders;
namespace ARW.Service.Api.BusinessService.PaymentManage
{
@@ -119,6 +121,7 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
// 生成订单号
var orderNo = Common.Common.CreateNoQuery();
+
// 调用统一下单(接口)
Pay pay = new Pay(_httpClient);
var payEntity = await pay.PrePay(parm.OpenId, orderNo, parm.PayType, price);
@@ -138,10 +141,6 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
var paymentGuid = await AddPayment(parm, orderNo, totalPrice, afterPriceRes.DiscountPrice);
/* 添加业务订单 */
var orderGuid = await AddOrder(parm, orderNo, paymentGuid, goodsPrice, afterPriceRes, freight);
- /* 添加订单商品 */
- await AddOrderGoods(parm, orderGuid);
- /* 添加订单用户地址 */
- await AddOrderCustomerAddress(parm, orderGuid);
#endregion
@@ -169,10 +168,10 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
public async Task HandleNotify(OrderReturnJson res)
{
/* 修改订单流水 */
- await UpdatePayment(res);
+ var paymentGuid = await UpdatePayment(res);
/* 修改业务订单 */
- await UpdateOrder(res);
+ await UpdateOrder(res, paymentGuid);
}
@@ -321,45 +320,97 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
///
public async Task AddOrder(CommitPayDtoApi parm, string orderNo, long paymentGuid, decimal beforeMoney, DiscountRes discountRes, decimal freight)
{
- Model.Models.Business.OrderManage.Orders.Order order = new()
- {
- PaymentGuid = paymentGuid,
- CustomerGuid = parm.UserId,
- OrderNumber = orderNo,
- CouponGuid = discountRes?.CouponGuid,
- CouponMoney = discountRes.CouponMoney,
- GoodsTotalAmoun = beforeMoney,
- OrderAmount = discountRes.DiscountPrice,
- //PayPrice = discountRes.DiscountPrice,
- OrderRemark = parm?.Remark,
- PayType = parm.PayType,
- PayStatus = 1,
- DeliveryStatus = 1,
- ReceiptStatus = 1,
- IsComment = 1,
- IsSettled = 1,
- OrderSource = 1,
- OrderStatus = 1,
- DeliveryType = 1,
- ExpressPrice = freight,
- };
- // 关联购物车ids
- var idsList = new List();
- foreach (var item in parm.GoodsRequestList)
+ // 找到店铺的Guids
+ var sameShopGuids = parm.GoodsRequestList
+ .OrderByDescending(s => s.JoinCartTime)
+ .Select(item => item.StoreId)
+ .Distinct()
+ .ToList();
+
+ var res = new List();
+
+ // 循环每个店铺中的待结算订单商品记录
+ foreach (var shopGuid in sameShopGuids)
{
- idsList.Add(item.CartId);
+ var orderShop = new OrderShopApiVo();
+ orderShop.ShopGuid = shopGuid;
+ orderShop.OrderNo = Common.Common.CreateNoQuery();
+ var orderShopGoodsRequestList = new List();
+ var CartIdsList = new List();
+
+ foreach (var item in parm.GoodsRequestList)
+ {
+ if (item.StoreId == shopGuid)
+ {
+ orderShopGoodsRequestList.Add(item);
+ // 关联购物车ids
+ CartIdsList.Add(item.CartId);
+ }
+ }
+
+ orderShop.OrderShopGoodsRequestList = orderShopGoodsRequestList;
+ orderShop.CartIdsList = CartIdsList;
+
+ res.Add(orderShop);
}
- var idsArrar = idsList.ToArray();
- order.CartIds = string.Join(",", idsList);
-
- var response = await _OrderRepository.InsertReturnSnowflakeIdAsync(order);
- if (response == 0)
- throw new CustomException("业务订单数据加入失败");
+ // 循环整理好的各个店铺的订单
+ foreach (var item in res)
+ {
+ /* 计算商品总价 */
+ var commitPayDtoApi = new CommitPayDtoApi()
+ {
+ UserId = parm.UserId,
+ GoodsRequestList = item.OrderShopGoodsRequestList,
+ CustomerAddressGuid = parm.CustomerAddressGuid
+ };
+ var goodsTotalMoney = await CalculateBeforePrice(commitPayDtoApi);
- return response;
+ /* 计算运费 */
+ GoodsFreightDto goodsFreightDto = new()
+ {
+ GoodsRequestList = item.OrderShopGoodsRequestList,
+ CustomerAddressGuid = parm.CustomerAddressGuid,
+ };
+ freight = await _GoodsServiceApi.GetGoodsFreight(goodsFreightDto);
+
+ Model.Models.Business.OrderManage.Orders.Order order = new()
+ {
+ PaymentGuid = paymentGuid,
+ CustomerGuid = parm.UserId,
+ OrderNumber = item.OrderNo,
+ ShopGuid = item.ShopGuid,
+ CouponGuid = discountRes?.CouponGuid,
+ CouponMoney = discountRes.CouponMoney,
+ GoodsTotalAmoun = goodsTotalMoney,
+ OrderAmount = discountRes.DiscountPrice,
+ OrderRemark = parm?.Remark,
+ PayType = parm.PayType,
+ PayStatus = 1,
+ DeliveryStatus = 1,
+ ReceiptStatus = 1,
+ IsComment = 1,
+ IsSettled = 1,
+ OrderSource = 1,
+ OrderStatus = 1,
+ DeliveryType = 1,
+ ExpressPrice = freight,
+ };
+
+
+ var response = await _OrderRepository.InsertReturnSnowflakeIdAsync(order);
+ if (response == 0)
+ throw new CustomException("业务订单数据加入失败");
+
+ /* 添加订单商品 */
+ await AddOrderGoods(commitPayDtoApi, response);
+ /* 添加订单用户地址 */
+ await AddOrderCustomerAddress(commitPayDtoApi, response);
+ }
+
+ return 0;
}
@@ -471,7 +522,7 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
///
///
///
- public async Task UpdatePayment(OrderReturnJson res)
+ public async Task UpdatePayment(OrderReturnJson res)
{
await _PaymentRepository.UpdateAsync(f => new Payment
{
@@ -480,6 +531,9 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
PaymentStatus = 2,
Update_time = DateTime.Now,
}, f => f.PaymentNumber == res.out_trade_no);
+
+ var payment = await _PaymentRepository.GetFirstAsync(s => s.PaymentNumber == res.out_trade_no);
+ return payment.PaymentGuid;
}
@@ -488,78 +542,83 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
///
///
///
- public async Task UpdateOrder(OrderReturnJson res)
+ public async Task UpdateOrder(OrderReturnJson res, long paymentGuid)
{
+ var orderList = await _OrderRepository.GetListAsync(s => s.PaymentGuid == paymentGuid);
- await _OrderRepository.UpdateAsync(f => new Model.Models.Business.OrderManage.Orders.Order
+ foreach (var item in orderList)
{
- TransactionId = res.transaction_id,
- PayPrice = res.amount.payer_total / 100,
- PayStatus = 2,
- PayTime = DateTime.Now,
- Update_time = DateTime.Now,
- }, f => f.OrderNumber == res.out_trade_no);
-
- var order = await _OrderRepository.GetFirstAsync(s => s.OrderNumber == res.out_trade_no);
-
-
- /* 删除购物车中对应的商品 */
- var cartIds = Tools.SpitIntArrary(order.CartIds);
- foreach (var cartId in cartIds)
- {
- await _CartRepository.UpdateAsync(s => new Cart
+ await _OrderRepository.UpdateAsync(f => new Model.Models.Business.OrderManage.Orders.Order
{
- IsDelete = true,
- }, s => s.CartId == cartId);
- }
+ TransactionId = res.transaction_id,
+ PayPrice = item.GoodsTotalAmoun,
+ PayStatus = 2,
+ PayTime = DateTime.Now,
+ Update_time = DateTime.Now,
+ }, f => f.OrderGuid == item.OrderGuid);
- /* 对应优惠券修改为已使用 */
- if (order.CouponGuid != 0)
- {
- var customer = await _CustomerRepository.GetFirstAsync(s => s.CustomerXcxOpenid == res.payer.openid);
- var customerCoupon = await _CustomerCouponRepository.GetFirstAsync(s => s.CouponGuid == order.CouponGuid && s.CustomerGuid == customer.CustomerGuid);
- await _CustomerCouponRepository.UpdateAsync(s => new CustomerCoupon
+
+ var order = await _OrderRepository.GetFirstAsync(s => s.OrderNumber == item.OrderNumber);
+
+
+ /* 删除购物车中对应的商品 */
+ var cartIds = Tools.SpitIntArrary(order.CartIds);
+ foreach (var cartId in cartIds)
{
- CustomerCouponIsUsed = 2,
- }, s => s.CustomerCouponId == customerCoupon.CustomerCouponId);
- }
-
-
- /* 店铺和商品的销售数量增加 对应库存减少*/
- var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == order.OrderGuid);
- foreach (var orderGood in orderGoodsList)
- {
- var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == orderGood.GoodsGuid);
- var shop = await _ShopRepository.GetFirstAsync(s => s.ShopGuid == goods.ShopGuid);
-
- goods.GoodsSalesActual += orderGood.GoodsTotalNum;
- await _GoodsRepository.UpdateAsync(goods);
- shop.ShopSalesOrderCount += orderGood.GoodsTotalNum;
- await _ShopRepository.UpdateAsync(shop);
-
- if (goods.GoodsDeductStockType == 2)
- {
- if (orderGood.GoodsSkuId != 0)
+ await _CartRepository.UpdateAsync(s => new Cart
{
- var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == orderGood.GoodsSkuId);
- sku.GoodsSkuStockNum -= orderGood.GoodsTotalNum;
- goods.GoodsTotalInventory -= orderGood.GoodsTotalNum;
- await _GoodsSkuRepository.UpdateAsync(sku);
- await _GoodsRepository.UpdateAsync(goods);
- }
- else
+ IsDelete = true,
+ }, s => s.CartId == cartId);
+ }
+
+ /* 对应优惠券修改为已使用 */
+ if (order.CouponGuid != 0)
+ {
+ var customer = await _CustomerRepository.GetFirstAsync(s => s.CustomerXcxOpenid == res.payer.openid);
+ var customerCoupon = await _CustomerCouponRepository.GetFirstAsync(s => s.CouponGuid == order.CouponGuid && s.CustomerGuid == customer.CustomerGuid);
+ await _CustomerCouponRepository.UpdateAsync(s => new CustomerCoupon
{
- goods.GoodsTotalInventory -= orderGood.GoodsTotalNum;
- await _GoodsRepository.UpdateAsync(goods);
+ CustomerCouponIsUsed = 2,
+ }, s => s.CustomerCouponId == customerCoupon.CustomerCouponId);
+ }
+
+
+ /* 店铺和商品的销售数量增加 对应库存减少*/
+ var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == order.OrderGuid);
+ foreach (var orderGood in orderGoodsList)
+ {
+ var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == orderGood.GoodsGuid);
+ var shop = await _ShopRepository.GetFirstAsync(s => s.ShopGuid == goods.ShopGuid);
+
+ goods.GoodsSalesActual += orderGood.GoodsTotalNum;
+ await _GoodsRepository.UpdateAsync(goods);
+ shop.ShopSalesOrderCount += orderGood.GoodsTotalNum;
+ await _ShopRepository.UpdateAsync(shop);
+
+ if (goods.GoodsDeductStockType == 2)
+ {
+ if (orderGood.GoodsSkuId != 0)
+ {
+ var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == orderGood.GoodsSkuId);
+ sku.GoodsSkuStockNum -= orderGood.GoodsTotalNum;
+ goods.GoodsTotalInventory -= orderGood.GoodsTotalNum;
+ await _GoodsSkuRepository.UpdateAsync(sku);
+ await _GoodsRepository.UpdateAsync(goods);
+ }
+ else
+ {
+ goods.GoodsTotalInventory -= orderGood.GoodsTotalNum;
+ await _GoodsRepository.UpdateAsync(goods);
+ }
}
}
+
+
+ /* 积分操作*/
+
}
- /* 积分操作*/
-
-
-
}
diff --git a/ARW.Service/Api/IBusinessService/OrderManage/OrderRefunds/IOrderRefundServiceApi.cs b/ARW.Service/Api/IBusinessService/OrderManage/OrderRefunds/IOrderRefundServiceApi.cs
index 63ce7b4..7386c77 100644
--- a/ARW.Service/Api/IBusinessService/OrderManage/OrderRefunds/IOrderRefundServiceApi.cs
+++ b/ARW.Service/Api/IBusinessService/OrderManage/OrderRefunds/IOrderRefundServiceApi.cs
@@ -26,6 +26,14 @@ namespace ARW.Service.Api.IBusinessService.OrderManage.OrderRefunds
Task> GetOrderRefundListApi(OrderRefundQueryDtoApi parm);
+ ///
+ /// 获取售后单记录表详情(Api)
+ ///
+ ///
+ ///
+ Task GetOrderRefundDetails(OrderRefundDtoApi parm);
+
+
///
/// 添加售后单记录表
///
@@ -35,11 +43,22 @@ namespace ARW.Service.Api.IBusinessService.OrderManage.OrderRefunds
///
- /// 获取售后单记录表详情(Api)
+ /// 撤销申请
///
///
///
- Task GetOrderRefundDetails(OrderRefundDtoApi parm);
+ Task RepealOrderRefund(AddOrderRefundApiDto parm);
+
+
+
+ ///
+ /// 买家发货(填写运单号)
+ ///
+ ///
+ ///
+ Task BuyerDelivery(BuyerDeliveryApiDto parm);
+
+
}
}
diff --git a/ARW.Service/Business/BusinessService/Marketing/CouponManage/Coupons/CouponService.cs b/ARW.Service/Business/BusinessService/Marketing/CouponManage/Coupons/CouponService.cs
index f1129b3..b4cf3ab 100644
--- a/ARW.Service/Business/BusinessService/Marketing/CouponManage/Coupons/CouponService.cs
+++ b/ARW.Service/Business/BusinessService/Marketing/CouponManage/Coupons/CouponService.cs
@@ -14,6 +14,7 @@ using ARW.Service.Business.IBusinessService.Marketing.CouponManage.Coupons;
using ARW.Model.Dto.Business.Marketing.CouponManage.Coupons;
using ARW.Model.Models.Business.Marketing.CouponManage.Coupons;
using ARW.Model.Vo.Business.Marketing.CouponManage.Coupons;
+using ARW.Model.Models.Business.ShopManager.Shops;
namespace ARW.Service.Business.BusinessService.Marketing.CouponManage.Coupons
{
@@ -44,6 +45,7 @@ namespace ARW.Service.Business.BusinessService.Marketing.CouponManage.Coupons
//开始拼装查询条件d
var predicate = Expressionable.Create();
+ predicate = predicate.AndIF(parm.ShopGuid != 0, s => s.ShopGuid == parm.ShopGuid);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.CouponName), s => s.CouponName.Contains(parm.CouponName));
predicate = predicate.AndIF(parm.CouponType != null, s => s.CouponType == parm.CouponType);
predicate = predicate.AndIF(parm.CouponExpireType != null, s => s.CouponExpireType == parm.CouponExpireType);
@@ -51,12 +53,15 @@ namespace ARW.Service.Business.BusinessService.Marketing.CouponManage.Coupons
predicate = predicate.AndIF(parm.CouponDisplayStatus != null, s => s.CouponDisplayStatus == parm.CouponDisplayStatus);
var query = _CouponRepository
.Queryable()
+ .LeftJoin((s,c) => s.ShopGuid == c.ShopGuid)
.Where(predicate.ToExpression())
.OrderBy(s => s.CouponSort, OrderByType.Asc)
- .Select(s => new CouponVo
+ .Select((s, c) => new CouponVo
{
CouponId = s.CouponId,
CouponGuid = s.CouponGuid,
+ ShopGuid = s.ShopGuid,
+ ShopName = c.ShopName,
CouponName = s.CouponName,
CouponDesc = s.CouponDesc,
CouponType = s.CouponType,
diff --git a/ARW.Service/Business/BusinessService/OrderManage/OrderRefunds/OrderRefundService.cs b/ARW.Service/Business/BusinessService/OrderManage/OrderRefunds/OrderRefundService.cs
index fc275d3..945daf5 100644
--- a/ARW.Service/Business/BusinessService/OrderManage/OrderRefunds/OrderRefundService.cs
+++ b/ARW.Service/Business/BusinessService/OrderManage/OrderRefunds/OrderRefundService.cs
@@ -47,12 +47,13 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
private readonly IRegionService _RegionService;
- public OrderRefundServiceImpl(OrderRefundRepository OrderRefundRepository, IOrderService orderService, ShopAddressRepository shopAddressRepository, IRegionService regionService)
+ public OrderRefundServiceImpl(OrderRefundRepository OrderRefundRepository, IOrderService orderService, ShopAddressRepository shopAddressRepository, IRegionService regionService, LogisticsCompanyRepository logisticsCompanyRepository)
{
this._OrderRefundRepository = OrderRefundRepository;
_OrderService = orderService;
_ShopAddressRepository = shopAddressRepository;
_RegionService = regionService;
+ _LogisticsCompanyRepository = logisticsCompanyRepository;
}
#region 业务逻辑代码
@@ -66,6 +67,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
//开始拼装查询条件d
var predicate = Expressionable.Create();
+ predicate = predicate.AndIF(parm.ShopGuid != 0, s => s.ShopGuid == parm.ShopGuid);
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);
@@ -85,7 +87,10 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
OrderRefundId = s.OrderRefundId,
OrderRefundGuid = s.OrderRefundGuid,
OrderGuid = s.OrderGuid,
+ ShopGuid = s.ShopGuid,
OrderNumber = d.OrderNumber,
+ PayPrice = d.PayPrice,
+ ExpressPrice = d.ExpressPrice,
CustomerGuid = s.CustomerGuid,
CustomerNickName = c.CustomerNickname,
CustomerMobilePhoneNumber = c.CustomerMobilePhoneNumber,
@@ -105,7 +110,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
ExpressNo = s.ExpressNo,
OrderRefundStatus = s.OrderRefundStatus,
IsMerchantReceive = s.IsMerchantReceive,
- CreateTime = s.Create_time.ToString("yyyy:HH:dd mm:ss")
+ CreateTime = s.Create_time.ToString("yyyy-MM-dd hh:mm")
});
@@ -140,6 +145,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
{
OrderRefundId = s.OrderRefundId,
OrderRefundGuid = s.OrderRefundGuid,
+ ShopGuid = s.ShopGuid,
OrderGuid = s.OrderGuid,
OrderNumber = d.OrderNumber,
CustomerPhone = c.CustomerMobilePhoneNumber,
@@ -158,7 +164,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
ExpressNo = s.ExpressNo,
OrderRefundStatus = s.OrderRefundStatus,
IsMerchantReceive = s.IsMerchantReceive,
- CreateTime = s.Create_time.ToString("yyyy:HH:dd mm:ss")
+ CreateTime = s.Create_time.ToString("yyyy-MM-dd hh:mm")
}).Take(1);
@@ -168,7 +174,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
var data = Tools.JsonToVo(json);
data.GoodsInfoList = await _OrderService.GetOrderGoodsList(data.OrderGuid);
data.OrderReceive = await GetOrderReceive(data.ShopRefundAddressGuid);
- if(data.LogisticsCompanyGuid != null)
+ if (data.LogisticsCompanyGuid != null)
{
var company = await _LogisticsCompanyRepository.GetFirstAsync(s => s.LogisticsCompanyGuid == data.LogisticsCompanyGuid);
data.LogisticsCompany = company.LogisticsCompanyName;
@@ -183,23 +189,55 @@ namespace ARW.Service.Business.BusinessService.OrderManage.OrderRefunds
///
- /// 添加或修改售后单记录表
+ /// 审核售后订单
///
- public async Task AddOrUpdateOrderRefund(OrderRefund model)
+ public async Task AuditOrderRefund(OrderRefundAuditDto parm)
{
- if (model.OrderRefundId != 0)
- {
- var response = await _OrderRefundRepository.UpdateAsync(model);
- return "修改成功!";
- }
- else
+ var str = "审核成功!";
+ // 同意
+ if (parm.IsAgree == true)
{
+ await _OrderRefundRepository.UpdateAsync(f => new OrderRefund
+ {
+ MerchantAuditStatus = 2,
+ ShopRefundAddressGuid = parm.ShopAddressGuid,
+ }, s => s.OrderRefundGuid == parm.OrderRefundGuid);
- var response = await _OrderRefundRepository.InsertReturnSnowflakeIdAsync(model);
- return "添加成功!";
+ str = "同意申请!";
}
+ // 拒绝
+ if (parm.IsAgree == false)
+ {
+ await _OrderRefundRepository.UpdateAsync(f => new OrderRefund
+ {
+ MerchantAuditStatus = 3,
+ MerchantRefuseDesc = parm.MerchantRefuseDesc,
+ OrderRefundStatus = 2
+ }, s => s.OrderRefundGuid == parm.OrderRefundGuid);
+
+ str = "拒绝申请!";
+ }
+
+ return str;
}
+
+ ///
+ /// 商家确认收货
+ ///
+ public async Task ConfirmsReceipt(OrderRefundAuditDto parm)
+ {
+ await _OrderRefundRepository.UpdateAsync(f => new OrderRefund
+ {
+ IsMerchantReceive = 2,
+ MerchantReceiveTime = DateTime.Now,
+ OrderRefundStatus = 3
+ }, s => s.OrderRefundGuid == parm.OrderRefundGuid);
+
+ return "确认收货成功";
+ }
+
+
#region Excel处理
diff --git a/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs
index 522f676..da245a6 100644
--- a/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs
+++ b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs
@@ -69,6 +69,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
//开始拼装查询条件d
var predicate = Expressionable.Create();
+ predicate = predicate.AndIF(parm.ShopGuid != 0, s => s.ShopGuid == parm.ShopGuid);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.OrderNumber), s => s.OrderNumber.Contains(parm.OrderNumber));
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LogisticsTrackingNumber), s => s.LogisticsTrackingNumber.Contains(parm.LogisticsTrackingNumber));
predicate = predicate.AndIF(parm.PayType != null, s => s.PayType == parm.PayType);
diff --git a/ARW.Service/Business/IBusinessService/OrderManage/OrderRefunds/IOrderRefundService.cs b/ARW.Service/Business/IBusinessService/OrderManage/OrderRefunds/IOrderRefundService.cs
index 812602c..9de8336 100644
--- a/ARW.Service/Business/IBusinessService/OrderManage/OrderRefunds/IOrderRefundService.cs
+++ b/ARW.Service/Business/IBusinessService/OrderManage/OrderRefunds/IOrderRefundService.cs
@@ -35,13 +35,20 @@ namespace ARW.Service.Business.IBusinessService.OrderManage.OrderRefunds
///
- /// 添加或修改售后单记录表
+ /// 审核售后订单
///
///
///
- Task AddOrUpdateOrderRefund(OrderRefund parm);
+ Task AuditOrderRefund(OrderRefundAuditDto parm);
+ ///
+ /// 商家确认收货
+ ///
+ ///
+ ///
+ Task ConfirmsReceipt(OrderRefundAuditDto parm);
+
///
/// Excel导出
diff --git a/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs b/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs
index e0ba55c..a3f3ec6 100644
--- a/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs
+++ b/ARW.WebApi/Controllers/Api/OrderManage/OrderRefunds/OrderRefundApiController.cs
@@ -18,6 +18,7 @@ using Geocoding;
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;
namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds
{
@@ -32,14 +33,16 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds
public class OrderRefundApiController : BaseController
{
private readonly IOrderRefundServiceApi _OrderRefundServiceApi;
+ private readonly ILogisticsCompanyService _LogisticsCompanyService;
///
/// 依赖注入
///
/// 售后单记录表售后单记录表Api服务
- public OrderRefundApiController(IOrderRefundServiceApi OrderRefundServiceApi)
+ public OrderRefundApiController(IOrderRefundServiceApi OrderRefundServiceApi, ILogisticsCompanyService logisticsCompanyService)
{
_OrderRefundServiceApi = OrderRefundServiceApi;
+ _LogisticsCompanyService = logisticsCompanyService;
}
@@ -55,6 +58,45 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds
return SUCCESS(res);
}
+
+ ///
+ /// 获取OrderRefund详情(Api)
+ ///
+ /// 查询参数
+ ///
+ [HttpGet("getOrderRefundDetails")]
+ public async Task GetOrderRefundDetails([FromQuery] OrderRefundDtoApi parm)
+ {
+ //if (parm == null) throw new CustomException("参数错误!");
+
+ var res = await _OrderRefundServiceApi.GetOrderRefundDetails(parm);
+
+ if (res != "[]")
+ {
+ res = res.Remove(0, 1);
+ res = res.Substring(0, res.Length - 1);
+ var data = res.FromJSON();
+ return SUCCESS(data);
+ }
+ else
+ {
+ return SUCCESS(res);
+ }
+ }
+
+
+ ///
+ /// 获取物流公司列表
+ ///
+ ///
+ [HttpGet("getLogisticsCompanyList")]
+ public async Task GetLogisticsCompanyList()
+ {
+ var res = await _LogisticsCompanyService.GetListAsync();
+ return SUCCESS(res);
+ }
+
+
///
/// 添加售后单记录表
///
@@ -75,29 +117,36 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.OrderRefunds
///
- /// 获取OrderRefund详情(Api)
+ /// 撤销申请
///
- /// 查询参数
+ ///
///
- [HttpGet("getOrderRefundDetails")]
- public async Task GetOrderRefundDetails([FromQuery] OrderRefundDtoApi parm)
+ [HttpPost("repeal")]
+ [Log(Title = "撤销申请", BusinessType = BusinessType.ADDORUPDATE)]
+ public async Task RepealOrderRefund([FromBody] AddOrderRefundApiDto parm)
{
- //if (parm == null) throw new CustomException("参数错误!");
+ if (parm == null) { throw new CustomException("请求参数错误"); }
- var res = await _OrderRefundServiceApi.GetOrderRefundDetails(parm);
-
- if (res != "[]")
- {
- res = res.Remove(0, 1);
- res = res.Substring(0, res.Length - 1);
- var data = res.FromJSON();
- return SUCCESS(data);
- }
- else
- {
- return SUCCESS(res);
- }
+ var res = await _OrderRefundServiceApi.RepealOrderRefund(parm);
+ return SUCCESS(res);
}
+
+ ///
+ /// 买家发货(填写运单号)
+ ///
+ ///
+ ///
+ [HttpPost("buyerDelivery")]
+ [Log(Title = "买家发货(填写运单号)", BusinessType = BusinessType.ADDORUPDATE)]
+ public async Task BuyerDelivery([FromBody] BuyerDeliveryApiDto parm)
+ {
+ if (parm == null) { throw new CustomException("请求参数错误"); }
+
+ var res = await _OrderRefundServiceApi.BuyerDelivery(parm);
+ return SUCCESS(res);
+ }
+
+
}
}
diff --git a/ARW.WebApi/Controllers/Business/Marketing/CouponManage/Coupons/CouponController.cs b/ARW.WebApi/Controllers/Business/Marketing/CouponManage/Coupons/CouponController.cs
index af39041..c9cbb0b 100644
--- a/ARW.WebApi/Controllers/Business/Marketing/CouponManage/Coupons/CouponController.cs
+++ b/ARW.WebApi/Controllers/Business/Marketing/CouponManage/Coupons/CouponController.cs
@@ -15,6 +15,7 @@ using ARW.Model.Models.Business.Marketing.CouponManage.Coupons;
using ARW.Model.Vo.Business.Marketing.CouponManage.Coupons;
using Microsoft.AspNetCore.Authorization;
using ARW.Admin.WebApi.Framework;
+using ARW.Service.Business.IBusinessService.ShopManager.Shops;
namespace ARW.WebApi.Controllers.Business.Marketing.CouponManage.Coupons
@@ -30,14 +31,16 @@ namespace ARW.WebApi.Controllers.Business.Marketing.CouponManage.Coupons
public class CouponController : BaseController
{
private readonly ICouponService _CouponService;
+ private readonly IShopService _ShopService;
///
/// 依赖注入
///
/// 优惠券服务
- public CouponController(ICouponService CouponService)
+ public CouponController(ICouponService CouponService, IShopService shopService)
{
_CouponService = CouponService;
+ _ShopService = shopService;
}
@@ -50,6 +53,14 @@ namespace ARW.WebApi.Controllers.Business.Marketing.CouponManage.Coupons
[ActionPermissionFilter(Permission = "business:coupon:list")]
public async Task GetCouponList([FromQuery] CouponQueryDto parm)
{
+ var user = JwtUtil.GetLoginUser(App.HttpContext);
+ if (user.UserId != 1)
+ {
+ var shop = await _ShopService.GetFirstAsync(s => s.ShopUserId == user.UserId);
+ if (shop == null) throw new Exception("当前用户没有店铺");
+ parm.ShopGuid = shop.ShopGuid;
+ }
+
var res = await _CouponService.GetCouponList(parm);
return SUCCESS(res);
}
@@ -66,6 +77,14 @@ namespace ARW.WebApi.Controllers.Business.Marketing.CouponManage.Coupons
{
if (parm == null) { throw new CustomException("请求参数错误"); }
+ var user = JwtUtil.GetLoginUser(App.HttpContext);
+ if (user.UserId != 1)
+ {
+ var shop = await _ShopService.GetFirstAsync(s => s.ShopUserId == user.UserId);
+ if (shop == null) throw new Exception("当前用户没有店铺");
+ parm.ShopGuid = shop.ShopGuid;
+ }
+
var modal = new Coupon();
if (parm.CouponId != 0) modal = parm.Adapt().ToUpdate(HttpContext);
else modal = parm.Adapt().ToCreate(HttpContext);
diff --git a/ARW.WebApi/Controllers/Business/OrderManage/OrderRefunds/OrderRefundController.cs b/ARW.WebApi/Controllers/Business/OrderManage/OrderRefunds/OrderRefundController.cs
index 5eda8f5..89486ac 100644
--- a/ARW.WebApi/Controllers/Business/OrderManage/OrderRefunds/OrderRefundController.cs
+++ b/ARW.WebApi/Controllers/Business/OrderManage/OrderRefunds/OrderRefundController.cs
@@ -17,6 +17,7 @@ using Microsoft.AspNetCore.Authorization;
using ARW.Admin.WebApi.Framework;
using ARW.Service.Business.IBusinessService.OrderManage.Orders;
using Geocoding;
+using ARW.Service.Business.IBusinessService.ShopManager.Shops;
namespace ARW.WebApi.Controllers.Business.OrderManage.OrderRefunds
{
@@ -31,14 +32,16 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.OrderRefunds
public class OrderRefundController : BaseController
{
private readonly IOrderRefundService _OrderRefundService;
+ private readonly IShopService _ShopService;
///
/// 依赖注入
///
/// 售后单记录表服务
- public OrderRefundController(IOrderRefundService OrderRefundService)
+ public OrderRefundController(IOrderRefundService OrderRefundService, IShopService shopService)
{
_OrderRefundService = OrderRefundService;
+ _ShopService = shopService;
}
@@ -51,6 +54,14 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.OrderRefunds
[ActionPermissionFilter(Permission = "business:orderrefund:list")]
public async Task GetOrderRefundList([FromQuery] OrderRefundQueryDto parm)
{
+ var user = JwtUtil.GetLoginUser(App.HttpContext);
+ if (user.UserId != 1)
+ {
+ var shop = await _ShopService.GetFirstAsync(s => s.ShopUserId == user.UserId);
+ if (shop == null) throw new Exception("当前用户没有店铺");
+ parm.ShopGuid = shop.ShopGuid;
+ }
+
var res = await _OrderRefundService.GetOrderRefundList(parm);
return SUCCESS(res);
}
@@ -82,25 +93,37 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.OrderRefunds
///
- /// 添加或修改售后单记录表
+ /// 审核售后订单
///
///
///
- [HttpPost("addOrUpdateOrderRefund")]
- [ActionPermissionFilter(Permission = "business:orderrefund:addOrUpdate")]
- [Log(Title = "添加或修改售后单记录表", BusinessType = BusinessType.ADDORUPDATE)]
- public async Task AddOrUpdateOrderRefund([FromBody] OrderRefundDto parm)
+ [HttpPost("auditOrderRefund")]
+ [Log(Title = "审核售后订单", BusinessType = BusinessType.ADDORUPDATE)]
+ public async Task AuditOrderRefund([FromBody] OrderRefundAuditDto parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
- var modal = new OrderRefund();
- if (parm.OrderRefundId != 0) modal = parm.Adapt().ToUpdate(HttpContext);
- else modal = parm.Adapt().ToCreate(HttpContext);
-
- var res = await _OrderRefundService.AddOrUpdateOrderRefund(modal);
+ var res = await _OrderRefundService.AuditOrderRefund(parm);
return SUCCESS(res);
}
+
+ ///
+ /// 商家确认收货
+ ///
+ ///
+ ///
+ [HttpPost("confirmsReceipt")]
+ [Log(Title = "商家确认收货", BusinessType = BusinessType.ADDORUPDATE)]
+ public async Task ConfirmsReceipt([FromBody] OrderRefundAuditDto parm)
+ {
+ if (parm == null) { throw new CustomException("请求参数错误"); }
+
+ var res = await _OrderRefundService.ConfirmsReceipt(parm);
+ return SUCCESS(res);
+ }
+
+
///
/// 删除售后单记录表
///
diff --git a/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs b/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs
index a11b209..2b71155 100644
--- a/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs
+++ b/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs
@@ -19,6 +19,7 @@ using ARW.Service.Api.IBusinessService.OrderManage.Orders;
using Geocoding;
using ARW.Service.Business.IBusinessService.OrderManage.OrderGoodss;
using ARW.Service.Business.IBusinessService.OrderManage.OrderCustomerAddreses;
+using ARW.Service.Business.IBusinessService.ShopManager.Shops;
namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
{
@@ -32,6 +33,7 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
[Route("business/[controller]")]
public class OrderController : BaseController
{
+ private readonly IShopService _ShopService;
private readonly IOrderService _OrderService;
private readonly IOrderGoodsService _OrderGoodsService;
private readonly IOrderCustomerAddressService _OrderCustomerAddressService;
@@ -40,11 +42,12 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
/// 依赖注入
///
/// 订单服务
- public OrderController(IOrderService OrderService, IOrderGoodsService orderGoodsService, IOrderCustomerAddressService orderCustomerAddressService)
+ public OrderController(IOrderService OrderService, IOrderGoodsService orderGoodsService, IOrderCustomerAddressService orderCustomerAddressService, IShopService shopService)
{
_OrderService = OrderService;
_OrderGoodsService = orderGoodsService;
_OrderCustomerAddressService = orderCustomerAddressService;
+ _ShopService = shopService;
}
@@ -57,6 +60,14 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
[ActionPermissionFilter(Permission = "business:order:list")]
public async Task GetOrderList([FromQuery] OrderQueryDto parm)
{
+ var user = JwtUtil.GetLoginUser(App.HttpContext);
+ if (user.UserId != 1)
+ {
+ var shop = await _ShopService.GetFirstAsync(s => s.ShopUserId == user.UserId);
+ if (shop == null) throw new Exception("当前用户没有店铺");
+ parm.ShopGuid = shop.ShopGuid;
+ }
+
var res = await _OrderService.GetOrderList(parm);
return SUCCESS(res);
}