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
{
///
/// 订单控制器Api
///
/// @author lwh
/// @date 2023-09-01
///
[Verify]
[Route("api/[controller]")]
public class OrderApiController : BaseController
{
private readonly IOrderServiceApi _OrderServiceApi;
///
/// 依赖注入
///
/// 订单订单Api服务
public OrderApiController(IOrderServiceApi OrderServiceApi)
{
_OrderServiceApi = OrderServiceApi;
}
///
/// 获取订单列表(Api)
///
/// 查询参数
///
[HttpGet("getOrderList")]
public async Task GetOrderListApi([FromQuery] OrderQueryDtoApi parm)
{
var user = JwtUtil.GetLoginUser(App.HttpContext);
parm.CustomerGuid = user.UserId;
var res = await _OrderServiceApi.GetOrderListApi(parm);
return SUCCESS(res);
}
///
/// 获取售后订单商品列表(Api)
///
/// 查询参数
///
[HttpGet("getOrderRefundGoods")]
public async Task GetOrderRefundGoods([FromQuery] OrderDtoApi parm)
{
var res = await _OrderServiceApi.GetOrderRefundGoodsList(parm);
return SUCCESS(res);
}
///
/// 获取Order详情(Api)
///
/// 查询参数
///
[HttpGet("getOrderDetails")]
public async Task GetOrderDetails([FromQuery] OrderDtoApi parm)
{
if (parm == null) throw new CustomException("参数错误!");
var res = await _OrderServiceApi.GetOrderDetails(parm);
if (res != "[]")
{
var data = res.FromJSON();
return SUCCESS(data);
}
else
{
return SUCCESS(res);
}
}
///
/// 待付款取消订单
///
///
///
[HttpPost("waitPayCancelOrder")]
[Log(Title = "待付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task WaitPayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.WaitPayCancelOrder(parm);
return SUCCESS(res);
}
///
/// 已付款取消订单
///
///
///
[HttpPost("payCancelOrder")]
[Log(Title = "已付款取消订单", BusinessType = BusinessType.UPDATE)]
public async Task PayCancelOrder([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.PayCancelOrder(parm);
return SUCCESS(res);
}
///
/// 确认收货
///
///
///
[HttpPost("confirmReceipt")]
[Log(Title = "确认收货", BusinessType = BusinessType.UPDATE)]
public async Task ConfirmReceipt([FromBody] OrderDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var res = await _OrderServiceApi.ConfirmReceipt(parm);
return SUCCESS(res);
}
///
/// 评价
///
///
///
[HttpPost("addComment")]
[Log(Title = "评价", BusinessType = BusinessType.UPDATE)]
public async Task AddComment([FromBody] AddCommentDto parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var user = JwtUtil.GetLoginUser(App.HttpContext);
parm.CustomerGuid = user.UserId;
var modal = parm.Adapt().ToCreate(HttpContext);
var res = await _OrderServiceApi.AddComment(modal);
return SUCCESS(res);
}
///
/// 删除订单
///
///
[HttpDelete("{ids}")]
[ActionPermissionFilter(Permission = "business:order:delete")]
[Log(Title = "订单删除", BusinessType = BusinessType.DELETE)]
public async Task Delete(string ids)
{
int[] idsArr = Tools.SpitIntArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _OrderServiceApi.Delete(idsArr);
return SUCCESS("删除成功!");
}
}
}