268 lines
9.7 KiB
C#
Raw Normal View History

2025-10-21 13:38:23 +08:00
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MiniExcelLibs;
using RIZO.Common;
using RIZO.Mall.Model;
using RIZO.Mall.Model.Dto;
using RIZO.Mall.Service.IService;
//创建时间2025-05-30
namespace RIZO.Mall.Controllers
{
/// <summary>
/// 订单管理
/// </summary>
[Route("shopping/Order")]
[ApiExplorerSettings(GroupName = "shopping")]
public class OrderController : BaseController
{
private NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
/// <summary>
/// 订单管理接口
/// </summary>
private readonly IOMSOrderService _OMSOrderService;
public OrderController(IOMSOrderService OMSOrderService)
{
_OMSOrderService = OMSOrderService;
}
/// <summary>
/// 查询订单管理列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "oms:order:list")]
public IActionResult QueryOMSOrder([FromQuery] OMSOrderQueryDto parm)
{
var response = _OMSOrderService.GetList(parm);
response.Extra.Add("NotDelivereOrder", _OMSOrderService.NotDelivereOrder());
return SUCCESS(response);
}
/// <summary>
/// 查询订单管理详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "oms:order:query")]
public IActionResult GetOMSOrder(long Id)
{
var response = _OMSOrderService.GetInfo(Id);
var info = response.Adapt<OMSOrderDto>();
return SUCCESS(info);
}
/// <summary>
/// 更新订单管理
/// </summary>
/// <returns></returns>
[HttpPut]
[Log(Title = "订单管理", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateOMSOrder([FromBody] OMSOrderDto parm)
{
var modal = parm.Adapt<OMSOrder>().ToUpdate(HttpContext);
var response = _OMSOrderService.UpdateOMSOrder(parm.OperType, modal);
return ToResponse(response);
}
/// <summary>
/// 删除订单管理
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "oms:order:delete")]
[Log(Title = "订单管理", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteOMSOrder([FromRoute] string ids)
{
var idArr = Tools.SplitAndConvert<long>(ids);
return ToResponse(_OMSOrderService.Deleteable()
.Where(f => f.IsDelete == 0)
.In(idArr)
.IsLogic()
.ExecuteCommand());
}
/// <summary>
/// 订单退款
/// </summary>
/// <returns></returns>
[HttpPost("refund")]
[Log(Title = "订单退款", BusinessType = BusinessType.UPDATE)]
public IActionResult RefundOrder([FromBody] OMSOrderDto parm)
{
var modal = parm.Adapt<OMSOrder>().ToUpdate(HttpContext);
var response = _OMSOrderService.UpdateOMSOrder(4, modal);
return ToResponse(response);
}
/// <summary>
/// 导出订单管理
/// </summary>
/// <returns></returns>
[Log(Title = "订单管理", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[HttpGet("export")]
[ActionPermissionFilter(Permission = "oms:order:export")]
public IActionResult Export([FromQuery] OMSOrderQueryDto parm)
{
var list = _OMSOrderService.ExportList(parm).Result;
if (list == null || list.Count <= 0)
{
return ToResponse(ResultCode.FAIL, "没有要导出的数据");
}
var result = ExportExcelMini(list, "订单管理", "订单管理");
return ExportExcel(result.Item2, result.Item1);
}
/// <summary>
/// 订单发货
/// </summary>
/// <returns></returns>
[HttpPut("delivery")]
[Log(Title = "订单发货", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> Delivery([FromBody] OMSOrderDto parm)
{
var orderInfo = await _OMSOrderService.GetByIdAsync(parm.Id);
if (orderInfo == null)
{
return ToResponse(ResultCode.FAIL, "订单不存在");
}
orderInfo.DeliveryCompany = parm.DeliveryCompany;
orderInfo.DeliveryNo = parm.DeliveryNo;
var response = await _OMSOrderService.OrderDelivery(orderInfo);
if (response > 0)
{
return ToResponse(ResultCode.SUCCESS, "发货成功");
}
return ToResponse(ResultCode.CUSTOM_ERROR, $"发货失败{response}");
}
/// <summary>
/// 导出待发货订单
/// </summary>
/// <returns></returns>
[Log(Title = "导出待发货订单", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[HttpGet("exportDelivery")]
[ActionPermissionFilter(Permission = "oms:order:ship")]
public async Task<IActionResult> ExportExpress([FromQuery] OMSOrderQueryDto parm)
{
if (parm == null || parm.BeginCreateTime == null)
{
return ToResponse(ResultCode.CUSTOM_ERROR, "请选择时间");
}
var list = await _OMSOrderService.ExportWaitDeliveryList(parm);
var result = await ExportExcelMiniAsync(list, "待发货", "待发货订单");
return ExportExcel(result.Item2, result.Item1);
}
/// <summary>
/// 批量发货
/// </summary>
/// <param name="formFile"></param>
/// <returns></returns>
Squashed commit of the following: commit ac4c7383285b88b2f326f6979f735496fa25d0b4 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 19:32:04 2025 +0800 修改 commit be79fbda5de0846209dcab9d80300a920d470656 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 19:23:50 2025 +0800 质量设定模糊查询 commit cd3b6582ad627b9f0bf82896b65e0a25971ecb97 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 18:57:53 2025 +0800 质量设定 commit a2823cec8987b4f5c51029bf1456802df15e7d0d Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 16:28:05 2025 +0800 导出 commit 5a7bf882d0b65746e1041f252968b3c0ce91b8b2 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 15:43:30 2025 +0800 导出 commit 2793eda822247b8480737cdb30b82a2dbb1a8881 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 14:44:46 2025 +0800 条件查询 commit a5c8cb23b0058ca510c7b66fbf7e7be3f696c9eb Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 14:16:23 2025 +0800 查询工序详情 commit f1a8053c2fb65d37e41a9a16a10ee75aff99c00e Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:51:48 2025 +0800 导入 commit 4867fe688058817e14fc46bb88b8c6b20688dd19 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:29:08 2025 +0800 删除修改 commit 82e5eef5f6aa12679810985890528fa6a6004584 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:27:18 2025 +0800 批量删除修改 commit 58e8c088fd01b97a54c62f4027673cab446c8a11 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:40:02 2025 +0800 修改 commit 61781194bd1310bc5187a0769ace449f7974bd35 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:37:11 2025 +0800 存用户名称 commit 952a52d30241ec49f2a354138e5397ae92aaea03 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:00:23 2025 +0800 工艺路线导入 commit d4f43ccb892be7efa7531eb7e712fb71185c12ad Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 08:48:53 2025 +0800 工艺路线 commit c7e4c77e4d61609b7eac06a47b42d37023341527 Author: quowingwang <guoqingwang.ruizhiao> Date: Fri Nov 7 09:24:24 2025 +0800 工艺管理
2025-11-11 08:35:41 +08:00
//[HttpPost("importData")]
//[Log(Title = "批量发货", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
//[ActionPermissionFilter(Permission = "oms:order:ship")]
//public async Task<IActionResult> ImportData([FromForm(Name = "file")] IFormFile formFile)
//{
// if (formFile == null || formFile.Length <= 0)
// {
// return ToResponse(ResultCode.FAIL, "请选择要导入的文件");
// }
// var resultList = new List<DeliveryExpressDto>();
// using var stream = formFile.OpenReadStream();
// var rows = await stream.QueryAsync<DeliveryExpressDto>(startCell: "A1");
// var orderNos = rows.Select(x => x.OrderNo).Distinct().ToList();
// var allOrders = await _OMSOrderService.Queryable().In(x => x.OrderNo, orderNos).ToListAsync();
// foreach (var item in rows)
// {
// if (string.IsNullOrWhiteSpace(item.DeliveryCompany) || string.IsNullOrWhiteSpace(item.DeliveryNo))
// {
// item.Status = "缺少快递信息";
// resultList.Add(item);
// continue;
// }
// var orderInfo = allOrders.FirstOrDefault(f => f.OrderNo == item.OrderNo);
// if (orderInfo == null)
// {
// item.Status = "订单号不存在";
// resultList.Add(item);
// continue;
// }
// if (orderInfo.DeliveryStatus != Enum.DeliveryStatusEnum.NotDelivered)
// {
// item.Status = "已发货";
// resultList.Add(item);
// continue;
// }
// if (orderInfo.AddressSnapshot == null)
// {
// item.Status = "缺少收货信息";
// resultList.Add(item);
// continue;
// }
// var order = item.Adapt<OMSOrder>();
2025-10-21 13:38:23 +08:00
Squashed commit of the following: commit ac4c7383285b88b2f326f6979f735496fa25d0b4 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 19:32:04 2025 +0800 修改 commit be79fbda5de0846209dcab9d80300a920d470656 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 19:23:50 2025 +0800 质量设定模糊查询 commit cd3b6582ad627b9f0bf82896b65e0a25971ecb97 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 18:57:53 2025 +0800 质量设定 commit a2823cec8987b4f5c51029bf1456802df15e7d0d Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 16:28:05 2025 +0800 导出 commit 5a7bf882d0b65746e1041f252968b3c0ce91b8b2 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 15:43:30 2025 +0800 导出 commit 2793eda822247b8480737cdb30b82a2dbb1a8881 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 14:44:46 2025 +0800 条件查询 commit a5c8cb23b0058ca510c7b66fbf7e7be3f696c9eb Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 14:16:23 2025 +0800 查询工序详情 commit f1a8053c2fb65d37e41a9a16a10ee75aff99c00e Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:51:48 2025 +0800 导入 commit 4867fe688058817e14fc46bb88b8c6b20688dd19 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:29:08 2025 +0800 删除修改 commit 82e5eef5f6aa12679810985890528fa6a6004584 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 11:27:18 2025 +0800 批量删除修改 commit 58e8c088fd01b97a54c62f4027673cab446c8a11 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:40:02 2025 +0800 修改 commit 61781194bd1310bc5187a0769ace449f7974bd35 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:37:11 2025 +0800 存用户名称 commit 952a52d30241ec49f2a354138e5397ae92aaea03 Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 10:00:23 2025 +0800 工艺路线导入 commit d4f43ccb892be7efa7531eb7e712fb71185c12ad Author: quowingwang <guoqingwang.ruizhiao> Date: Mon Nov 10 08:48:53 2025 +0800 工艺路线 commit c7e4c77e4d61609b7eac06a47b42d37023341527 Author: quowingwang <guoqingwang.ruizhiao> Date: Fri Nov 7 09:24:24 2025 +0800 工艺管理
2025-11-11 08:35:41 +08:00
// var result = await _OMSOrderService.OrderDelivery(order);
// item.Status = result > 0 ? "发货成功" : "发货失败";
// resultList.Add(item);
// }
// return SUCCESS(new
// {
// total = resultList.Count,
// successCount = resultList.Count(x => x.Status == "发货成功"),
// failCount = resultList.Count(x => x.Status != "发货成功"),
// result = resultList
// });
//}
2025-10-21 13:38:23 +08:00
/// <summary>
/// 查询销售总
/// </summary>
/// <returns></returns>
[HttpGet("getSales")]
[ActionPermissionFilter(Permission = "oms:sale:query")]
public async Task<IActionResult> GetSales(OMSOrderQueryDto dto)
{
var response = await _OMSOrderService.GetTotalSales(dto);
return SUCCESS(response);
}
/// <summary>
/// 查询销售趋势
/// </summary>
/// <returns></returns>
[HttpGet("getSalesTrade")]
[ActionPermissionFilter(Permission = "oms:sale:query")]
public async Task<IActionResult> GetSalesTrade(OMSOrderQueryDto dto)
{
var response = await _OMSOrderService.GetSaleTreandByDay(dto);
return SUCCESS(response);
}
/// <summary>
/// 查询销售前10的商品
/// </summary>
/// <returns></returns>
[HttpGet("getSaleTopProduct")]
[ActionPermissionFilter(Permission = "oms:sale:query")]
public async Task<IActionResult> GetSaleTopProduct(OMSOrderQueryDto dto)
{
var response = await _OMSOrderService.GetSaleTopProduct(dto);
return SUCCESS(response);
}
}
}