init 初始化订单管理

This commit is contained in:
lwh 2023-08-29 18:24:11 +08:00
parent c296eca347
commit 81573d783d
7 changed files with 1075 additions and 0 deletions

View File

@ -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
{
/// <summary>
/// 订单输入对象
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
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; }
}
/// <summary>
/// 订单查询对象
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
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; }
}
}

View File

@ -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
{
/// <summary>
/// 订单,数据实体对象
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
[SugarTable("tb_order")]
public class Order : BusinessBase
{
/// <summary>
/// 描述 :
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "OrderId")]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "order_id")]
public int OrderId { get; set; }
/// <summary>
/// 描述 :
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "OrderGuid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "order_guid")]
public long OrderGuid { get; set; }
/// <summary>
/// 描述 :商品guid
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "商品guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "goods_guid")]
public long GoodsGuid { get; set; }
/// <summary>
/// 描述 :订单流水guid
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单流水guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "payment_guid")]
public long PaymentGuid { get; set; }
/// <summary>
/// 描述 :客户guid
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "客户guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "customer_guid")]
public long CustomerGuid { get; set; }
/// <summary>
/// 描述 :店铺guid
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "店铺guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "shop_guid")]
public long? ShopGuid { get; set; }
/// <summary>
/// 描述 :订单号
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单号")]
[SugarColumn(ColumnName = "order_number")]
public string OrderNumber { get; set; }
/// <summary>
/// 描述 :商品总金额
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "商品总金额")]
[SugarColumn(ColumnName = "goods_total_amoun")]
public decimal GoodsTotalAmoun { get; set; }
/// <summary>
/// 描述 :订单金额
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单金额")]
[SugarColumn(ColumnName = "order_amount")]
public decimal OrderAmount { get; set; }
/// <summary>
/// 描述 :优惠券guid
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "优惠券guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "coupon_guid")]
public long? CouponGuid { get; set; }
/// <summary>
/// 描述 :优惠券抵扣金额
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "优惠券抵扣金额")]
[SugarColumn(ColumnName = "coupon_money")]
public decimal CouponMoney { get; set; }
/// <summary>
/// 描述 :积分抵扣金额
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "积分抵扣金额")]
[SugarColumn(ColumnName = "points_money")]
public decimal PointsMoney { get; set; }
/// <summary>
/// 描述 :积分抵扣数量
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "积分抵扣数量")]
[SugarColumn(ColumnName = "points_num")]
public decimal PointsNum { get; set; }
/// <summary>
/// 描述 :实际付款金额(包含运费)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "实际付款金额(包含运费)")]
[SugarColumn(ColumnName = "pay_price")]
public decimal PayPrice { get; set; }
/// <summary>
/// 描述 :后台修改的订单金额(差价)
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "后台修改的订单金额(差价)")]
[SugarColumn(ColumnName = "update_price")]
public decimal UpdatePrice { get; set; }
/// <summary>
/// 描述 :买家留言
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "买家留言")]
[SugarColumn(ColumnName = "order_remark")]
public string OrderRemark { get; set; }
/// <summary>
/// 描述 :支付方式(1微信支付 2余额支付)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "支付方式(1微信支付 2余额支付)")]
[SugarColumn(ColumnName = "pay_type")]
public int PayType { get; set; }
/// <summary>
/// 描述 :付款状态(1未付款 2已付款)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "付款状态(1未付款 2已付款)")]
[SugarColumn(ColumnName = "pay_status")]
public int PayStatus { get; set; }
/// <summary>
/// 描述 :付款时间
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "付款时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
[SugarColumn(ColumnName = "pay_time")]
public DateTime? PayTime { get; set; }
/// <summary>
/// 描述 :配送方式(1快递配送)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "配送方式(1快递配送)")]
[SugarColumn(ColumnName = "delivery_type")]
public int DeliveryType { get; set; }
/// <summary>
/// 描述 :运费金额
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "运费金额")]
[SugarColumn(ColumnName = "express_price")]
public decimal ExpressPrice { get; set; }
/// <summary>
/// 描述 :物流公司guid
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "物流公司guid")]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "logistics_company_guid")]
public long? LogisticsCompanyGuid { get; set; }
/// <summary>
/// 描述 :物流公司
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "物流公司")]
[SugarColumn(ColumnName = "logistics_company")]
public string LogisticsCompany { get; set; }
/// <summary>
/// 描述 :物流单号
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "物流单号")]
[SugarColumn(ColumnName = "logistics_tracking_number")]
public string LogisticsTrackingNumber { get; set; }
/// <summary>
/// 描述 :发货状态(1未发货 2已发货)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "发货状态(1未发货 2已发货)")]
[SugarColumn(ColumnName = "delivery_status")]
public int DeliveryStatus { get; set; }
/// <summary>
/// 描述 :发货时间
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "发货时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
[SugarColumn(ColumnName = "delivery_time")]
public DateTime? DeliveryTime { get; set; }
/// <summary>
/// 描述 :收货状态(1未收货 2已收货)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "收货状态(1未收货 2已收货)")]
[SugarColumn(ColumnName = "receipt_status")]
public int ReceiptStatus { get; set; }
/// <summary>
/// 描述 :收货时间
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "收货时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
[SugarColumn(ColumnName = "receipt_time")]
public DateTime? ReceiptTime { get; set; }
/// <summary>
/// 描述 :订单状态(1进行中 2取消 3待取消 4已完成)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单状态(1进行中 2取消 3待取消 4已完成)")]
[SugarColumn(ColumnName = "order_status")]
public int OrderStatus { get; set; }
/// <summary>
/// 描述 :赠送的积分数量
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "赠送的积分数量")]
[SugarColumn(ColumnName = "points_bonus")]
public decimal PointsBonus { get; set; }
/// <summary>
/// 描述 :订单是否已结算(1未结算 2已结算)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单是否已结算(1未结算 2已结算)")]
[SugarColumn(ColumnName = "is_settled")]
public int IsSettled { get; set; }
/// <summary>
/// 描述 :微信支付交易号
/// 空值 : true
/// </summary>
[EpplusTableColumn(Header = "微信支付交易号")]
[SugarColumn(ColumnName = "transaction_id")]
public string TransactionId { get; set; }
/// <summary>
/// 描述 :是否已评价(1否 2是)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "是否已评价(1否 2是)")]
[SugarColumn(ColumnName = "is_comment")]
public int IsComment { get; set; }
/// <summary>
/// 描述 :订单来源(1普通订单)
/// 空值 : false
/// </summary>
[EpplusTableColumn(Header = "订单来源(1普通订单)")]
[SugarColumn(ColumnName = "order_source")]
public int OrderSource { get; set; }
}
}

View File

@ -0,0 +1,263 @@
using Newtonsoft.Json;
using OfficeOpenXml.Attributes;
using SqlSugar;
using System;
namespace ARW.Model.Vo.Business.OrderManage.Orders
{
/// <summary>
/// 订单展示对象
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
public class OrderVo
{
/// <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; }
}
}

View File

@ -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
{
/// <summary>
/// 订单仓储
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
[AppService(ServiceLifetime = LifeTime.Transient)]
public class OrderRepository : BaseRepository<Order>
{
#region
#endregion
}
}

View File

@ -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
{
/// <summary>
/// 订单接口实现类
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
[AppService(ServiceType = typeof(IOrderService), ServiceLifetime = LifeTime.Transient)]
public class OrderServiceImpl : BaseService<Order>, IOrderService
{
private readonly OrderRepository _OrderRepository;
public OrderServiceImpl(OrderRepository OrderRepository)
{
this._OrderRepository = OrderRepository;
}
#region
/// <summary>
/// 查询订单分页列表
/// </summary>
public async Task<PagedInfo<OrderVo>> GetOrderList(OrderQueryDto 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 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);
}
/// <summary>
/// 添加或修改订单
/// </summary>
public async Task<string> AddOrUpdateOrder(Order model)
{
if (model.OrderId != 0)
{
var response = await _OrderRepository.UpdateAsync(model);
return "修改成功!";
}
else
{
var response = await _OrderRepository.InsertReturnSnowflakeIdAsync(model);
return "添加成功!";
}
}
#region Excel处理
/// <summary>
/// Excel数据导出处理
/// </summary>
public async Task<List<OrderVo>> HandleExportData(List<OrderVo> data)
{
return data;
}
#endregion
#endregion
}
}

View File

@ -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
{
/// <summary>
/// 订单接口类
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
public interface IOrderService : IBaseService<Order>
{
/// <summary>
/// 获取订单分页列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<PagedInfo<OrderVo>> GetOrderList(OrderQueryDto parm);
/// <summary>
/// 添加或修改订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<string> AddOrUpdateOrder(Order parm);
/// <summary>
/// Excel导出
/// </summary>
Task<List<OrderVo>> HandleExportData(List<OrderVo> data);
}
}

View File

@ -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
{
/// <summary>
/// 订单控制器
///
/// @author lwh
/// @date 2023-08-29
/// </summary>
[Verify]
[Route("business/[controller]")]
public class OrderController : BaseController
{
private readonly IOrderService _OrderService;
/// <summary>
/// 依赖注入
/// </summary>
/// <param name="OrderService">订单服务</param>
public OrderController(IOrderService OrderService)
{
_OrderService = OrderService;
}
/// <summary>
/// 获取订单列表
/// </summary>
/// <param name="parm">查询参数</param>
/// <returns></returns>
[HttpGet("getOrderList")]
[ActionPermissionFilter(Permission = "business:order:list")]
public async Task<IActionResult> GetOrderList([FromQuery] OrderQueryDto parm)
{
var res = await _OrderService.GetOrderList(parm);
return SUCCESS(res);
}
/// <summary>
/// 添加或修改订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("addOrUpdateOrder")]
[ActionPermissionFilter(Permission = "business:order:addOrUpdate")]
[Log(Title = "添加或修改订单", BusinessType = BusinessType.ADDORUPDATE)]
public async Task<IActionResult> AddOrUpdateOrder([FromBody] OrderDto parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var modal = new Order();
if (parm.OrderId != 0) modal = parm.Adapt<Order>().ToUpdate(HttpContext);
else modal = parm.Adapt<Order>().ToCreate(HttpContext);
var res = await _OrderService.AddOrUpdateOrder(modal);
return SUCCESS(res);
}
/// <summary>
/// 删除订单
/// </summary>
/// <returns></returns>
[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("删除成功!");
}
/// <summary>
/// 导出订单
/// </summary>
/// <returns></returns>
[Log(Title = "订单导出", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[HttpGet("exportOrder")]
[ActionPermissionFilter(Permission = "business:order:export")]
public async Task<IActionResult> 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<OrderVo>();
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 });
}
}
}