package com.ruoyi.order.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.order.controller.management.dto.MgtOrderConfirmShipmentDTO;
import com.ruoyi.order.controller.management.dto.MgtOrderQuery;
import com.ruoyi.order.controller.management.vo.MgtOrderVO;
import com.ruoyi.order.service.IOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* 订单表 前端控制器
*
*
* @author mitao
* @since 2024-05-16
*/
@Slf4j
@RestController
@RequestMapping("/mgt/order")
@RequiredArgsConstructor
@Api(tags = "管理后台-订单管理相关接口", value = "管理后台-订单管理相关接口")
public class MgtOrderController {
private final IOrderService orderService;
/**
* 商城订单分页列表
*
* @param query 商城订单查询对象
* @return PageDTO
*/
@ApiOperation("订单分页列表")
@PostMapping("/page")
public R> getOrderPage(
@Validated @RequestBody MgtOrderQuery query) {
return R.ok(orderService.getOrderPage(query));
}
/**
* 获取商城订单详情
*
* @param id 订单id
* @return MgtMallOrderVO
*/
@ApiOperation("查看详情")
@GetMapping("/detail/{id}")
public R getMallOrderDetail(
@ApiParam(name = "id", value = "订单id", required = true)
@Validated @PathVariable("id") Long id) {
return R.ok(orderService.getOrderDetail(id));
}
/**
* 确认发货
*
* @param dto 确认发货请求对象
*/
@ApiOperation("确认发货")
@PutMapping("/confirm-shipment")
public R> confirmShipmentOrder(@Validated @RequestBody MgtOrderConfirmShipmentDTO dto) {
orderService.confirmShipmentOrder(dto);
return R.ok();
}
/**
* 已收货
*
* @param id 订单id
*/
@ApiOperation("已收货")
@PutMapping("/received-goods/{id}")
public R> receivedGoods(
@ApiParam(name = "id", value = "订单id", required = true) @PathVariable("id") Long id) {
orderService.receivedGoods(id);
return R.ok();
}
/**
* 退款
*
* @param id 订单id
*/
@ApiOperation("退款")
@GetMapping("/refund/{id}")
public R> refund(
@ApiParam(name = "id", value = "订单id", required = true) @PathVariable("id") Long id) {
orderService.refund(id);
return R.ok();
}
/**
* 退款退货
*
* @param id 订单id
*/
@ApiOperation("退款退货")
@GetMapping("/refund-return/{id}")
public R> refundReturn(
@ApiParam(name = "id", value = "订单id", required = true) @PathVariable("id") Long id) {
orderService.refundReturn(id);
return R.ok();
}
/**
* 拍卖订单退保证金
*
* @param id 订单id
*/
@ApiOperation("拍卖订单退保证金")
@PutMapping("/refund-bond/{id}")
public R> refundBond(
@ApiParam(name = "id", value = "订单id", required = true) @PathVariable("id") Long id) {
orderService.refundBond(id);
return R.ok();
}
}