From ebd00f134ea7da94ef943bf35c20b4f244f28a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=97=AD?= <2795210596@qq.com> Date: Sat, 19 Apr 2025 15:00:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=90=83=E6=9D=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delivery/feign/DeliveryFeignClient.java | 18 +++- .../user/feign/UserBalanceLogFeignClient.java | 22 ++++- .../common/local/constant/CueOrderStatus.java | 18 ++-- .../common/local/dto/CurOderReturnsDTO.java | 34 ++++++++ .../controller/admin/CueOrderController.java | 16 ++++ .../controller/app/CueOrderController.java | 33 ++++--- .../manager/CreateOrderManager.java | 87 ++++++++++++++----- .../cloud/cuerecycle/model/CueOrder.java | 4 + .../model/dto/CueAgreeOrderDTO.java | 34 ++++++++ ...efuseOrderDTO.java => CueFillAddrDTO.java} | 9 +- .../cuerecycle/model/dto/CueRetractedDTO.java | 35 ++++++++ .../cloud/cuerecycle/model/vo/CueOrderVO.java | 5 ++ .../service/impl/CueOrderServiceImpl.java | 4 +- .../main/resources/mapper/CueOrderMapper.xml | 5 +- .../feign/DeliveryFeignController.java | 36 ++++---- .../cloud/user/constant/RechargeTypeEnum.java | 7 +- .../feign/UserBalanceLogFeignController.java | 30 +++++-- 17 files changed, 323 insertions(+), 74 deletions(-) create mode 100644 tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/dto/CurOderReturnsDTO.java create mode 100644 tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueAgreeOrderDTO.java rename tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/{CueRefuseOrderDTO.java => CueFillAddrDTO.java} (61%) create mode 100644 tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRetractedDTO.java diff --git a/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/delivery/feign/DeliveryFeignClient.java b/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/delivery/feign/DeliveryFeignClient.java index 1a61a05..b565315 100644 --- a/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/delivery/feign/DeliveryFeignClient.java +++ b/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/delivery/feign/DeliveryFeignClient.java @@ -1,8 +1,8 @@ - package com.tmerclub.cloud.api.delivery.feign; import com.tmerclub.cloud.api.delivery.dto.CalculateAndGetDeliverInfoDTO; import com.tmerclub.cloud.api.delivery.vo.ShopTransportVO; +import com.tmerclub.cloud.common.local.dto.CurOderReturnsDTO; import com.tmerclub.cloud.common.order.vo.TransportVO; import com.tmerclub.cloud.common.order.vo.UserDeliveryInfoVO; import com.tmerclub.cloud.common.response.ServerResponseEntity; @@ -17,6 +17,7 @@ public interface DeliveryFeignClient { /** * 计算运费,并计算获取配送信息 + * * @param param 用户地址和订单信息 * @return void */ @@ -24,6 +25,7 @@ public interface DeliveryFeignClient { /** * 获取店铺运费模板列表 + * * @param shopId 店铺id * @return 运费模板列表 */ @@ -31,6 +33,7 @@ public interface DeliveryFeignClient { /** * 根据id列表获取运费模板 + * * @param transportIds * @return */ @@ -38,6 +41,7 @@ public interface DeliveryFeignClient { /** * 判断用户地址是否包含在配送范围内 + * * @param deliveryTemplateId * @param userId * @param addrId @@ -47,8 +51,9 @@ public interface DeliveryFeignClient { /** * 检查配送范围 + * * @param deliveryTemplateId 运费模板id - * @param addrId 用户地址id + * @param addrId 用户地址id * @return */ ServerResponseEntity checkDeliveryRange(Long deliveryTemplateId, @@ -57,10 +62,17 @@ public interface DeliveryFeignClient { /** * 获取商品物流模板 + * * @param deliveryTemplateId * @return */ TransportVO getTransportAndAllItemsById(Long deliveryTemplateId); - void curOderReturns(); + /** + * 球杆订单退货 + * + * @param curOderReturnsDTO 订单信息 + * @return 结果 + */ + ServerResponseEntity curOderReturns(CurOderReturnsDTO curOderReturnsDTO); } diff --git a/tmerclub-api/tmerclub-api-user/src/main/java/com/tmerclub/cloud/api/user/feign/UserBalanceLogFeignClient.java b/tmerclub-api/tmerclub-api-user/src/main/java/com/tmerclub/cloud/api/user/feign/UserBalanceLogFeignClient.java index 1f3ca6c..0b20e77 100644 --- a/tmerclub-api/tmerclub-api-user/src/main/java/com/tmerclub/cloud/api/user/feign/UserBalanceLogFeignClient.java +++ b/tmerclub-api/tmerclub-api-user/src/main/java/com/tmerclub/cloud/api/user/feign/UserBalanceLogFeignClient.java @@ -1,4 +1,3 @@ - package com.tmerclub.cloud.api.user.feign; import com.tmerclub.cloud.api.payment.vo.ShopAccountDetailVO; @@ -11,17 +10,20 @@ import com.tmerclub.cloud.api.user.vo.UserPayInfoVO; import com.tmerclub.cloud.common.database.vo.PageVO; import com.tmerclub.cloud.common.response.ServerResponseEntity; +import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * 充值信息 + * * @author tmerclub */ public interface UserBalanceLogFeignClient { /** * 获取充值金额 + * * @param balanceLogId 充值记录id * @return */ @@ -29,6 +31,7 @@ public interface UserBalanceLogFeignClient { /** * 获取充值记录是否已经支付 + * * @param balanceLogId 充值记录id * @return */ @@ -37,6 +40,7 @@ public interface UserBalanceLogFeignClient { /** * 余额支付记录 + * * @param balancePayBO 记录信息 * @return */ @@ -44,6 +48,7 @@ public interface UserBalanceLogFeignClient { /** * 余额退款记录 + 执行退款 + * * @param balanceRefundBO 记录信息 * @return */ @@ -51,6 +56,7 @@ public interface UserBalanceLogFeignClient { /** * 分页获取余额充值财务对账信息 + * * @param financeDetailDTO * @return */ @@ -58,6 +64,7 @@ public interface UserBalanceLogFeignClient { /** * 获取余额充值财务对账信息 + * * @param financeDetailDTO * @return */ @@ -65,6 +72,7 @@ public interface UserBalanceLogFeignClient { /** * 获取平台财务信息 + * * @param startTime * @param endTime * @return @@ -74,6 +82,7 @@ public interface UserBalanceLogFeignClient { /** * 获取用户充值,购买会员财务信息 + * * @param startTime * @param endTime * @param financeType @@ -89,6 +98,7 @@ public interface UserBalanceLogFeignClient { /** * 获取用户充值,购买会员财务信息 + * * @param startTime * @param endTime * @param financeType @@ -100,8 +110,18 @@ public interface UserBalanceLogFeignClient { /** * 扣减用户余额,更新余额支付记录为支付成功 + * * @param payId * @return */ ServerResponseEntity updateToOrderPaySuccess(Long payId); + + /** + * 出售球杆更新用户余额 + * + * @param userId 用户id + * @param money 金额(单位分) + * @return 结果 + */ + ServerResponseEntity sellCueUpdateBalance(Long userId, Long money); } diff --git a/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java index e80ae8e..c3693a6 100644 --- a/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java +++ b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java @@ -8,17 +8,19 @@ package com.tmerclub.cloud.common.local.constant; **/ public enum CueOrderStatus { + PENDING_AUDIT(0, "待审核"), AUDIT_PASS(1, "审核通过(待发货)"), AUDIT_FAIL(2, "审核拒绝"), - PENDING_DELIVERY(3, "待发货(已发货)"), - PENDING_RECEIPT(4, "已收货(评估中)"), - RECEIPT_EVALUATION(5, "评估失败(退回)"), - EVALUATION_SUCCESS(6, "评估成功(给出价格)"), - EVALUATION_FAIL(7, "价格不满意(退回)"), - EVALUATION_SUCCESS_AND_PAY(8, "价格满意(结束)"), - EVALUATION_FAIL_AND_BACK(9, "价格不满意(已退回)"), - RECEIPT_EVALUATION_AND_BACK(10, "评估失败(已退回)"); + FINISH_DELIVERY(3, "已发货"), + FINISH_RECEIPT(4, "已收货(评估中)"), + EVALUATION_SUCCESS(5, "评估成功(给出价格)"), + EVALUATION_FAIL(6, "评估失败(退回)"), + EVALUATION_FAIL_FILLED_RETURN_ADDRESS(7, "评估失败用户已填写回邮地址"), + EVALUATION_FAIL_COMPLETED(8, "评估失败(已退回)"), + EVALUATION_SUCCESS_PAY(9, "价格满意(结束)"), + EVALUATION_SUCCESS_PRICE_DISCONTENT(10, "价格不满意(已填写回邮地址)"), + EVALUATION_SUCCESS_COMPLETED(11, "价格不满意(已完成)"); private final Integer num; diff --git a/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/dto/CurOderReturnsDTO.java b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/dto/CurOderReturnsDTO.java new file mode 100644 index 0000000..19753ca --- /dev/null +++ b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/dto/CurOderReturnsDTO.java @@ -0,0 +1,34 @@ +package com.tmerclub.cloud.common.local.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 球杆订单退货物流业务对象 + * + * @author: frank + * @create: 2025-04-18 + **/ +@Data +public class CurOderReturnsDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + /** + * 订单ID + */ + private Long orderId; + /** + * 网点id + */ + private Long outletConfigId; + /** + * 打印机id + */ + private Long printerId; + /** + * 订单地址id + */ + private Long orderAddrId; +} diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/admin/CueOrderController.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/admin/CueOrderController.java index e1fc8a3..65eaf53 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/admin/CueOrderController.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/admin/CueOrderController.java @@ -3,9 +3,11 @@ package com.tmerclub.cloud.cuerecycle.controller.admin; import com.tmerclub.cloud.common.database.dto.PageDTO; import com.tmerclub.cloud.common.database.vo.PageVO; import com.tmerclub.cloud.common.response.ServerResponseEntity; +import com.tmerclub.cloud.cuerecycle.manager.CreateOrderManager; import com.tmerclub.cloud.cuerecycle.mapper.CueOrderFlawMapper; import com.tmerclub.cloud.cuerecycle.model.dto.CueOrderDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueOrderFlawDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueRetractedDTO; import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderFlawVO; import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO; import com.tmerclub.cloud.cuerecycle.service.CueOrderService; @@ -31,6 +33,8 @@ public class CueOrderController { CueOrderService cueOrderService; @Resource CueOrderFlawMapper cueOrderFlawMapper; + @Resource + CreateOrderManager createOrderManager; /** * 分页查询 @@ -91,4 +95,16 @@ public class CueOrderController { } + /** + * 球杆退回 + * + * @param cueRetractedDTO 退回参数 + * @return 结果 + */ + @PutMapping("/cueRetracted") + @Operation(summary = "球杆退回", description = "球杆退回") + public ServerResponseEntity cueRetracted(@Valid @RequestParam CueRetractedDTO cueRetractedDTO) { + createOrderManager.cueRetracted(cueRetractedDTO); + return ServerResponseEntity.success(); + } } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java index 0b91ff7..1540376 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java @@ -3,7 +3,8 @@ package com.tmerclub.cloud.cuerecycle.controller.app; import com.tmerclub.cloud.common.response.ServerResponseEntity; import com.tmerclub.cloud.cuerecycle.manager.CreateOrderManager; import com.tmerclub.cloud.cuerecycle.model.dto.CreateOrderDTO; -import com.tmerclub.cloud.cuerecycle.model.dto.CueRefuseOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueAgreeOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueFillAddrDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueSaveMailingDTO; import com.tmerclub.cloud.cuerecycle.model.vo.AppCueOrderVO; import com.tmerclub.cloud.cuerecycle.service.CueOrderService; @@ -34,9 +35,9 @@ public class CueOrderController { * @param createOrderDTO 创建订单参数 * @return ServerResponseEntity */ - @Operation(summary = "创建订单", description = "创建订单") @PostMapping("/createOrder") - public ServerResponseEntity createOrder(@Valid @RequestBody CreateOrderDTO createOrderDTO) { + @Operation(summary = "创建订单", description = "创建订单") + public ServerResponseEntity createOrder(@Valid @RequestBody CreateOrderDTO createOrderDTO) { // 防止重复提交 TODO:不清楚为啥不好使 // boolean cad = RedisUtil.cad(OrderCacheNames.ORDER_CONFIRM_UUID_KEY + CacheNames.UNION + createOrderDTO.getUserId(), String.valueOf(createOrderDTO.getUserId())); // if (!cad) { @@ -48,7 +49,7 @@ public class CueOrderController { Long flawPrice = createOrderManager.addFlawItem(orderId, createOrderDTO); // 向商城order插入信息 createOrderManager.saveOrderToMall(orderId, createOrderDTO.getProductPrice() - flawPrice, createOrderDTO); - return ServerResponseEntity.success(); + return ServerResponseEntity.success(orderId); } /** @@ -71,28 +72,36 @@ public class CueOrderController { * @return 结果 */ @PostMapping("/saveMailing") + @Operation(summary = "邮寄填写订单", description = "邮寄填写订单") public ServerResponseEntity saveMailing(@Valid @RequestBody CueSaveMailingDTO cueSaveMailingDTO) { int update = cueOrderService.saveMailing(cueSaveMailingDTO); return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("提交失败"); } - // 同意回收 + /** + * 同意回收 + * + * @param cueAgreeOrderDTO 同意回收参数 + * @return 结果 + */ @PostMapping("/agreeOrder") - public ServerResponseEntity agreeOrder(@RequestBody CreateOrderDTO createOrderDTO) { - createOrderManager.agreeOrder(createOrderDTO); + @Operation(summary = "同意回收", description = "同意回收") + public ServerResponseEntity agreeOrder(@Valid @RequestBody CueAgreeOrderDTO cueAgreeOrderDTO) { + createOrderManager.agreeOrder(cueAgreeOrderDTO); return ServerResponseEntity.success(); } /** - * 拒绝回收 + * 填写不合格或不满意回邮地址 * - * @param cueRefuseOrderDTO 拒绝订单入参 + * @param cueFillAddrDTO 回邮地址入参 * @return 结果 */ - @PostMapping("/refuseOrder") - public ServerResponseEntity refuseOrder(@RequestBody CueRefuseOrderDTO cueRefuseOrderDTO) { - createOrderManager.refuseOrder(cueRefuseOrderDTO); + @PostMapping("/fillAddr") + @Operation(summary = "填写回邮地址", description = "填写回邮地址") + public ServerResponseEntity fillAddr(@Valid @RequestBody CueFillAddrDTO cueFillAddrDTO) { + createOrderManager.fillAddr(cueFillAddrDTO); return ServerResponseEntity.success(); } } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java index 8a292f6..f22b14a 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java @@ -8,8 +8,10 @@ import com.tmerclub.cloud.api.delivery.feign.DeliveryFeignClient; import com.tmerclub.cloud.api.order.feign.OrderAddrFeignClient; import com.tmerclub.cloud.api.order.feign.OrderFeignClient; import com.tmerclub.cloud.api.user.feign.UserAddrFeignClient; +import com.tmerclub.cloud.api.user.feign.UserBalanceLogFeignClient; import com.tmerclub.cloud.common.exception.LuckException; import com.tmerclub.cloud.common.local.constant.CueOrderStatus; +import com.tmerclub.cloud.common.local.dto.CurOderReturnsDTO; import com.tmerclub.cloud.common.local.dto.SaveOrderToMallDTO; import com.tmerclub.cloud.common.order.vo.OrderAddrVO; import com.tmerclub.cloud.common.order.vo.UserAddrVO; @@ -18,9 +20,7 @@ import com.tmerclub.cloud.cuerecycle.mapper.CueOrderFlawMapper; import com.tmerclub.cloud.cuerecycle.mapper.CueOrderMapper; import com.tmerclub.cloud.cuerecycle.model.CueOrder; import com.tmerclub.cloud.cuerecycle.model.CueOrderFlaw; -import com.tmerclub.cloud.cuerecycle.model.dto.CreateOrderDTO; -import com.tmerclub.cloud.cuerecycle.model.dto.CreateOrderFlawDTO; -import com.tmerclub.cloud.cuerecycle.model.dto.CueRefuseOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.*; import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO; import com.tmerclub.cloud.cuerecycle.service.CueFlawService; import jakarta.annotation.Resource; @@ -50,13 +50,15 @@ public class CreateOrderManager { @DubboReference CouponFeignClient couponFeignClient; @DubboReference - private OrderFeignClient orderFeignClient; - @DubboReference DeliveryFeignClient deliveryFeignClient; @DubboReference UserAddrFeignClient userAddrFeignClient; @DubboReference OrderAddrFeignClient orderAddrFeignClient; + @DubboReference + UserBalanceLogFeignClient userBalanceLogFeignClient; + @DubboReference + OrderFeignClient orderFeignClient; /** * 保存订单信息 @@ -120,9 +122,9 @@ public class CreateOrderManager { orderFeignClient.updateOrderMall(mallOrderId, orderStatus); } - public void agreeOrder(CreateOrderDTO createOrderDTO) { + public void agreeOrder(CueAgreeOrderDTO cueAgreeOrderDTO) { // 查询订单信息 - CueOrderVO cueOrderVO = cueOrderMapper.getById(createOrderDTO.getOrderId()); + CueOrderVO cueOrderVO = cueOrderMapper.getById(cueAgreeOrderDTO.getOrderId()); if (ObjectUtil.isNull(cueOrderVO)) { throw new LuckException("订单不存在,请检查!"); } @@ -131,14 +133,14 @@ public class CreateOrderManager { throw new LuckException("状态已变更,请检查!"); } CueOrder cueOrder = new CueOrder(); - cueOrder.setOrderId(createOrderDTO.getOrderId()); - cueOrder.setOrderType(createOrderDTO.getOrderType()); - cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_SUCCESS_AND_PAY.value()); + cueOrder.setOrderId(cueAgreeOrderDTO.getOrderId()); + cueOrder.setOrderType(cueAgreeOrderDTO.getOrderType()); + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_SUCCESS_PAY.value()); cueOrder.setUpdateTime(DateUtil.date()); cueOrder.setFinallyTime(DateUtil.date()); cueOrder.setIsPayed(1); // 根据回收类型进行不同操作 - switch (createOrderDTO.getOrderType()) { + switch (cueAgreeOrderDTO.getOrderType()) { case 1: // 回收 cueOrder.setPayType(1); @@ -158,6 +160,7 @@ public class CreateOrderManager { switch (cueOrder.getPayType()) { case 1: // 余额支付 直接向用户账户打款 + userBalanceLogFeignClient.sellCueUpdateBalance(cueOrderVO.getUserId(), cueOrderVO.getActualAmount()); break; case 2: // 代金卷支付 @@ -170,24 +173,28 @@ public class CreateOrderManager { this.updateOrderMall(cueOrderVO.getMallOrderId(), CueOrderStatus.EVALUATION_FAIL.value()); } - public void refuseOrder(CueRefuseOrderDTO cueRefuseOrderDTO) { - - Long orderId = cueRefuseOrderDTO.getOrderId(); + /** + * 填写回邮地址 + * + * @param cueFillAddrDTO 订单信息 + */ + public void fillAddr(CueFillAddrDTO cueFillAddrDTO) { + Long orderId = cueFillAddrDTO.getOrderId(); // 查询订单信息 CueOrderVO cueOrderVO = cueOrderMapper.getById(orderId); if (ObjectUtil.isNull(cueOrderVO)) { throw new LuckException("订单不存在,请检查!"); } - // 两种情况会导致退款 5不合格退款 6价格不满意退款 + // 两种情况会导致退货 5不合格 6价格不满意 // 检查当前状态 - if (!Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value()) || !Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.RECEIPT_EVALUATION.value())) { + if (!Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_FAIL.value()) || !Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value())) { throw new LuckException("状态已变更,请检查!"); } CueOrder cueOrder = new CueOrder(); cueOrder.setOrderId(orderId); // 需要向order_addr插入一条数据 - ServerResponseEntity userAddrVO = userAddrFeignClient.cueGetUserAddrByAddrId(cueRefuseOrderDTO.getAddrId(), cueOrderVO.getUserId()); + ServerResponseEntity userAddrVO = userAddrFeignClient.cueGetUserAddrByAddrId(cueFillAddrDTO.getAddrId(), cueOrderVO.getUserId()); if (userAddrVO.isSuccess()) { // 将地址信息插入到order_addr中 OrderAddrVO orderAddrVO = BeanUtil.toBean(userAddrVO, OrderAddrVO.class); @@ -197,14 +204,50 @@ public class CreateOrderManager { cueOrder.setOrderAddrId(longServerResponseEntity.getData()); } } - if(Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value())){ - cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL.value()); - }else{ - cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL.value()); + if (Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value())) { + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_SUCCESS_PRICE_DISCONTENT.value()); + } else { + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_SUCCESS_COMPLETED.value()); } cueOrder.setUpdateTime(DateUtil.date()); cueOrderMapper.update(cueOrder); - this.updateOrderMall(cueOrderVO.getMallOrderId(), CueOrderStatus.EVALUATION_FAIL.value()); + this.updateOrderMall(cueOrderVO.getMallOrderId(), cueOrder.getOrderStatus()); + } + + /** + * 后管操作球杆退回 + * + * @param cueRetractedDTO 订单信息 + */ + public void cueRetracted(CueRetractedDTO cueRetractedDTO) { + CueOrderVO cueOrderVO = cueOrderMapper.getById(cueRetractedDTO.getOrderId()); + if (ObjectUtil.isNull(cueOrderVO)) { + throw new LuckException("订单不存在,请检查!"); + } + if (!Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_FAIL_FILLED_RETURN_ADDRESS.value()) || !Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS_PRICE_DISCONTENT.value())) { + throw new LuckException("状态已变更,请检查!"); + } + CueOrder cueOrder = new CueOrder(); + cueOrder.setOrderId(cueRetractedDTO.getOrderId()); + cueOrder.setOutletConfigId(cueRetractedDTO.getOutletConfigId()); + cueOrder.setPrinterId(cueRetractedDTO.getPrinterId()); + CurOderReturnsDTO curOderReturnsDTO = new CurOderReturnsDTO(); + curOderReturnsDTO.setOrderId(cueOrderVO.getMallOrderId()); + curOderReturnsDTO.setOutletConfigId(cueRetractedDTO.getOutletConfigId()); + curOderReturnsDTO.setPrinterId(cueRetractedDTO.getPrinterId()); + curOderReturnsDTO.setOrderAddrId(cueOrderVO.getOrderAddrId()); + ServerResponseEntity stringServerResponseEntity = deliveryFeignClient.curOderReturns(curOderReturnsDTO); + if (stringServerResponseEntity.isSuccess()) { + cueOrder.setBackTrackingNumber(stringServerResponseEntity.getData()); + + } + // 判断状态 + if (Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_FAIL_FILLED_RETURN_ADDRESS.value())) { + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL_COMPLETED.value()); + } else { + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_SUCCESS_COMPLETED.value()); + } + cueOrderMapper.update(cueOrder); } } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java index 0ecad63..596a59b 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java @@ -144,4 +144,8 @@ public class CueOrder extends BaseModel implements Serializable { * 用户退货打印机id */ private Long printerId; + /** + * 退货物流单号 + */ + private String backTrackingNumber; } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueAgreeOrderDTO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueAgreeOrderDTO.java new file mode 100644 index 0000000..02461e2 --- /dev/null +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueAgreeOrderDTO.java @@ -0,0 +1,34 @@ +package com.tmerclub.cloud.cuerecycle.model.dto; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 同意回收业务对象 + * + * @author: frank + * @create: 2025-04-18 + **/ +@Data +public class CueAgreeOrderDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + /** + * 订单ID + */ + @NotNull(message = "订单ID不能为空") + private Long orderId; + /** + * 地址ID + */ + @NotNull(message = "地址ID不能为空") + private Long addrId; + /** + * 类型:1-回收,2-置换,3-寄售 + */ + @NotNull(message = "类型不能为空") + private Integer orderType; +} diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRefuseOrderDTO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueFillAddrDTO.java similarity index 61% rename from tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRefuseOrderDTO.java rename to tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueFillAddrDTO.java index 74bfbc0..b68aa55 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRefuseOrderDTO.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueFillAddrDTO.java @@ -1,5 +1,6 @@ package com.tmerclub.cloud.cuerecycle.model.dto; +import jakarta.validation.constraints.NotNull; import lombok.Data; import java.io.Serial; @@ -12,13 +13,17 @@ import java.io.Serializable; * @create: 2025-04-18 **/ @Data -public class CueRefuseOrderDTO implements Serializable { +public class CueFillAddrDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; /** * 订单ID */ + @NotNull(message = "订单ID不能为空") private Long orderId; - + /** + * 地址ID + */ + @NotNull(message = "地址ID不能为空") private Long addrId; } diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRetractedDTO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRetractedDTO.java new file mode 100644 index 0000000..ca9ce5c --- /dev/null +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueRetractedDTO.java @@ -0,0 +1,35 @@ +package com.tmerclub.cloud.cuerecycle.model.dto; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 后管操作球杆退回业务对象 + * + * @author: frank + * @create: 2025-04-18 + **/ +@Data +public class CueRetractedDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + /** + * 订单ID + */ + @NotNull(message = "订单ID不能为空") + private Long orderId; + + /** + * 用户退货网点ids + */ + @NotNull(message = "网点不能为空") + private Long outletConfigId; + /** + * 用户退货打印机id + */ + @NotNull(message = "打印机不能为空") + private Long printerId; +} diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java index 98c1bbf..c8da01f 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java @@ -137,4 +137,9 @@ public class CueOrderVO extends BaseVO implements Serializable { * 寄出单号 */ private String sendNumber; + + /** + * 用户退款地址id + */ + private Long orderAddrId; } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java index cd52ee4..6ab052e 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java @@ -134,10 +134,10 @@ public class CueOrderServiceImpl implements CueOrderService { @Override public int saveMailing(CueSaveMailingDTO cueSaveMailingDTO) { // 修改系统订单的状态 - createOrderManager.updateOrderMall(cueSaveMailingDTO.getMallOrderId(), CueOrderStatus.PENDING_DELIVERY.value()); + createOrderManager.updateOrderMall(cueSaveMailingDTO.getMallOrderId(), CueOrderStatus.FINISH_DELIVERY.value()); // 修改回收单状态 CueOrder cueOrder = BeanUtil.toBean(cueSaveMailingDTO, CueOrder.class); - cueOrder.setOrderStatus(CueOrderStatus.PENDING_DELIVERY.value()); + cueOrder.setOrderStatus(CueOrderStatus.FINISH_DELIVERY.value()); cueOrder.setDeliveryTime(DateUtil.date()); return cueOrderMapper.update(cueOrder); } diff --git a/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml b/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml index 9130415..c26256c 100644 --- a/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml +++ b/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml @@ -35,7 +35,7 @@ order_id,product_id,product_name,product_images,product_price,user_id,user_name,user_phone,order_type, order_status,flaw_img_url,evidence_of_payment,order_remark,estimated_amount,actual_amount,voucher_amount,deleted, - create_time,update_time,is_payed,pay_type,pay_time,delivery_time,finally_time,mall_order_id,send_number + create_time,update_time,is_payed,pay_type,pay_time,delivery_time,finally_time,mall_order_id,send_number,order_addr_id