From 81573d783ddd2f86d84bdef3d806bbe341c2834c Mon Sep 17 00:00:00 2001 From: lwh <2679599887@qq.com> Date: Tue, 29 Aug 2023 18:24:11 +0800 Subject: [PATCH] =?UTF-8?q?init=20=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Business/OrderManage/Orders/OrderDto.cs | 141 ++++++++ .../Business/OrderManage/Orders/Order.cs | 337 ++++++++++++++++++ .../Vo/Business/OrderManage/Orders/OrderVo.cs | 263 ++++++++++++++ .../OrderManage/Orders/OrderRepository.cs | 20 ++ .../OrderManage/Orders/OrderService.cs | 137 +++++++ .../OrderManage/Orders/IOrderService.cs | 45 +++ .../OrderManage/Orders/OrderController.cs | 132 +++++++ 7 files changed, 1075 insertions(+) create mode 100644 ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs create mode 100644 ARW.Model/Models/Business/OrderManage/Orders/Order.cs create mode 100644 ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs create mode 100644 ARW.Repository/Business/OrderManage/Orders/OrderRepository.cs create mode 100644 ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs create mode 100644 ARW.Service/Business/IBusinessService/OrderManage/Orders/IOrderService.cs create mode 100644 ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs diff --git a/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs b/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs new file mode 100644 index 0000000..c9ccf26 --- /dev/null +++ b/ARW.Model/Dto/Business/OrderManage/Orders/OrderDto.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using ARW.Model.Models.Business.OrderManage.Orders; + +namespace ARW.Model.Dto.Business.OrderManage.Orders +{ + /// + /// 订单输入对象 + /// + /// @author lwh + /// @date 2023-08-29 + /// + public class OrderDto + { + + public int OrderId { get; set; } + + public long OrderGuid { get; set; } + + [Required(ErrorMessage = "商品guid不能为空")] + public long GoodsGuid { get; set; } + + [Required(ErrorMessage = "订单流水guid不能为空")] + public long PaymentGuid { get; set; } + + [Required(ErrorMessage = "客户guid不能为空")] + public long CustomerGuid { get; set; } + + public long? ShopGuid { get; set; } + + [Required(ErrorMessage = "订单号不能为空")] + public string OrderNumber { get; set; } + + [Required(ErrorMessage = "商品总金额不能为空")] + public decimal GoodsTotalAmoun { get; set; } + + [Required(ErrorMessage = "订单金额不能为空")] + public decimal OrderAmount { get; set; } + + public long? CouponGuid { get; set; } + + public decimal CouponMoney { get; set; } + + public decimal PointsMoney { get; set; } + + public decimal PointsNum { get; set; } + + [Required(ErrorMessage = "实际付款金额(包含运费)不能为空")] + public decimal PayPrice { get; set; } + + public decimal UpdatePrice { get; set; } + + public string OrderRemark { get; set; } + + [Required(ErrorMessage = "支付方式(1微信支付 2余额支付)不能为空")] + public int PayType { get; set; } + + [Required(ErrorMessage = "付款状态(1未付款 2已付款)不能为空")] + public int PayStatus { get; set; } + + [Required(ErrorMessage = "付款时间不能为空")] + public DateTime? PayTime { get; set; } + + [Required(ErrorMessage = "配送方式(1快递配送)不能为空")] + public int DeliveryType { get; set; } + + [Required(ErrorMessage = "运费金额不能为空")] + public decimal ExpressPrice { get; set; } + + public long? LogisticsCompanyGuid { get; set; } + + public string LogisticsCompany { get; set; } + + public string LogisticsTrackingNumber { get; set; } + + [Required(ErrorMessage = "发货状态(1未发货 2已发货)不能为空")] + public int DeliveryStatus { get; set; } + + public DateTime? DeliveryTime { get; set; } + + [Required(ErrorMessage = "收货状态(1未收货 2已收货)不能为空")] + public int ReceiptStatus { get; set; } + + public DateTime? ReceiptTime { get; set; } + + [Required(ErrorMessage = "订单状态(1进行中 2取消 3待取消 4已完成)不能为空")] + public int OrderStatus { get; set; } + + public decimal PointsBonus { get; set; } + + [Required(ErrorMessage = "订单是否已结算(1未结算 2已结算)不能为空")] + public int IsSettled { get; set; } + + public string TransactionId { get; set; } + + [Required(ErrorMessage = "是否已评价(1否 2是)不能为空")] + public int IsComment { get; set; } + + [Required(ErrorMessage = "订单来源(1普通订单)不能为空")] + public int OrderSource { get; set; } + + + + + + } + + + /// + /// 订单查询对象 + /// + /// @author lwh + /// @date 2023-08-29 + /// + public class OrderQueryDto : 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; } + + public string ids { get; set; } + } + + + + +} diff --git a/ARW.Model/Models/Business/OrderManage/Orders/Order.cs b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs new file mode 100644 index 0000000..79f1c7f --- /dev/null +++ b/ARW.Model/Models/Business/OrderManage/Orders/Order.cs @@ -0,0 +1,337 @@ +using System; +using System.Collections.Generic; +using SqlSugar; +using OfficeOpenXml.Attributes; +using Newtonsoft.Json; + +namespace ARW.Model.Models.Business.OrderManage.Orders +{ + /// + /// 订单,数据实体对象 + /// + /// @author lwh + /// @date 2023-08-29 + /// + [SugarTable("tb_order")] + public class Order : BusinessBase + { + + /// + /// 描述 : + /// 空值 : false + /// + [EpplusTableColumn(Header = "OrderId")] + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "order_id")] + public int OrderId { get; set; } + + + /// + /// 描述 : + /// 空值 : false + /// + [EpplusTableColumn(Header = "OrderGuid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "order_guid")] + public long OrderGuid { get; set; } + + + /// + /// 描述 :商品guid + /// 空值 : false + /// + [EpplusTableColumn(Header = "商品guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "goods_guid")] + public long GoodsGuid { get; set; } + + + /// + /// 描述 :订单流水guid + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单流水guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "payment_guid")] + public long PaymentGuid { get; set; } + + + /// + /// 描述 :客户guid + /// 空值 : false + /// + [EpplusTableColumn(Header = "客户guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "customer_guid")] + public long CustomerGuid { get; set; } + + + /// + /// 描述 :店铺guid + /// 空值 : true + /// + [EpplusTableColumn(Header = "店铺guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "shop_guid")] + public long? ShopGuid { get; set; } + + + /// + /// 描述 :订单号 + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单号")] + [SugarColumn(ColumnName = "order_number")] + public string OrderNumber { get; set; } + + + /// + /// 描述 :商品总金额 + /// 空值 : false + /// + [EpplusTableColumn(Header = "商品总金额")] + [SugarColumn(ColumnName = "goods_total_amoun")] + public decimal GoodsTotalAmoun { get; set; } + + + /// + /// 描述 :订单金额 + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单金额")] + [SugarColumn(ColumnName = "order_amount")] + public decimal OrderAmount { get; set; } + + + /// + /// 描述 :优惠券guid + /// 空值 : true + /// + [EpplusTableColumn(Header = "优惠券guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "coupon_guid")] + public long? CouponGuid { get; set; } + + + /// + /// 描述 :优惠券抵扣金额 + /// 空值 : true + /// + [EpplusTableColumn(Header = "优惠券抵扣金额")] + [SugarColumn(ColumnName = "coupon_money")] + public decimal CouponMoney { get; set; } + + + /// + /// 描述 :积分抵扣金额 + /// 空值 : true + /// + [EpplusTableColumn(Header = "积分抵扣金额")] + [SugarColumn(ColumnName = "points_money")] + public decimal PointsMoney { get; set; } + + + /// + /// 描述 :积分抵扣数量 + /// 空值 : true + /// + [EpplusTableColumn(Header = "积分抵扣数量")] + [SugarColumn(ColumnName = "points_num")] + public decimal PointsNum { get; set; } + + + /// + /// 描述 :实际付款金额(包含运费) + /// 空值 : false + /// + [EpplusTableColumn(Header = "实际付款金额(包含运费)")] + [SugarColumn(ColumnName = "pay_price")] + public decimal PayPrice { get; set; } + + + /// + /// 描述 :后台修改的订单金额(差价) + /// 空值 : true + /// + [EpplusTableColumn(Header = "后台修改的订单金额(差价)")] + [SugarColumn(ColumnName = "update_price")] + public decimal UpdatePrice { get; set; } + + + /// + /// 描述 :买家留言 + /// 空值 : true + /// + [EpplusTableColumn(Header = "买家留言")] + [SugarColumn(ColumnName = "order_remark")] + public string OrderRemark { get; set; } + + + /// + /// 描述 :支付方式(1微信支付 2余额支付) + /// 空值 : false + /// + [EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")] + [SugarColumn(ColumnName = "pay_type")] + public int PayType { get; set; } + + + /// + /// 描述 :付款状态(1未付款 2已付款) + /// 空值 : false + /// + [EpplusTableColumn(Header = "付款状态(1未付款 2已付款)")] + [SugarColumn(ColumnName = "pay_status")] + public int PayStatus { get; set; } + + + /// + /// 描述 :付款时间 + /// 空值 : false + /// + [EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] + [SugarColumn(ColumnName = "pay_time")] + public DateTime? PayTime { get; set; } + + + /// + /// 描述 :配送方式(1快递配送) + /// 空值 : false + /// + [EpplusTableColumn(Header = "配送方式(1快递配送)")] + [SugarColumn(ColumnName = "delivery_type")] + public int DeliveryType { get; set; } + + + /// + /// 描述 :运费金额 + /// 空值 : false + /// + [EpplusTableColumn(Header = "运费金额")] + [SugarColumn(ColumnName = "express_price")] + public decimal ExpressPrice { get; set; } + + + /// + /// 描述 :物流公司guid + /// 空值 : true + /// + [EpplusTableColumn(Header = "物流公司guid")] + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(ColumnName = "logistics_company_guid")] + public long? LogisticsCompanyGuid { get; set; } + + + /// + /// 描述 :物流公司 + /// 空值 : true + /// + [EpplusTableColumn(Header = "物流公司")] + [SugarColumn(ColumnName = "logistics_company")] + public string LogisticsCompany { get; set; } + + + /// + /// 描述 :物流单号 + /// 空值 : true + /// + [EpplusTableColumn(Header = "物流单号")] + [SugarColumn(ColumnName = "logistics_tracking_number")] + public string LogisticsTrackingNumber { get; set; } + + + /// + /// 描述 :发货状态(1未发货 2已发货) + /// 空值 : false + /// + [EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")] + [SugarColumn(ColumnName = "delivery_status")] + public int DeliveryStatus { get; set; } + + + /// + /// 描述 :发货时间 + /// 空值 : true + /// + [EpplusTableColumn(Header = "发货时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] + [SugarColumn(ColumnName = "delivery_time")] + public DateTime? DeliveryTime { get; set; } + + + /// + /// 描述 :收货状态(1未收货 2已收货) + /// 空值 : false + /// + [EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")] + [SugarColumn(ColumnName = "receipt_status")] + public int ReceiptStatus { get; set; } + + + /// + /// 描述 :收货时间 + /// 空值 : true + /// + [EpplusTableColumn(Header = "收货时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] + [SugarColumn(ColumnName = "receipt_time")] + public DateTime? ReceiptTime { get; set; } + + + /// + /// 描述 :订单状态(1进行中 2取消 3待取消 4已完成) + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")] + [SugarColumn(ColumnName = "order_status")] + public int OrderStatus { get; set; } + + + /// + /// 描述 :赠送的积分数量 + /// 空值 : true + /// + [EpplusTableColumn(Header = "赠送的积分数量")] + [SugarColumn(ColumnName = "points_bonus")] + public decimal PointsBonus { get; set; } + + + /// + /// 描述 :订单是否已结算(1未结算 2已结算) + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")] + [SugarColumn(ColumnName = "is_settled")] + public int IsSettled { get; set; } + + + /// + /// 描述 :微信支付交易号 + /// 空值 : true + /// + [EpplusTableColumn(Header = "微信支付交易号")] + [SugarColumn(ColumnName = "transaction_id")] + public string TransactionId { get; set; } + + + /// + /// 描述 :是否已评价(1否 2是) + /// 空值 : false + /// + [EpplusTableColumn(Header = "是否已评价(1否 2是)")] + [SugarColumn(ColumnName = "is_comment")] + public int IsComment { get; set; } + + + /// + /// 描述 :订单来源(1普通订单) + /// 空值 : false + /// + [EpplusTableColumn(Header = "订单来源(1普通订单)")] + [SugarColumn(ColumnName = "order_source")] + public int OrderSource { get; set; } + + + + + + + } +} \ No newline at end of file diff --git a/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs b/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs new file mode 100644 index 0000000..4f49230 --- /dev/null +++ b/ARW.Model/Vo/Business/OrderManage/Orders/OrderVo.cs @@ -0,0 +1,263 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; + +namespace ARW.Model.Vo.Business.OrderManage.Orders +{ + /// + /// 订单展示对象 + /// + /// @author lwh + /// @date 2023-08-29 + /// + public class OrderVo + { + + + /// + /// 描述 : + /// + [EpplusIgnore] + public int OrderId { get; set; } + + + /// + /// 描述 : + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long OrderGuid { get; set; } + + + /// + /// 描述 :商品guid + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusTableColumn(Header = "商品guid")] + public long GoodsGuid { get; set; } + + + /// + /// 描述 :订单流水guid + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusTableColumn(Header = "订单流水guid")] + public long PaymentGuid { get; set; } + + + /// + /// 描述 :客户guid + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusTableColumn(Header = "客户guid")] + public long CustomerGuid { get; set; } + + + /// + /// 描述 :店铺guid + /// + [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; } + + + /// + /// 描述 :优惠券guid + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long? CouponGuid { get; set; } + + + /// + /// 描述 :优惠券抵扣金额 + /// + [EpplusIgnore] + public decimal CouponMoney { get; set; } + + + /// + /// 描述 :积分抵扣金额 + /// + [EpplusIgnore] + public decimal PointsMoney { get; set; } + + + /// + /// 描述 :积分抵扣数量 + /// + [EpplusIgnore] + public decimal PointsNum { get; set; } + + + /// + /// 描述 :实际付款金额(包含运费) + /// + [EpplusTableColumn(Header = "实际付款金额(包含运费)")] + public decimal PayPrice { get; set; } + + + /// + /// 描述 :后台修改的订单金额(差价) + /// + [EpplusIgnore] + public decimal UpdatePrice { get; set; } + + + /// + /// 描述 :买家留言 + /// + [EpplusIgnore] + public string OrderRemark { get; set; } + + + /// + /// 描述 :支付方式(1微信支付 2余额支付) + /// + [EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")] + public int PayType { get; set; } + + + /// + /// 描述 :付款状态(1未付款 2已付款) + /// + [EpplusTableColumn(Header = "付款状态(1未付款 2已付款)")] + public int PayStatus { get; set; } + + + /// + /// 描述 :付款时间 + /// + [EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")] + public DateTime? PayTime { get; set; } + + + /// + /// 描述 :配送方式(1快递配送) + /// + [EpplusTableColumn(Header = "配送方式(1快递配送)")] + public int DeliveryType { get; set; } + + + /// + /// 描述 :运费金额 + /// + [EpplusTableColumn(Header = "运费金额")] + public decimal ExpressPrice { get; set; } + + + /// + /// 描述 :物流公司guid + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long? LogisticsCompanyGuid { get; set; } + + + /// + /// 描述 :物流公司 + /// + [EpplusIgnore] + public string LogisticsCompany { get; set; } + + + /// + /// 描述 :物流单号 + /// + [EpplusIgnore] + public string LogisticsTrackingNumber { get; set; } + + + /// + /// 描述 :发货状态(1未发货 2已发货) + /// + [EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")] + public int DeliveryStatus { get; set; } + + + /// + /// 描述 :发货时间 + /// + [EpplusIgnore] + public DateTime? DeliveryTime { get; set; } + + + /// + /// 描述 :收货状态(1未收货 2已收货) + /// + [EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")] + public int ReceiptStatus { get; set; } + + + /// + /// 描述 :收货时间 + /// + [EpplusIgnore] + public DateTime? ReceiptTime { get; set; } + + + /// + /// 描述 :订单状态(1进行中 2取消 3待取消 4已完成) + /// + [EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")] + public int OrderStatus { get; set; } + + + /// + /// 描述 :赠送的积分数量 + /// + [EpplusIgnore] + public decimal PointsBonus { get; set; } + + + /// + /// 描述 :订单是否已结算(1未结算 2已结算) + /// + [EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")] + public int IsSettled { get; set; } + + + /// + /// 描述 :微信支付交易号 + /// + [EpplusIgnore] + public string TransactionId { get; set; } + + + /// + /// 描述 :是否已评价(1否 2是) + /// + [EpplusTableColumn(Header = "是否已评价(1否 2是)")] + public int IsComment { get; set; } + + + /// + /// 描述 :订单来源(1普通订单) + /// + [EpplusTableColumn(Header = "订单来源(1普通订单)")] + public int OrderSource { get; set; } + + } +} diff --git a/ARW.Repository/Business/OrderManage/Orders/OrderRepository.cs b/ARW.Repository/Business/OrderManage/Orders/OrderRepository.cs new file mode 100644 index 0000000..ead0b74 --- /dev/null +++ b/ARW.Repository/Business/OrderManage/Orders/OrderRepository.cs @@ -0,0 +1,20 @@ +using System; +using Infrastructure.Attribute; +using ARW.Repository.System; +using ARW.Model.Models.Business.OrderManage.Orders; + +namespace ARW.Repository.Business.OrderManage.Orders +{ + /// + /// 订单仓储 + /// + /// @author lwh + /// @date 2023-08-29 + /// + [AppService(ServiceLifetime = LifeTime.Transient)] + public class OrderRepository : BaseRepository + { + #region 业务逻辑代码 + #endregion + } +} \ No newline at end of file diff --git a/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs new file mode 100644 index 0000000..9a08cda --- /dev/null +++ b/ARW.Service/Business/BusinessService/OrderManage/Orders/OrderService.cs @@ -0,0 +1,137 @@ +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 Infrastructure; +using ARW.Model; +using ARW.Repository; +using ARW.Repository.Business.OrderManage.Orders; +using ARW.Service.Business.IBusinessService.OrderManage.Orders; +using ARW.Model.Dto.Business.OrderManage.Orders; +using ARW.Model.Models.Business.OrderManage.Orders; +using ARW.Model.Vo.Business.OrderManage.Orders; + +namespace ARW.Service.Business.BusinessService.OrderManage.Orders +{ + /// + /// 订单接口实现类 + /// + /// @author lwh + /// @date 2023-08-29 + /// + [AppService(ServiceType = typeof(IOrderService), ServiceLifetime = LifeTime.Transient)] + public class OrderServiceImpl : BaseService, IOrderService + { + private readonly OrderRepository _OrderRepository; + + public OrderServiceImpl(OrderRepository OrderRepository) + { + this._OrderRepository = OrderRepository; + } + + #region 业务逻辑代码 + + + /// + /// 查询订单分页列表 + /// + public async Task> GetOrderList(OrderQueryDto parm) + { + //开始拼装查询条件d + var predicate = Expressionable.Create(); + + 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 OrderVo + { + OrderId = s.OrderId, + OrderGuid = s.OrderGuid, + GoodsGuid = s.GoodsGuid, + PaymentGuid = s.PaymentGuid, + CustomerGuid = s.CustomerGuid, + ShopGuid = s.ShopGuid, + OrderNumber = s.OrderNumber, + GoodsTotalAmoun = s.GoodsTotalAmoun, + OrderAmount = s.OrderAmount, + CouponGuid = s.CouponGuid, + CouponMoney = s.CouponMoney, + PointsMoney = s.PointsMoney, + PointsNum = s.PointsNum, + PayPrice = s.PayPrice, + UpdatePrice = s.UpdatePrice, + OrderRemark = s.OrderRemark, + PayType = s.PayType, + PayStatus = s.PayStatus, + PayTime = s.PayTime, + DeliveryType = s.DeliveryType, + ExpressPrice = s.ExpressPrice, + LogisticsCompanyGuid = s.LogisticsCompanyGuid, + LogisticsCompany = s.LogisticsCompany, + LogisticsTrackingNumber = s.LogisticsTrackingNumber, + DeliveryStatus = s.DeliveryStatus, + DeliveryTime = s.DeliveryTime, + ReceiptStatus = s.ReceiptStatus, + ReceiptTime = s.ReceiptTime, + OrderStatus = s.OrderStatus, + PointsBonus = s.PointsBonus, + IsSettled = s.IsSettled, + TransactionId = s.TransactionId, + IsComment = s.IsComment, + OrderSource = s.OrderSource, + }); + + + return await query.ToPageAsync(parm); + } + + /// + /// 添加或修改订单 + /// + public async Task AddOrUpdateOrder(Order model) + { + if (model.OrderId != 0) + { + var response = await _OrderRepository.UpdateAsync(model); + return "修改成功!"; + } + else + { + + var response = await _OrderRepository.InsertReturnSnowflakeIdAsync(model); + return "添加成功!"; + } + } + + #region Excel处理 + + + /// + /// Excel数据导出处理 + /// + public async Task> HandleExportData(List data) + { + return data; + } + + #endregion + + + +#endregion + + } +} diff --git a/ARW.Service/Business/IBusinessService/OrderManage/Orders/IOrderService.cs b/ARW.Service/Business/IBusinessService/OrderManage/Orders/IOrderService.cs new file mode 100644 index 0000000..791e534 --- /dev/null +++ b/ARW.Service/Business/IBusinessService/OrderManage/Orders/IOrderService.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Model.Dto.Business.OrderManage.Orders; +using ARW.Model.Models.Business.OrderManage.Orders; +using ARW.Model.Vo.Business.OrderManage.Orders; + +namespace ARW.Service.Business.IBusinessService.OrderManage.Orders +{ + /// + /// 订单接口类 + /// + /// @author lwh + /// @date 2023-08-29 + /// + public interface IOrderService : IBaseService + { + /// + /// 获取订单分页列表 + /// + /// + /// + Task> GetOrderList(OrderQueryDto parm); + + + /// + /// 添加或修改订单 + /// + /// + /// + Task AddOrUpdateOrder(Order parm); + + + + /// + /// Excel导出 + /// + Task> HandleExportData(List data); + + + } +} diff --git a/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs b/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs new file mode 100644 index 0000000..8594067 --- /dev/null +++ b/ARW.WebApi/Controllers/Business/OrderManage/Orders/OrderController.cs @@ -0,0 +1,132 @@ +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.Model.Dto.Business.OrderManage.Orders; +using ARW.Service.Business.IBusinessService.OrderManage.Orders; +using ARW.Admin.WebApi.Controllers; +using ARW.Model.Models.Business.OrderManage.Orders; +using ARW.Model.Vo.Business.OrderManage.Orders; +using Microsoft.AspNetCore.Authorization; +using ARW.Admin.WebApi.Framework; + + +namespace ARW.WebApi.Controllers.Business.OrderManage.Orders +{ + /// + /// 订单控制器 + /// + /// @author lwh + /// @date 2023-08-29 + /// + [Verify] + [Route("business/[controller]")] + public class OrderController : BaseController + { + private readonly IOrderService _OrderService; + + /// + /// 依赖注入 + /// + /// 订单服务 + public OrderController(IOrderService OrderService) + { + _OrderService = OrderService; + } + + + /// + /// 获取订单列表 + /// + /// 查询参数 + /// + [HttpGet("getOrderList")] + [ActionPermissionFilter(Permission = "business:order:list")] + public async Task GetOrderList([FromQuery] OrderQueryDto parm) + { + var res = await _OrderService.GetOrderList(parm); + return SUCCESS(res); + } + + /// + /// 添加或修改订单 + /// + /// + /// + [HttpPost("addOrUpdateOrder")] + [ActionPermissionFilter(Permission = "business:order:addOrUpdate")] + [Log(Title = "添加或修改订单", BusinessType = BusinessType.ADDORUPDATE)] + public async Task AddOrUpdateOrder([FromBody] OrderDto parm) + { + if (parm == null) { throw new CustomException("请求参数错误"); } + + var modal = new Order(); + if (parm.OrderId != 0) modal = parm.Adapt().ToUpdate(HttpContext); + else modal = parm.Adapt().ToCreate(HttpContext); + + var res = await _OrderService.AddOrUpdateOrder(modal); + return SUCCESS(res); + } + + /// + /// 删除订单 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:order:delete")] + [Log(Title = "订单删除", BusinessType = BusinessType.DELETE)] + public IActionResult Delete(string ids) + { + long[] idsArr = Tools.SpitLongArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + var response = _OrderService.Delete(idsArr); + return SUCCESS("删除成功!"); + } + + + /// + /// 导出订单 + /// + /// + [Log(Title = "订单导出", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)] + [HttpGet("exportOrder")] + [ActionPermissionFilter(Permission = "business:order:export")] + public async Task ExportExcel([FromQuery] OrderQueryDto parm) + { + parm.PageSize = 10000; + var list = await _OrderService.GetOrderList(parm); + var data = list.Result; + + // 选中数据 + if (!string.IsNullOrEmpty(parm.ids)) + { + int[] idsArr = Tools.SpitIntArrary(parm.ids); + var selectDataList = new List(); + foreach (var item in idsArr) + { + var select_data = data.Where(s => s.OrderId == item).First(); + selectDataList.Add(select_data); + } + data = selectDataList; + } + + + + // 导出数据处理 + var handleData = await _OrderService.HandleExportData(data); + + string sFileName = ExportExcel(handleData, "Order", "订单列表"); + return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); + } + + + + + } +}