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("删除成功!"); } } }