emoticon_api/ARW.WebApi/Controllers/Api/OrderManage/Orders/OrderApiController.cs
2023-10-25 16:07:57 +08:00

193 lines
6.1 KiB
C#

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;
using ARW.Model.Dto.Api.Carts;
using ARW.Service.Api.IBusinessService.Carts;
using ARW.Model.Models.Business.GoodsManager.GoodsComments;
using ARW.Admin.WebApi.Framework;
using ARW.Service.Business.IBusinessService.ShopManager.Shops;
using ARW.Model.Vo.Api.GoodsManager.Goodss;
using ARW.Service.Business.IBusinessService.OrderManage.Orders;
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 user = JwtUtil.GetLoginUser(App.HttpContext);
parm.CustomerGuid = user.UserId;
var res = await _OrderServiceApi.GetOrderListApi(parm);
return SUCCESS(res);
}
/// <summary>
/// 获取售后订单商品列表(Api)
/// </summary>
/// <param name="parm">查询参数</param>
/// <returns></returns>
[HttpGet("getOrderRefundGoods")]
public async Task<IActionResult> GetOrderRefundGoods([FromQuery] OrderDtoApi parm)
{
var res = await _OrderServiceApi.GetOrderRefundGoodsList(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 != "[]")
{
var data = res.FromJSON<OrderApiDetailsVo>();
return SUCCESS(data);
}
else
{
return SUCCESS(res);
}
}
/// <summary>
/// 待付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("waitPayCancelOrder")]
[Log(Title = "待付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> WaitPayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.WaitPayCancelOrder(parm);
return SUCCESS(res);
}
/// <summary>
/// 已付款取消订单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("payCancelOrder")]
[Log(Title = "已付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> PayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.PayCancelOrder(parm);
return SUCCESS(res);
}
/// <summary>
/// 确认收货
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("confirmReceipt")]
[Log(Title = "确认收货", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> ConfirmReceipt([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.ConfirmReceipt(parm);
return SUCCESS(res);
}
/// <summary>
/// 评价
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("addComment")]
[Log(Title = "评价", BusinessType = BusinessType.UPDATE)]
public async Task<IActionResult> AddComment([FromBody] AddCommentDto parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var user = JwtUtil.GetLoginUser(App.HttpContext);
parm.CustomerGuid = user.UserId;
var modal = parm.Adapt<GoodsComment>().ToCreate(HttpContext);
var res = await _OrderServiceApi.AddComment(modal);
return SUCCESS(res);
}
/// <summary>
/// 删除订单
/// </summary>
/// <returns></returns>
[HttpDelete("{ids}")]
[ActionPermissionFilter(Permission = "business:order:delete")]
[Log(Title = "订单删除", BusinessType = BusinessType.DELETE)]
public async Task<IActionResult> Delete(string ids)
{
int[] idsArr = Tools.SpitIntArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _OrderServiceApi.Delete(idsArr);
return SUCCESS("删除成功!");
}
}
}