feat 添加发货,订单改价,审核取消订单的接口,修改订单详情接口的bug,初始化订单api接口
This commit is contained in:
parent
a1728bf765
commit
e35eb71e46
@ -187,5 +187,16 @@ namespace ARW.Common
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static T JsonToVo<T>(string json)
|
||||
{
|
||||
json = json.Remove(0, 1);
|
||||
json = json.Substring(0, json.Length - 1);
|
||||
var data = JsonConvert.DeserializeObject<T>(json);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
40
ARW.Model/Dto/Api/OrderManage/Orders/OrderApiDto.cs
Normal file
40
ARW.Model/Dto/Api/OrderManage/Orders/OrderApiDto.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
|
||||
namespace ARW.Model.Dto.Api.OrderManage.Orders
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 订单查询对象Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
public class OrderQueryDtoApi : PagerInfo
|
||||
{
|
||||
public string OrderNumber { get; set; }
|
||||
public int? PayType { get; set; }
|
||||
public int? PayStatus { get; set; }
|
||||
public int? DeliveryType { get; set; }
|
||||
public string LogisticsTrackingNumber { get; set; }
|
||||
public int? DeliveryStatus { get; set; }
|
||||
public int? ReceiptStatus { get; set; }
|
||||
public int? OrderStatus { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单详情输入对象Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
public class OrderDtoApi
|
||||
{
|
||||
[Required(ErrorMessage = "OrderGuid不能为空")]
|
||||
public long OrderGuid { get; set; }
|
||||
}
|
||||
|
||||
}
|
@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
using ARW.Model.Models.Business.GoodsManager.Goodss;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure;
|
||||
using MimeKit;
|
||||
using OfficeOpenXml.Attributes;
|
||||
|
||||
namespace ARW.Model.Dto.Business.GoodsManager.Goodss
|
||||
{
|
||||
@ -61,6 +63,8 @@ namespace ARW.Model.Dto.Business.GoodsManager.Goodss
|
||||
[Required(ErrorMessage = "图片不能为空")]
|
||||
public string GoodsPicture { get; set; }
|
||||
|
||||
public decimal GoodsWeight { get; set; }
|
||||
|
||||
public decimal GoodsPriceLowest { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "价格(最高)不能为空")]
|
||||
|
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
|
||||
namespace ARW.Model.Dto.Business.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 审核取消订单输入对象
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-08-29
|
||||
/// </summary>
|
||||
public class OrderCancelOrderDto
|
||||
{
|
||||
public long OrderGuid { get; set; }
|
||||
|
||||
public bool IsAgree { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
|
||||
namespace ARW.Model.Dto.Business.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单改价输入对象
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-08-29
|
||||
/// </summary>
|
||||
public class OrderChangePriceDto
|
||||
{
|
||||
public long OrderGuid { get; set; }
|
||||
|
||||
public decimal OrderAmount { get; set; }
|
||||
|
||||
public decimal ExpressPrice { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
26
ARW.Model/Dto/Business/OrderManage/Orders/OrderDeliverDto.cs
Normal file
26
ARW.Model/Dto/Business/OrderManage/Orders/OrderDeliverDto.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
|
||||
namespace ARW.Model.Dto.Business.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单发货输入对象
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-08-29
|
||||
/// </summary>
|
||||
public class OrderDeliverDto
|
||||
{
|
||||
public long OrderGuid { get; set; }
|
||||
|
||||
public long? LogisticsCompanyGuid { get; set; }
|
||||
|
||||
public string LogisticsCompany { get; set; }
|
||||
|
||||
public string LogisticsTrackingNumber { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -136,6 +136,10 @@ namespace ARW.Model.Dto.Business.OrderManage.Orders
|
||||
}
|
||||
|
||||
|
||||
public class OrderDetailDto
|
||||
{
|
||||
|
||||
public int OrderId { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -154,6 +154,13 @@ namespace ARW.Model.Models.Business.GoodsManager.Goodss
|
||||
[SugarColumn(ColumnName = "goods_price_highest")]
|
||||
public decimal GoodsPriceHighest { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :商品重量
|
||||
/// 空值 : false
|
||||
/// </summary>
|
||||
[EpplusTableColumn(Header = "商品重量")]
|
||||
[SugarColumn(ColumnName = "goods_weight")]
|
||||
public decimal GoodsWeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :划线价格(最低)
|
||||
|
348
ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs
Normal file
348
ARW.Model/Vo/Api/OrderManage/Orders/OrderApiVo.cs
Normal file
@ -0,0 +1,348 @@
|
||||
using Newtonsoft.Json;
|
||||
using OfficeOpenXml.Attributes;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
||||
namespace ARW.Model.Vo.Api.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单展示对象Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
public class OrderVoApi
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :
|
||||
/// </summary>
|
||||
[EpplusIgnore]
|
||||
public int OrderId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :
|
||||
/// </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; }
|
||||
|
||||
|
||||
/// <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
|
||||
/// </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; }
|
||||
|
||||
|
||||
/// <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; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单详情展示对象Api
|
||||
/// </summary>
|
||||
public class OrderApiDetailsVo
|
||||
{
|
||||
[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 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; }
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -122,6 +122,13 @@ namespace ARW.Model.Vo.Business.GoodsManager.Goodss
|
||||
[EpplusTableColumn(Header = "商品图片")]
|
||||
public string GoodsPicture { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :商品重量
|
||||
/// 空值 : false
|
||||
/// </summary>
|
||||
[EpplusTableColumn(Header = "商品重量")]
|
||||
public decimal GoodsWeight { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :价格(最低)
|
||||
|
140
ARW.Model/Vo/Business/OrderManage/Orders/OrderDetailVo.cs
Normal file
140
ARW.Model/Vo/Business/OrderManage/Orders/OrderDetailVo.cs
Normal file
@ -0,0 +1,140 @@
|
||||
using Newtonsoft.Json;
|
||||
using OfficeOpenXml.Attributes;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ARW.Model.Vo.Business.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单详情展示对象Api
|
||||
/// </summary>
|
||||
public class OrderDetailsVo
|
||||
{
|
||||
public int OrderId { get; set; }
|
||||
|
||||
[JsonConverter(typeof(ValueToStringConverter))]
|
||||
public long OrderGuid { get; set; }
|
||||
|
||||
public string CustomerPhone { 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))]
|
||||
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 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; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 下单时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品信息
|
||||
/// </summary>
|
||||
public List<OrderGoodsVo> GoodsInfoList { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 收货信息
|
||||
/// </summary>
|
||||
public OrderReceiveVo OrderReceive { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -31,6 +31,10 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders
|
||||
/// </summary>
|
||||
public string GoodsSpecName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :编码
|
||||
/// </summary>
|
||||
public string GoodsCoding { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品单价
|
||||
@ -43,5 +47,14 @@ namespace ARW.Model.Vo.Business.OrderManage.Orders
|
||||
/// </summary>
|
||||
public int GoodsTotalNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品总价
|
||||
/// </summary>
|
||||
public decimal GoodsTotalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品重量
|
||||
/// </summary>
|
||||
public decimal GoodsWeight { get; set;}
|
||||
}
|
||||
}
|
||||
|
40
ARW.Model/Vo/Business/OrderManage/Orders/OrderReceiveVo.cs
Normal file
40
ARW.Model/Vo/Business/OrderManage/Orders/OrderReceiveVo.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using Newtonsoft.Json;
|
||||
using OfficeOpenXml.Attributes;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
||||
namespace ARW.Model.Vo.Business.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单展示对象
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-03
|
||||
/// </summary>
|
||||
public class OrderReceiveVo
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :收货人姓名
|
||||
/// </summary>
|
||||
public string ConsigneeName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :联系电话
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 地区
|
||||
/// </summary>
|
||||
public string Region { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述 :详细地址
|
||||
/// </summary>
|
||||
public string Detail { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -21,6 +21,7 @@ using ARW.Repository.Business.GoodsManager.GoodsSpecs.GoodsSkus;
|
||||
using ARW.Model.Models.Business.GoodsManager.GoodsCategorys;
|
||||
using ARW.Repository.Business.GoodsManager.GoodsCategorys;
|
||||
using System;
|
||||
using ARW.Common;
|
||||
|
||||
namespace ARW.Service.Api.BusinessService.GoodsManager.Goodss
|
||||
{
|
||||
|
@ -0,0 +1,155 @@
|
||||
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;
|
||||
using ARW.Repository.Business.OrderManage.Orders;
|
||||
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;
|
||||
|
||||
namespace ARW.Service.Api.BusinessService.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单接口实现类Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IOrderServiceApi), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OrderServiceImplApi : BaseService<Order>, IOrderServiceApi
|
||||
{
|
||||
private readonly OrderRepository _OrderRepository;
|
||||
|
||||
public OrderServiceImplApi(OrderRepository OrderRepository)
|
||||
{
|
||||
this._OrderRepository = OrderRepository;
|
||||
}
|
||||
|
||||
#region Api接口代码
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询订单列表(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagedInfo<OrderVoApi>> GetOrderListApi(OrderQueryDtoApi parm)
|
||||
{
|
||||
//开始拼装查询条件d
|
||||
var predicate = Expressionable.Create<Order>();
|
||||
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.OrderNumber), s => s.OrderNumber.Contains(parm.OrderNumber));
|
||||
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())
|
||||
.OrderBy(s => s.Create_time, OrderByType.Desc)
|
||||
.Select(s => new OrderVoApi
|
||||
{
|
||||
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,
|
||||
});
|
||||
|
||||
|
||||
return await query.ToPageAsync(parm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询订单详情(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<string> GetOrderDetails(OrderDtoApi parm)
|
||||
{
|
||||
|
||||
var query = _OrderRepository
|
||||
.Queryable()
|
||||
.Where(s => s.OrderGuid == parm.OrderGuid)
|
||||
.Select(s => 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,
|
||||
}).Take(1);
|
||||
|
||||
|
||||
return await query.ToJsonAsync();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ARW.Model;
|
||||
using ARW.Model.Dto.Api.OrderManage.Orders;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
using ARW.Model.Vo.Api.OrderManage.Orders;
|
||||
|
||||
namespace ARW.Service.Api.IBusinessService.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单接口类Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
public interface IOrderServiceApi : IBaseService<Order>
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取订单分页列表(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagedInfo<OrderVoApi>> GetOrderListApi(OrderQueryDtoApi parm);
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单详情(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> GetOrderDetails(OrderDtoApi parm);
|
||||
|
||||
}
|
||||
}
|
@ -162,6 +162,27 @@ namespace ARW.Service.Business.BusinessService.Custom.Regions
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取省市区完整名称
|
||||
/// </summary>
|
||||
/// <param name="provinceId">省id</param>
|
||||
/// <param name="cityId">市id</param>
|
||||
/// <param name="regionId">区id</param>
|
||||
/// <returns></returns>
|
||||
public async Task<string> GetRegionFullName(int provinceId, int cityId, int regionId)
|
||||
{
|
||||
var regionName = "";
|
||||
var province = await _RegionRepository.GetFirstAsync(s => s.RegionId == provinceId);
|
||||
regionName += province.RegionName;
|
||||
var city = await _RegionRepository.GetFirstAsync(s => s.RegionId == cityId);
|
||||
regionName += city.RegionName;
|
||||
var region = await _RegionRepository.GetFirstAsync(s => s.RegionId == regionId);
|
||||
regionName += region.RegionName;
|
||||
|
||||
return regionName;
|
||||
}
|
||||
|
||||
|
||||
#region Excel处理
|
||||
|
||||
|
||||
|
@ -157,6 +157,7 @@ namespace ARW.Service.Business.BusinessService.GoodsManager.Goodss
|
||||
GoodsAloneGradeEquity = s.GoodsAloneGradeEquity,
|
||||
GoodsShelfStatus = s.GoodsShelfStatus,
|
||||
GoodsSort = s.GoodsSort,
|
||||
GoodsWeight = s.GoodsWeight,
|
||||
CreateTime = s.Create_time.ToString("yyyy-MM-dd HH:mm")
|
||||
});
|
||||
|
||||
|
@ -20,6 +20,15 @@ using ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.GoodsSkus;
|
||||
using ARW.Model.Models.Business.Custom.Customers;
|
||||
using ARW.Repository.Business.OrderManage.OrderGoodss;
|
||||
using ARW.Model.Models.Business.GoodsManager.Goodss;
|
||||
using ARW.Model.Dto.Api.OrderManage.Orders;
|
||||
using ARW.Model.Vo.Api.OrderManage.Orders;
|
||||
using Aliyun.OSS;
|
||||
using Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp.WxAppJson;
|
||||
using ARW.Common;
|
||||
using Org.BouncyCastle.Crypto.Prng;
|
||||
using Senparc.CO2NET.Extensions;
|
||||
using ARW.Repository.Business.OrderManage.OrderCustomerAddreses;
|
||||
using ARW.Service.Business.IBusinessService.Custom.Regions;
|
||||
|
||||
namespace ARW.Service.Business.BusinessService.OrderManage.Orders
|
||||
{
|
||||
@ -34,15 +43,19 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
|
||||
{
|
||||
private readonly OrderRepository _OrderRepository;
|
||||
private readonly OrderGoodsRepository _OrderGoodsRepository;
|
||||
private readonly OrderCustomerAddressRepository _OrderCustomerAddressRepository;
|
||||
private readonly GoodsRepository _GoodsRepository;
|
||||
private readonly IGoodsSkuService _GoodsSkuService;
|
||||
private readonly IRegionService _RegionService;
|
||||
|
||||
public OrderServiceImpl(OrderRepository OrderRepository, GoodsRepository goodsRepository, IGoodsSkuService goodsSkuService, OrderGoodsRepository orderGoodsRepository)
|
||||
public OrderServiceImpl(OrderRepository OrderRepository, GoodsRepository goodsRepository, IGoodsSkuService goodsSkuService, OrderGoodsRepository orderGoodsRepository, OrderCustomerAddressRepository orderCustomerAddressRepository, IRegionService regionService)
|
||||
{
|
||||
this._OrderRepository = OrderRepository;
|
||||
_GoodsRepository = goodsRepository;
|
||||
_GoodsSkuService = goodsSkuService;
|
||||
_OrderGoodsRepository = orderGoodsRepository;
|
||||
_OrderCustomerAddressRepository = orderCustomerAddressRepository;
|
||||
_RegionService = regionService;
|
||||
}
|
||||
|
||||
#region 业务逻辑代码
|
||||
@ -94,32 +107,8 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
|
||||
|
||||
foreach (var item in list.Result)
|
||||
{
|
||||
// 获取商品信息
|
||||
item.GoodsInfoList = new List<OrderGoodsVo>();
|
||||
var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == item.OrderGuid);
|
||||
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("商品不存在");
|
||||
var orderGoodsInfo = new OrderGoodsVo();
|
||||
orderGoodsInfo.GoodsName = goods.GoodsName;
|
||||
orderGoodsInfo.GoodsPicture = goods.GoodsPicture;
|
||||
orderGoodsInfo.GoodsTotalNum = orderGoods.GoodsTotalNum;
|
||||
if (orderGoods.GoodsSkuId != null)
|
||||
{
|
||||
var specName = await _GoodsSkuService.GetSpecValueFullName(orderGoods.GoodsSkuId);
|
||||
var sku = await _GoodsSkuService.GetByIdAsync(orderGoods.GoodsSkuId);
|
||||
orderGoodsInfo.GoodsSpecName = specName;
|
||||
orderGoodsInfo.GoodsPrice = sku.GoodsSkuPrice;
|
||||
}
|
||||
else
|
||||
{
|
||||
orderGoodsInfo.GoodsPrice = goods.GoodsPriceHighest;
|
||||
}
|
||||
item.GoodsInfoList.Add(orderGoodsInfo);
|
||||
}
|
||||
|
||||
|
||||
// 获取订单商品信息
|
||||
item.GoodsInfoList = await GetOrderGoodsList(item.OrderGuid);
|
||||
|
||||
}
|
||||
|
||||
@ -127,6 +116,147 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询订单详情
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<string> GetOrderDetails(OrderDetailDto parm)
|
||||
{
|
||||
|
||||
var query = _OrderRepository
|
||||
.Queryable()
|
||||
.LeftJoin<Customer>((s, c) => s.CustomerGuid == c.CustomerGuid)
|
||||
.Where(s => s.OrderId == parm.OrderId)
|
||||
.Select((s, c) => new OrderDetailsVo
|
||||
{
|
||||
OrderId = s.OrderId,
|
||||
OrderGuid = s.OrderGuid,
|
||||
CustomerPhone = c.CustomerMobilePhoneNumber,
|
||||
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,
|
||||
CreateTime = s.Create_time
|
||||
}).Take(1);
|
||||
|
||||
var json = await query.ToJsonAsync();
|
||||
if (json != "[]")
|
||||
{
|
||||
var data = Tools.JsonToVo<OrderDetailsVo>(json);
|
||||
data.GoodsInfoList = await GetOrderGoodsList(data.OrderGuid);
|
||||
data.OrderReceive = await GetOrderReceive(data.OrderGuid);
|
||||
|
||||
json = data.ToJson();
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 发货
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<string> Deliver(OrderDeliverDto parm)
|
||||
{
|
||||
var isUpdate = await _OrderRepository.UpdateAsync(s => new Order
|
||||
{
|
||||
LogisticsCompanyGuid = parm.LogisticsCompanyGuid,
|
||||
LogisticsCompany = parm.LogisticsCompany,
|
||||
LogisticsTrackingNumber = parm.LogisticsTrackingNumber,
|
||||
DeliveryStatus = 2,
|
||||
DeliveryTime = DateTime.Now,
|
||||
Update_time = DateTime.Now
|
||||
}, f => f.OrderGuid == parm.OrderGuid);
|
||||
|
||||
if (isUpdate)
|
||||
return "发货成功";
|
||||
else
|
||||
throw new CustomException("发货失败");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单改价
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<string> ChangePrice(OrderChangePriceDto parm)
|
||||
{
|
||||
var isUpdate = await _OrderRepository.UpdateAsync(s => new Order
|
||||
{
|
||||
UpdatePrice = parm.ExpressPrice + parm.OrderAmount,
|
||||
Update_time = DateTime.Now
|
||||
}, f => f.OrderGuid == parm.OrderGuid);
|
||||
|
||||
if (isUpdate)
|
||||
return "改价成功";
|
||||
else
|
||||
throw new CustomException("改价失败");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 审核取消订单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<string> CancelOrder(OrderCancelOrderDto parm)
|
||||
{
|
||||
if (parm.IsAgree)
|
||||
{
|
||||
var isUpdate = await _OrderRepository.UpdateAsync(s => new Order
|
||||
{
|
||||
OrderStatus = 2,
|
||||
Update_time = DateTime.Now
|
||||
}, f => f.OrderGuid == parm.OrderGuid);
|
||||
|
||||
if (isUpdate)
|
||||
return "通过申请成功";
|
||||
else
|
||||
throw new CustomException("通过申请失败");
|
||||
}
|
||||
else
|
||||
{
|
||||
var isUpdate = await _OrderRepository.UpdateAsync(s => new Order
|
||||
{
|
||||
OrderStatus = 1,
|
||||
Update_time = DateTime.Now
|
||||
}, f => f.OrderGuid == parm.OrderGuid);
|
||||
|
||||
if (isUpdate)
|
||||
return "拒绝申请成功";
|
||||
else
|
||||
throw new CustomException("拒绝申请失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
@ -161,6 +291,73 @@ namespace ARW.Service.Business.BusinessService.OrderManage.Orders
|
||||
#endregion
|
||||
|
||||
|
||||
#region 封装方法
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品订单列表
|
||||
/// </summary>
|
||||
/// <param name="orderGuid">订单guid</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="CustomException"></exception>
|
||||
public async Task<List<OrderGoodsVo>> GetOrderGoodsList(long orderGuid)
|
||||
{
|
||||
var goodsInfoList = new List<OrderGoodsVo>();
|
||||
|
||||
var orderGoodsList = await _OrderGoodsRepository.GetListAsync(s => s.OrderGuid == orderGuid);
|
||||
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("商品不存在");
|
||||
var orderGoodsInfo = new OrderGoodsVo();
|
||||
orderGoodsInfo.GoodsName = goods.GoodsName;
|
||||
orderGoodsInfo.GoodsPicture = goods.GoodsPicture;
|
||||
orderGoodsInfo.GoodsTotalNum = orderGoods.GoodsTotalNum;
|
||||
orderGoodsInfo.GoodsTotalNum = orderGoods.GoodsTotalNum;
|
||||
if (orderGoods.GoodsSkuId != null)
|
||||
{
|
||||
var specName = await _GoodsSkuService.GetSpecValueFullName(orderGoods.GoodsSkuId);
|
||||
var sku = await _GoodsSkuService.GetByIdAsync(orderGoods.GoodsSkuId);
|
||||
orderGoodsInfo.GoodsSpecName = specName;
|
||||
orderGoodsInfo.GoodsPrice = sku.GoodsSkuPrice;
|
||||
orderGoodsInfo.GoodsCoding = goods.GoodsCoding;
|
||||
}
|
||||
else
|
||||
{
|
||||
orderGoodsInfo.GoodsPrice = goods.GoodsPriceHighest;
|
||||
orderGoodsInfo.GoodsWeight = goods.GoodsWeight;
|
||||
}
|
||||
orderGoodsInfo.GoodsTotalPrice = orderGoodsInfo.GoodsPrice * orderGoodsInfo.GoodsTotalNum;
|
||||
|
||||
goodsInfoList.Add(orderGoodsInfo);
|
||||
}
|
||||
|
||||
return goodsInfoList;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取收货信息
|
||||
/// </summary>
|
||||
/// <param name="orderGuid"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<OrderReceiveVo> GetOrderReceive(long orderGuid)
|
||||
{
|
||||
var orderReceive = new OrderReceiveVo();
|
||||
var receive = await _OrderCustomerAddressRepository.GetFirstAsync(s => s.OrderGuid == orderGuid);
|
||||
if (receive != null)
|
||||
{
|
||||
orderReceive.ConsigneeName = receive.ConsigneeName;
|
||||
orderReceive.Phone = receive.Phont;
|
||||
orderReceive.Detail = receive.Detail;
|
||||
|
||||
// 获取地区名称
|
||||
orderReceive.Region = await _RegionService.GetRegionFullName(receive.ProvinceId, receive.CityId, receive.RegionId);
|
||||
}
|
||||
|
||||
return orderReceive;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -34,7 +34,7 @@ namespace ARW.Service.Business.IBusinessService.Custom.Regions
|
||||
Task<List<RegionVo>> GetRegionList(RegionQueryDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 添加或修改省市区数据表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
@ -54,7 +54,12 @@ namespace ARW.Service.Business.IBusinessService.Custom.Regions
|
||||
/// </summary>
|
||||
/// <param name="RegionCode">省市区编码</param>
|
||||
/// <returns></returns>
|
||||
Task<int> GetRegionId(string RegionCode,int level);
|
||||
Task<int> GetRegionId(string RegionCode, int level);
|
||||
|
||||
/// <summary>
|
||||
/// 获取省市区完整名称
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<string> GetRegionFullName(int provinceId, int CityId, int regionId);
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ARW.Model;
|
||||
using ARW.Model.Dto.Api.OrderManage.Orders;
|
||||
using ARW.Model.Dto.Business.OrderManage.Orders;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
using ARW.Model.Vo.Business.OrderManage.Orders;
|
||||
@ -18,7 +19,7 @@ namespace ARW.Service.Business.IBusinessService.OrderManage.Orders
|
||||
/// </summary>
|
||||
public interface IOrderService : IBaseService<Order>
|
||||
{
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 获取订单分页列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
@ -26,7 +27,15 @@ namespace ARW.Service.Business.IBusinessService.OrderManage.Orders
|
||||
Task<PagedInfo<OrderVo>> GetOrderList(OrderQueryDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 获取订单详情(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> GetOrderDetails(OrderDetailDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加或修改订单
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
@ -34,6 +43,29 @@ namespace ARW.Service.Business.IBusinessService.OrderManage.Orders
|
||||
Task<string> AddOrUpdateOrder(Order parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 发货
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> Deliver(OrderDeliverDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单改价
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> ChangePrice(OrderChangePriceDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 审核取消订单
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> CancelOrder(OrderCancelOrderDto parm);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Excel导出
|
||||
|
@ -0,0 +1,81 @@
|
||||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Enums;
|
||||
using Infrastructure.Model;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ARW.Admin.WebApi.Extensions;
|
||||
using ARW.Admin.WebApi.Filters;
|
||||
using ARW.Common;
|
||||
using ARW.Admin.WebApi.Controllers;
|
||||
using ARW.Model.Dto.Api.OrderManage.Orders;
|
||||
using ARW.Service.Api.IBusinessService.OrderManage.Orders;
|
||||
using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
using ARW.Model.Vo.Api.OrderManage.Orders;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Geocoding;
|
||||
|
||||
namespace ARW.WebApi.Controllers.Api.OrderManage.Orders
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单控制器Api
|
||||
///
|
||||
/// @author lwh
|
||||
/// @date 2023-09-01
|
||||
/// </summary>
|
||||
[Verify]
|
||||
[Route("api/[controller]")]
|
||||
public class OrderApiController : BaseController
|
||||
{
|
||||
private readonly IOrderServiceApi _OrderServiceApi;
|
||||
|
||||
/// <summary>
|
||||
/// 依赖注入
|
||||
/// </summary>
|
||||
/// <param name="OrderServiceApi">订单订单Api服务</param>
|
||||
public OrderApiController(IOrderServiceApi OrderServiceApi)
|
||||
{
|
||||
_OrderServiceApi = OrderServiceApi;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单列表(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm">查询参数</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("getOrderList")]
|
||||
public async Task<IActionResult> GetOrderListApi([FromQuery] OrderQueryDtoApi parm)
|
||||
{
|
||||
var res = await _OrderServiceApi.GetOrderListApi(parm);
|
||||
return SUCCESS(res);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取Order详情(Api)
|
||||
/// </summary>
|
||||
/// <param name="parm">查询参数</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("getOrderDetails")]
|
||||
public async Task<IActionResult> GetOrderDetails([FromQuery] OrderDtoApi parm)
|
||||
{
|
||||
//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<OrderApiDetailsVo>();
|
||||
return SUCCESS(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
return SUCCESS(res);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -15,7 +15,8 @@ using ARW.Model.Models.Business.OrderManage.Orders;
|
||||
using ARW.Model.Vo.Business.OrderManage.Orders;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using ARW.Admin.WebApi.Framework;
|
||||
|
||||
using ARW.Service.Api.IBusinessService.OrderManage.Orders;
|
||||
using Geocoding;
|
||||
|
||||
namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
|
||||
{
|
||||
@ -54,6 +55,79 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
|
||||
return SUCCESS(res);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单详情
|
||||
/// </summary>
|
||||
/// <param name="parm">查询参数</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("getOrderDetails")]
|
||||
public async Task<IActionResult> GetOrderDetails([FromQuery] OrderDetailDto parm)
|
||||
{
|
||||
//if (parm == null) throw new CustomException("参数错误!");
|
||||
|
||||
var res = await _OrderService.GetOrderDetails(parm);
|
||||
|
||||
if (res != "[]")
|
||||
{
|
||||
var data = res.FromJSON<OrderDetailsVo>();
|
||||
return SUCCESS(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
return SUCCESS(res);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 发货
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("deliver")]
|
||||
[Log(Title = "发货", BusinessType = BusinessType.ADDORUPDATE)]
|
||||
public async Task<IActionResult> Deliver([FromBody] OrderDeliverDto parm)
|
||||
{
|
||||
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||
|
||||
var res = await _OrderService.Deliver(parm);
|
||||
return SUCCESS(res);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单改价
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("changePrice")]
|
||||
[Log(Title = "订单改价", BusinessType = BusinessType.ADDORUPDATE)]
|
||||
public async Task<IActionResult> ChangePrice([FromBody] OrderChangePriceDto parm)
|
||||
{
|
||||
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||
|
||||
var res = await _OrderService.ChangePrice(parm);
|
||||
return SUCCESS(res);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 审核取消订单
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("cancelOrder")]
|
||||
[Log(Title = "审核取消订单", BusinessType = BusinessType.ADDORUPDATE)]
|
||||
public async Task<IActionResult> CancelOrder([FromBody] OrderCancelOrderDto parm)
|
||||
{
|
||||
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||
|
||||
var res = await _OrderService.CancelOrder(parm);
|
||||
return SUCCESS(res);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加或修改订单
|
||||
/// </summary>
|
||||
@ -66,7 +140,7 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
|
||||
{
|
||||
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||
|
||||
var modal = new Order();
|
||||
var modal = new Order();
|
||||
if (parm.OrderId != 0) modal = parm.Adapt<Order>().ToUpdate(HttpContext);
|
||||
else modal = parm.Adapt<Order>().ToCreate(HttpContext);
|
||||
|
||||
@ -90,7 +164,7 @@ namespace ARW.WebApi.Controllers.Business.OrderManage.Orders
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 导出订单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
|
Loading…
Reference in New Issue
Block a user