package com.mzl.flower.web.payment; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.payment.OrderDeliveryNoDTO; import com.mzl.flower.dto.request.payment.OrderQueryDTO; import com.mzl.flower.dto.request.payment.OrderReduceDTO; import com.mzl.flower.dto.response.payment.*; import com.mzl.flower.service.payment.DeliveryOrderService; import com.mzl.flower.service.payment.OrderService; import com.mzl.flower.service.payment.UserPaymentV3Service; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/order") @Api(value = "订单管理-运营人员", tags = "订单管理-运营人员") @Validated @Slf4j public class OrderController extends BaseController { @Autowired private OrderService orderService; @Autowired private UserPaymentV3Service paymentV3Service; @Autowired private DeliveryOrderService deliveryOrderService; @GetMapping("/status/count") @ApiOperation(value = "获取订单状态数量") public ResponseEntity>> getOrderStatusCount(OrderQueryDTO dto){ return returnData(R.SUCCESS.getCode(), orderService.getOrderStatusCount(dto)); } @GetMapping("/list") @ApiOperation(value = "查询订单列表") public ResponseEntity>> selectOrderList(Page page, OrderQueryDTO dto){ return returnData(R.SUCCESS.getCode(), orderService.selectOrderPlatformList(page, dto)); } @GetMapping("/list/view") @ApiOperation(value = "订单详情") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getOrderInfo(String id){ return returnData(R.SUCCESS.getCode(), orderService.getOrderInfo(id)); } @GetMapping("/item/list") @ApiOperation(value = "订单商品明细") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity>> getPlatformOrderItems(String id){ return returnData(R.SUCCESS.getCode(), orderService.getPlatformOrderItems(id)); } @PostMapping("/list/send") @ApiOperation(value = "没有合伙人的花店上传快递号发货") public ResponseEntity saveDeliveryNo(@RequestBody OrderDeliveryNoDTO dto) { orderService.saveDeliveryNo(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/abnormal/details") @ApiOperation(value = "异常订单明细") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getAbnormalOrderDetails(String id){ return returnData(R.SUCCESS.getCode(), orderService.getAbnormalOrderDetails(id)); } @GetMapping("/list/abnormal/process") @ApiOperation(value = "异常订单处理(不管有没有退款金额,建议都要处理)") public ResponseEntity processLevelDown(String id) { orderService.processAbnormalOrder(id); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/check/info/reduce") @ApiOperation(value = "降级操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getReduceCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getReduceCheck(orderItemId)); } @GetMapping("/list/check/info/replace") @ApiOperation(value = "补货操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getReplaceCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId , Constants.CHECK_TYPE.replace.name())); } @GetMapping("/list/check/info/lack") @ApiOperation(value = "缺货操作详情") @ApiImplicitParams({ @ApiImplicitParam(name = "orderItemId", value = "订单商品id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> getLackCheck(String orderItemId){ return returnData(R.SUCCESS.getCode(), deliveryOrderService.getOtherCheck(orderItemId , Constants.CHECK_TYPE.lack.name())); } @GetMapping("/list/check/info/agree") @ApiOperation(value = "审核通过") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "质检操作id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> agreeCheck(String id){ String orderItemId = deliveryOrderService.setCheckAuditStatus(id, Constants.CHECK_AUDIT_STATUS.AGREED.name()); deliveryOrderService.doAfterCheckAudit(orderItemId); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/check/info/reject") @ApiOperation(value = "审核不通过") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "质检操作id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity> rejectCheck(String id){ String orderItemId = deliveryOrderService.setCheckAuditStatus(id, Constants.CHECK_AUDIT_STATUS.REJECTED.name()); deliveryOrderService.doAfterCheckAudit(orderItemId); return returnData(R.SUCCESS.getCode(), null); } /*@PostMapping("/list/level/process") @ApiOperation(value = "处理降级商品订单打款") public ResponseEntity processLevelDown(@RequestBody OrderReduceDTO dto) { orderService.processLevelDown(dto); return returnData(R.SUCCESS.getCode(), null); }*/ @GetMapping("/check/list") @ApiOperation(value = "查询订单清单列表") public ResponseEntity>> selectOrderCheckList(OrderQueryDTO dto){ return returnData(R.SUCCESS.getCode(), orderService.selectOrderCheckList(dto)); } @PostMapping("/check/list") @ApiOperation(value = "查询订单清单列表") public ResponseEntity>> postOrderCheckList(@RequestBody OrderQueryDTO dto){ return returnData(R.SUCCESS.getCode(), orderService.selectOrderCheckList(dto)); } @GetMapping(value = "/refund") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query"), }) @ApiOperation(value = "退款") public ResponseEntity refundOrder(String id) { orderService.refundCheckAdmin(id); paymentV3Service.refundOrder(id); return returnData(R.SUCCESS.getCode(), null); } }