feat 添加订单列表,确认收货,待支付取消订单,已支付取消订单

This commit is contained in:
AERWEN\26795 2023-10-15 13:15:42 +08:00
parent d194f85676
commit bd9b94e7db
12 changed files with 452 additions and 244 deletions

View File

@ -21,7 +21,7 @@ namespace ARW.Model.Dto.Api.OrderManage.Orders
public string LogisticsTrackingNumber { get; set; }
public int? DeliveryStatus { get; set; }
public int? ReceiptStatus { get; set; }
public int? OrderStatus { get; set; }
public int OrderStatus { get; set; }
}

View File

@ -2,6 +2,7 @@ using Newtonsoft.Json;
using OfficeOpenXml.Attributes;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace ARW.Model.Vo.Api.OrderManage.Orders
{
@ -18,7 +19,6 @@ namespace ARW.Model.Vo.Api.OrderManage.Orders
/// <summary>
/// 描述 :
/// </summary>
[EpplusIgnore]
public int OrderId { get; set; }
@ -26,239 +26,74 @@ namespace ARW.Model.Vo.Api.OrderManage.Orders
/// 描述 :
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusIgnore]
public long OrderGuid { get; set; }
/// <summary>
/// 描述 :商品guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusTableColumn(Header = "商品guid")]
public long GoodsGuid { get; set; }
/// <summary>
/// 描述 :订单流水guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusTableColumn(Header = "订单流水guid")]
public long PaymentGuid { get; set; }
/// <summary>
/// 描述 :客户guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusTableColumn(Header = "客户guid")]
public long CustomerGuid { get; set; }
/// <summary>
/// 描述 :店铺guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusIgnore]
public long? ShopGuid { get; set; }
/// <summary>
/// 描述 :订单号
/// </summary>
[EpplusTableColumn(Header = "订单号")]
public string OrderNumber { get; set; }
public string OrderNo { get; set; }
/// <summary>
/// 描述 :商品列表
/// </summary>
public List<OrderGoodsApiVo> GoodsList { get; set; }
/// <summary>
/// 描述 :商品总金额
/// </summary>
[EpplusTableColumn(Header = "商品总金额")]
public decimal GoodsTotalAmoun { get; set; }
/// <summary>
/// 描述 :订单金额
/// </summary>
[EpplusTableColumn(Header = "订单金额")]
public decimal OrderAmount { get; set; }
/// <summary>
/// 描述 :优惠券guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusIgnore]
public long? CouponGuid { get; set; }
/// <summary>
/// 描述 :优惠券抵扣金额
/// </summary>
[EpplusIgnore]
public decimal CouponMoney { get; set; }
/// <summary>
/// 描述 :积分抵扣金额
/// </summary>
[EpplusIgnore]
public decimal PointsMoney { get; set; }
/// <summary>
/// 描述 :积分抵扣数量
/// </summary>
[EpplusIgnore]
public decimal PointsNum { get; set; }
/// <summary>
/// 描述 :实际付款金额(包含运费)
/// </summary>
[EpplusTableColumn(Header = "实际付款金额(包含运费)")]
public decimal PayPrice { get; set; }
/// <summary>
/// 描述 :后台修改的订单金额(差价)
/// </summary>
[EpplusIgnore]
public decimal UpdatePrice { get; set; }
/// <summary>
/// 描述 :买家留言
/// </summary>
[EpplusIgnore]
public string OrderRemark { get; set; }
/// <summary>
/// 描述 :支付方式(1微信支付 2余额支付)
/// </summary>
[EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")]
public int PayType { get; set; }
/// <summary>
/// 描述 :付款状态(1未付款 2已付款)
/// </summary>
[EpplusTableColumn(Header = "付款状态(1未付款 2已付款)")]
public int PayStatus { get; set; }
/// <summary>
/// 描述 :付款时间
/// </summary>
[EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
public DateTime? PayTime { get; set; }
/// <summary>
/// 描述 :配送方式(1快递配送)
/// </summary>
[EpplusTableColumn(Header = "配送方式(1快递配送)")]
public int DeliveryType { get; set; }
/// <summary>
/// 描述 :运费金额
/// </summary>
[EpplusTableColumn(Header = "运费金额")]
public decimal ExpressPrice { get; set; }
/// <summary>
/// 描述 :物流公司guid
/// 描述 :付款状态(1未付款 2已付款)
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
[EpplusIgnore]
public long? LogisticsCompanyGuid { get; set; }
/// <summary>
/// 描述 :物流公司
/// </summary>
[EpplusIgnore]
public string LogisticsCompany { get; set; }
/// <summary>
/// 描述 :物流单号
/// </summary>
[EpplusIgnore]
public string LogisticsTrackingNumber { get; set; }
public int PayStatus { get; set; }
/// <summary>
/// 描述 :发货状态(1未发货 2已发货)
/// </summary>
[EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")]
public int DeliveryStatus { get; set; }
/// <summary>
/// 描述 :发货时间
/// </summary>
[EpplusIgnore]
public DateTime? DeliveryTime { get; set; }
/// <summary>
/// 描述 :收货状态(1未收货 2已收货)
/// </summary>
[EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")]
public int ReceiptStatus { get; set; }
/// <summary>
/// 描述 :收货时间
/// </summary>
[EpplusIgnore]
public DateTime? ReceiptTime { get; set; }
/// <summary>
/// 描述 :订单状态(1进行中 2取消 3待取消 4已完成)
/// </summary>
[EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")]
public int OrderStatus { get; set; }
/// <summary>
/// 描述 :赠送的积分数量
/// </summary>
[EpplusIgnore]
public decimal PointsBonus { get; set; }
/// <summary>
/// 描述 :订单是否已结算(1未结算 2已结算)
/// </summary>
[EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")]
public int IsSettled { get; set; }
/// <summary>
/// 描述 :微信支付交易号
/// </summary>
[EpplusIgnore]
public string TransactionId { get; set; }
/// <summary>
/// 描述 :是否已评价(1否 2是)
/// </summary>
[EpplusTableColumn(Header = "是否已评价(1否 2是)")]
public int IsComment { get; set; }
/// <summary>
/// 描述 :订单来源(1普通订单)
/// </summary>
[EpplusTableColumn(Header = "订单来源(1普通订单)")]
public int OrderSource { get; set; }
}

View File

@ -0,0 +1,63 @@
using Newtonsoft.Json;
using OfficeOpenXml.Attributes;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace ARW.Model.Vo.Api.OrderManage.Orders
{
/// <summary>
/// 订单商品展示对象Api
///
/// @author lwh
/// @date 2023-10-14
/// </summary>
public class OrderGoodsApiVo
{
/// <summary>
/// 描述 : 商品guid
/// </summary>
[JsonConverter(typeof(ValueToStringConverter))]
public long GoodsGuId { get; set; }
/// <summary>
/// 描述 :封面
/// </summary>
public string Thumb { get; set; }
/// <summary>
/// 描述 :商品名称
/// </summary>
public string Title { get; set; }
/// <summary>
/// 描述 :商品skuId
/// </summary>
public int? SkuId { get; set; }
/// <summary>
/// 描述 : 商品规格
/// </summary>
public List<OrderGoodsSpecApiVo> Specifications { get; set; }
/// <summary>
/// 商品价格
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 购买数量
/// </summary>
public int BuyQuantity { get; set; }
}
}

View File

@ -0,0 +1,31 @@
using Newtonsoft.Json;
using OfficeOpenXml.Attributes;
using SqlSugar;
using System;
namespace ARW.Model.Vo.Api.OrderManage.Orders
{
/// <summary>
/// 订单商品规格展示对象Api
///
/// @author lwh
/// @date 2023-10-14
/// </summary>
public class OrderGoodsSpecApiVo
{
/// <summary>
/// 描述 :规格组名称
/// </summary>
public string SpecTitle { get; set; }
/// <summary>
/// 描述 :规格值
/// </summary>
public string SpecValue { get; set; }
}
}

View File

@ -334,7 +334,7 @@ namespace ARW.Service.Api.BusinessService.Carts
{
var response = await _CartRepository.UpdateAsync(f => new Cart
{
IsSelected = parm.IsSelected
IsSelected = !f.IsSelected
}, s => s.CartId == parm.CartId);
return "修改成功!";
}
@ -347,7 +347,7 @@ namespace ARW.Service.Api.BusinessService.Carts
{
var response = await _CartRepository.UpdateAsync(f => new Cart
{
IsSelected = parm.IsSelected
IsSelected = !f.IsSelected
}, s => s.CustomerGuid == parm.CustomerGuid && s.IsDelete == false);
return "修改成功!";
}

View File

@ -77,7 +77,7 @@ namespace ARW.Service.Api.BusinessService.Custom.HistorySearchs
var query = _HistorySearchRepository
.Queryable()
.Where(s => s.Create_time >= todayStart && s.Create_time <= todayEnd) // 仅选择当天的搜索记录
//.Where(s => s.Create_time >= todayStart && s.Create_time <= todayEnd) // 仅选择当天的搜索记录
.Where(predicate.ToExpression())
.OrderBy(s => s.Create_time, OrderByType.Desc)
.Select(s => new HistorySearchVoApi

View File

@ -1,10 +1,8 @@
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 ARW.Model;
using ARW.Repository;
@ -13,6 +11,13 @@ using ARW.Service.Api.IBusinessService.OrderManage.Orders;
using ARW.Model.Dto.Api.OrderManage.Orders;
using ARW.Model.Models.Business.OrderManage.Orders;
using ARW.Model.Vo.Api.OrderManage.Orders;
using ARW.Repository.Business.OrderManage.OrderGoodss;
using ARW.Repository.Business.GoodsManager.Goodss;
using ARW.Repository.Business.GoodsManager.GoodsSpecs.GoodsSkus;
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;
namespace ARW.Service.Api.BusinessService.OrderManage.Orders
{
@ -26,10 +31,20 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders
public class OrderServiceImplApi : BaseService<Order>, IOrderServiceApi
{
private readonly OrderRepository _OrderRepository;
private readonly OrderGoodsRepository _OrderGoodsRepository;
private readonly GoodsRepository _GoodsRepository;
private readonly GoodsSkuRepository _GoodsSkuRepository;
private readonly SpecRepository _SpecRepository;
private readonly SpecValueRepository _SpecValueRepository;
public OrderServiceImplApi(OrderRepository OrderRepository)
public OrderServiceImplApi(OrderRepository OrderRepository, OrderGoodsRepository orderGoodsRepository, GoodsRepository goodsRepository, GoodsSkuRepository goodsSkuRepository, SpecRepository specRepository, SpecValueRepository specValueRepository)
{
this._OrderRepository = OrderRepository;
_OrderGoodsRepository = orderGoodsRepository;
_GoodsRepository = goodsRepository;
_GoodsSkuRepository = goodsSkuRepository;
_SpecRepository = specRepository;
_SpecValueRepository = specValueRepository;
}
#region Api接口代码
@ -46,13 +61,12 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders
var predicate = Expressionable.Create<Order>();
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);
predicate = predicate.AndIF(parm.PayStatus != null, s => s.PayStatus == parm.PayStatus);
predicate = predicate.AndIF(parm.DeliveryType != null, s => s.DeliveryType == parm.DeliveryType);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LogisticsTrackingNumber), s => s.LogisticsTrackingNumber.Contains(parm.LogisticsTrackingNumber));
predicate = predicate.AndIF(parm.DeliveryStatus != null, s => s.DeliveryStatus == parm.DeliveryStatus);
predicate = predicate.AndIF(parm.ReceiptStatus != null, s => s.ReceiptStatus == parm.ReceiptStatus);
predicate = predicate.AndIF(parm.OrderStatus != null, s => s.OrderStatus == parm.OrderStatus);
var query = _OrderRepository
.Queryable()
.Where(predicate.ToExpression())
@ -61,41 +75,110 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders
{
OrderId = s.OrderId,
OrderGuid = s.OrderGuid,
PaymentGuid = s.PaymentGuid,
CustomerGuid = s.CustomerGuid,
OrderNumber = s.OrderNumber,
OrderNo = 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,
});
return await query.ToPageAsync(parm);
var list = await query.ToPageAsync(parm);
foreach (var item in list.Result)
{
var goodsList = new List<OrderGoodsApiVo>();
var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == item.OrderGuid);
foreach (var _item in orderGoodsList)
{
var good = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == _item.GoodsGuid);
var orderGood = new OrderGoodsApiVo
{
GoodsGuId = good.GoodsGuid,
Thumb = good.GoodsPicture.Split(',').First(),
Title = good.GoodsName,
SkuId = _item.GoodsSkuId,
Price = _item.GoodsPrice,
BuyQuantity = _item.GoodsTotalNum
};
if (_item.GoodsSkuId != 0)
orderGood.Specifications = await GetGoodsSpecList(_item.GoodsSkuId);
goodsList.Add(orderGood);
}
item.GoodsList = goodsList;
}
return list;
}
/// <summary>
/// 待付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public async Task<string> WaitPayCancelOrder(OrderDtoApi parm)
{
var res = await _OrderRepository.UpdateAsync(f => new Order
{
OrderStatus = 2,
IsSettled = 2,
}, f => f.OrderGuid == parm.OrderGuid);
if (res)
return "取消订单成功";
else
return "取消订单失败!";
}
/// <summary>
/// 已付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public async Task<string> PayCancelOrder(OrderDtoApi parm)
{
var res = await _OrderRepository.UpdateAsync(f => new Order
{
OrderStatus = 3,
}, f => f.OrderGuid == parm.OrderGuid);
if (res)
return "取消订单成功";
else
return "取消订单失败!";
}
/// <summary>
/// 确认收货
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public async Task<string> ConfirmReceipt(OrderDtoApi parm)
{
// 收货状态 => 已收货
// 订单状态 => 已完成
// 订单结算状态 => 已结算
var res = await _OrderRepository.UpdateAsync(f => new Order
{
ReceiptStatus = 2,
ReceiptTime = DateTime.Now,
OrderStatus = 4,
IsSettled = 2,
}, f => f.OrderGuid == parm.OrderGuid);
if (res)
return "确认收货成功";
else
return "收货失败!";
}
/// <summary>
/// 查询订单详情(Api)
@ -149,6 +232,84 @@ namespace ARW.Service.Api.BusinessService.OrderManage.Orders
}
#region
/// <summary>
/// 获取商品规格
/// </summary>
/// <param name="skuId">规格id</param>
/// <returns></returns>
public async Task<List<OrderGoodsSpecApiVo>> GetGoodsSpecList(int? skuId)
{
var list = new List<OrderGoodsSpecApiVo>();
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == skuId);
if (sku.SpecValueId != 0)
{
var orderGoodsSpecApiVo1 = await GetGoodsSpec(sku, 1);
list.Add(orderGoodsSpecApiVo1);
if (sku.SpecSecondValueId != 0)
{
var orderGoodsSpecApiVo2 = await GetGoodsSpec(sku, 2);
list.Add(orderGoodsSpecApiVo2);
if (sku.SpecThirdValueId != 0)
{
var orderGoodsSpecApiVo3 = await GetGoodsSpec(sku, 3);
list.Add(orderGoodsSpecApiVo3);
}
}
}
return list;
}
public async Task<OrderGoodsSpecApiVo> GetGoodsSpec(GoodsSku sku, int level)
{
var orderGoodsSpecApiVo = new OrderGoodsSpecApiVo();
var specValue = new SpecValue();
switch (level)
{
case 1:
specValue = await _SpecValueRepository.GetFirstAsync(s => s.SpecValueId == sku.SpecValueId);
orderGoodsSpecApiVo = await GetSpecValue(specValue);
break;
case 2:
specValue = await _SpecValueRepository.GetFirstAsync(s => s.SpecValueId == sku.SpecSecondValueId);
orderGoodsSpecApiVo = await GetSpecValue(specValue);
break;
case 3:
specValue = await _SpecValueRepository.GetFirstAsync(s => s.SpecValueId == sku.SpecThirdValueId);
orderGoodsSpecApiVo = await GetSpecValue(specValue);
break;
default:
break;
}
return orderGoodsSpecApiVo;
}
public async Task<OrderGoodsSpecApiVo> GetSpecValue(SpecValue specValue)
{
var spec = await _SpecRepository.GetFirstAsync(s => s.SpecId == specValue.SpecId);
OrderGoodsSpecApiVo orderGoodsSpecApiVo = new()
{
SpecTitle = spec.SpecName,
SpecValue = specValue.SpecValueName
};
return orderGoodsSpecApiVo;
}
#endregion
#endregion
}

View File

@ -193,14 +193,28 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
foreach (var item in parm.GoodsRequestList)
{
var cart = await _CartRepository.GetFirstAsync(s => s.CartId == item.CartId);
var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == cart.GoodsGuid);
var quantity = cart.CartGoodsNum;
long goodsGuid = 0;
var quantity = 0;
var skuId = 0;
if (cart != null)
{
goodsGuid = cart.GoodsGuid;
quantity = cart.CartGoodsNum;
skuId = cart.GoodsSkuId;
}
else
{
goodsGuid = item.SpuId;
quantity = item.Quantity;
skuId = item.SkuId;
}
var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == goodsGuid);
/* 计算商品总价 */
// 是否有规格
if (cart.GoodsSkuId != 0)
if (skuId != 0)
{
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == cart.GoodsSkuId);
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == skuId);
if (sku != null)
{
price += sku.GoodsSkuPrice * quantity;
@ -363,14 +377,31 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
decimal singlePrice = 0;
decimal toatlPrice = 0;
var cart = await _CartRepository.GetFirstAsync(s => s.CartId == item.CartId);
var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == cart.GoodsGuid);
var quantity = cart.CartGoodsNum;
long goodsGuid = 0;
var quantity = 0;
var skuId = 0;
if (cart != null)
{
goodsGuid = cart.GoodsGuid;
quantity = cart.CartGoodsNum;
skuId = cart.GoodsSkuId;
}
else
{
goodsGuid = item.SpuId;
quantity = item.Quantity;
skuId = item.SkuId;
}
var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == goodsGuid);
/* 计算商品总价 */
// 是否有规格
if (cart.GoodsSkuId != 0)
if (skuId != 0)
{
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == cart.GoodsSkuId);
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == skuId);
if (sku != null)
{
singlePrice = sku.GoodsSkuPrice;
@ -387,8 +418,8 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
OrderGoods orderGoods = new()
{
OrderGuid = orderGuid,
GoodsGuid = cart.GoodsGuid,
GoodsSkuId = cart.GoodsSkuId,
GoodsGuid = goodsGuid,
GoodsSkuId = skuId,
GoodsPrice = singlePrice,
GoodsTotalNum = quantity,
GoodsTotalAmoun = toatlPrice,

View File

@ -25,6 +25,31 @@ namespace ARW.Service.Api.IBusinessService.OrderManage.Orders
/// <returns></returns>
Task<PagedInfo<OrderVoApi>> GetOrderListApi(OrderQueryDtoApi parm);
/// <summary>
/// 待付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<string> WaitPayCancelOrder(OrderDtoApi parm);
/// <summary>
/// 已付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<string> PayCancelOrder(OrderDtoApi parm);
/// <summary>
/// 确认收货
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<string> ConfirmReceipt(OrderDtoApi parm);
/// <summary>
/// 获取订单详情(Api)
/// </summary>

View File

@ -78,8 +78,16 @@ namespace ARW.Service.Business.BusinessService.Carts
}
else
{
var cart = await _CartRepository.GetFirstAsync(s => s.GoodsGuid == model.GoodsGuid && s.GoodsSkuId == model.GoodsSkuId);
if (cart != null)
{
cart.CartGoodsNum += model.CartGoodsNum;
var response = await _CartRepository.UpdateAsync(cart);
}
else
{
var response = await _CartRepository.InsertReturnSnowflakeIdAsync(model);
}
return "添加成功!";
}
}

View File

@ -70,10 +70,10 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
var predicate = Expressionable.Create<Order>();
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);
predicate = predicate.AndIF(parm.PayStatus != null, s => s.PayStatus == parm.PayStatus);
predicate = predicate.AndIF(parm.DeliveryType != null, s => s.DeliveryType == parm.DeliveryType);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LogisticsTrackingNumber), s => s.LogisticsTrackingNumber.Contains(parm.LogisticsTrackingNumber));
predicate = predicate.AndIF(parm.DeliveryStatus != null, s => s.DeliveryStatus == parm.DeliveryStatus);
predicate = predicate.AndIF(parm.ReceiptStatus != null, s => s.ReceiptStatus == parm.ReceiptStatus);
predicate = predicate.AndIF(parm.OrderStatus != null, s => s.OrderStatus == parm.OrderStatus);
@ -308,7 +308,9 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
var goodsInfoList = new List<OrderGoodsVo>();
var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == orderGuid);
if (orderGoodsList.Count <= 0) throw new CustomException("订单商品不存在");
if (orderGoodsList.Count >= 0)
{
//throw new CustomException("订单商品不存在");
foreach (var orderGoods in orderGoodsList)
{
var goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == orderGoods.GoodsGuid) ?? throw new CustomException("商品不存在");
@ -335,6 +337,7 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
goodsInfoList.Add(orderGoodsInfo);
}
}
return goodsInfoList;
}

View File

@ -15,6 +15,8 @@ using ARW.Model.Models.Business.OrderManage.Orders;
using ARW.Model.Vo.Api.OrderManage.Orders;
using Microsoft.AspNetCore.Authorization;
using Geocoding;
using ARW.Model.Dto.Api.Carts;
using ARW.Service.Api.IBusinessService.Carts;
namespace ARW.WebApi.Controllers.Api.OrderManage.Orders
{
@ -52,6 +54,55 @@ namespace ARW.WebApi.Controllers.Api.OrderManage.Orders
return SUCCESS(res);
}
/// <summary>
/// 待付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("waitPayCancelOrder")]
[Log(Title = "待付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> WaitPayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.WaitPayCancelOrder(parm);
return SUCCESS(res);
}
/// <summary>
/// 已付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("payCancelOrder")]
[Log(Title = "已付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> PayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.PayCancelOrder(parm);
return SUCCESS(res);
}
/// <summary>
/// 确认收货
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("confirmReceipt")]
[Log(Title = "确认收货", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> ConfirmReceipt([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.ConfirmReceipt(parm);
return SUCCESS(res);
}
/// <summary>
/// 获取Order详情(Api)
/// </summary>