package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.service.IApiMallOrderInfoService; import cc.mrbird.febs.mall.vo.OrderDetailVo; import cc.mrbird.febs.mall.vo.OrderListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author wzy * @date 2021-09-18 **/ @Slf4j @Validated @RestController @RequiredArgsConstructor @RequestMapping(value = "/api/order") @Api(value = "ApiMallOrderController", tags = "订单接口类") public class ApiMallOrderController { private final IApiMallOrderInfoService mallOrderInfoService; @ApiOperation(value = "创建订单", notes = "创建订单") @PostMapping(value = "/createOrder") public FebsResponse createOrder(@RequestBody AddOrderDto addOrderDto) { Long orderId = mallOrderInfoService.createOrder(addOrderDto); return new FebsResponse().success().data(orderId).message("创建订单成功"); } @ApiOperation(value = "取消订单", notes = "取消订单") @PostMapping(value = "/cancelOrder/{id}") public FebsResponse cancelOrder(@PathVariable("id") Long id) { mallOrderInfoService.cancelOrder(id); return new FebsResponse().success(); } @ApiOperation(value = "支付订单", notes = "支付订单") @PostMapping(value = "/payOrder") public FebsResponse payOrder(@RequestBody PayOrderDto payOrderDto) { String result = mallOrderInfoService.payOrder(payOrderDto); Map map = new HashMap<>(); map.put("orderNo", result); map.put("type", payOrderDto.getType()); return new FebsResponse().success().data(map).message("支付成功"); } @ApiOperation(value = "订单列表", notes = "订单列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = OrderListVo.class) }) @PostMapping(value = "/orderList") public FebsResponse orderList(@RequestBody OrderListDto orderListDto) { return new FebsResponse().success().data(mallOrderInfoService.findOrderList(orderListDto)); } @ApiOperation(value = "订单详情", notes = "订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = OrderDetailVo.class) }) @GetMapping(value = "/orderDetails/{id}") public FebsResponse orderDetails(@PathVariable("id") Long id) { return new FebsResponse().success().data(mallOrderInfoService.findOrderDetailsById(id)); } @ApiOperation(value = "确认收货", notes = "确认收货") @PostMapping(value = "/confirm/{id}") public FebsResponse confirm(@PathVariable("id") Long id) { mallOrderInfoService.confirmOrder(id); return new FebsResponse().success().message("确认成功"); } @ApiOperation(value = "删除订单", notes = "删除订单") @PostMapping(value = "/delOrder/{id}") public FebsResponse delOrder(@PathVariable("id") Long id) { mallOrderInfoService.delOrder(id); return new FebsResponse().success().message("删除成功"); } @ApiOperation(value = "提交退款申请", notes = "提交退款申请") @PostMapping(value = "/applyRefund") public FebsResponse applyRefund(@RequestBody AddRefundDto addRefundDto) { mallOrderInfoService.applyRefund(addRefundDto); return new FebsResponse().success().message("提交成功"); } @ApiOperation(value = "提交退款物流信息", notes = "提交退款物流信息") @PostMapping(value = "/refundExpress") public FebsResponse refundExpress(@RequestBody RefundExpressDto refundExpressDto) { mallOrderInfoService.refundExpress(refundExpressDto); return new FebsResponse().success().message("提交成功"); } }