diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderTypeEnum.java index 9a75b51b5..a9f0a6d98 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderTypeEnum.java @@ -27,7 +27,7 @@ public enum HardOrderTypeEnum { return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); } - public static final List refundList = List.of(BELOW, RESERVE); + public static final List refundList = List.of(BELOW, RESERVE, FOREIGN_TICKET, ZY); public static final List payList = List.of(BELOW, RESERVE); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java index 8e8375fdc..6c61cd715 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java @@ -52,6 +52,8 @@ public interface HardAfterSaleService extends IService { */ void refund(Long afterSaleId); + void refund(Long afterSaleId, String prefixStr); + /** * 同意售后 * diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java index a3a2dfcc1..63709cd1f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java @@ -8,6 +8,7 @@ import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum; import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum; +import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum; import com.bsd.pjcloud.hard.api.constant.refund.HardAfterSaleOperateTypeEnum; import com.bsd.pjcloud.hard.api.constant.refund.HardSaleStatusEnum; import com.bsd.pjcloud.hard.api.constant.refund.HardSaleTypeEnum; @@ -79,10 +80,10 @@ public class HardThirdSelfZyServiceImpl implements HardThirdSelfZyService { .userId(dto.getUserId()) .parentCarId(null) .sysType(null) - .orderStatus(HardOrderStatusEnum.PAY.getType()) + .orderStatus(HardOrderStatusEnum.CREATE.getType()) .merchantId(null) .orderType(HardOrderTypeEnum.ZY.getType()) - .payType(HardOrderTypeEnum.RESERVE.getType()) + .payType(HardPayTypeEnum.WALLET_CARD.getType()) .orderSourceTypeId(null) .totalPrice(totalPrice) .extraPrice(0) @@ -118,21 +119,27 @@ public class HardThirdSelfZyServiceImpl implements HardThirdSelfZyService { try { // 校验订单是否可以退款 HardOrderVo order = hardAfterSaleService.validateOrderCanRefund(dto.getOrderId()); + if (!ObjectUtil.equals(dto.getSerialNum(), order.getOrderNo())) { + throw new RuntimeException("正元订单号不匹配"); + } // 用户 UserInfo user = remoteUserService.getByUserId(order.getUserId()).getData(); if (ObjectUtil.isEmpty(user)) throw new RuntimeException("用户不存在"); // 添加售后订单 HardAfterSaleEntity saveObj = BeanUtils.toBean(dto, HardAfterSaleEntity.class); - String refundCode = "hard_" + order.getId(); + String refundCode = "zy_" + order.getId(); saveObj.setType(HardSaleTypeEnum.AFTER_SALE.getType()); saveObj.setStatus(HardSaleStatusEnum.COMPLETE.getStatus()); saveObj.setNo(refundCode); + saveObj.setWay("10"); saveObj.setOrderId(order.getId()); saveObj.setRefundPrice(order.getPayPrice()); saveObj.setUserId(order.getUserId()); saveObj.setAuditUserId(null); saveObj.setAuditTime(LocalDateTime.now()); - saveObj.setAuditReason("后台退款"); + saveObj.setApplyReason("正元api退款"); + saveObj.setAuditReason("正元api退款"); + saveObj.setApplyDescription("正元api退款"); hardAfterSaleService.save(saveObj); // 添加售后进度 HardAfterSaleLogEntity saveLogObj = HardAfterSaleLogEntity.builder() @@ -145,7 +152,7 @@ public class HardThirdSelfZyServiceImpl implements HardThirdSelfZyService { .build(); hardAfterSaleLogMapper.insert(saveLogObj); // 执行退款 - hardAfterSaleService.refund(saveObj.getId()); + hardAfterSaleService.refund(saveObj.getId(),"zy"); // 退库存 hardOrderService.fastenerInventory(order, YesNoEnum.NO); HardCallbackRefundVo result = new HardCallbackRefundVo(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java index 4e3631129..a395f4255 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java @@ -209,12 +209,19 @@ public class HardAfterSaleServiceImpl extends ServiceImpl walletRefundResult = walletRechargeService.refund(hardRefundDto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index cc82de11b..68865c76d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -351,8 +351,10 @@ public class HardOrderServiceImpl extends ServiceImpl + @@ -39,6 +40,7 @@ select a.id, + a.order_no, a.user_id, a.merchant_id, a.hard_id, @@ -194,13 +196,19 @@ COALESCE(COUNT(0), 0) AS totalNum, COALESCE(SUM(a.pay_price), 0) AS totalMoney, COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) THEN 1 ELSE 0 END), 0) AS totalNumYear, - COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS totalMoneyYear, - COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = MONTH(CURRENT_DATE()) THEN 1 ELSE 0 END), 0) AS totalNumMonth, - COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = MONTH(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS totalMoneyMonth, - COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = MONTH(CURRENT_DATE()) AND DAY(a.create_time) = DAY(CURRENT_DATE()) THEN 1 ELSE 0 END), 0) AS totalNumDay, - COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = MONTH(CURRENT_DATE()) AND DAY(a.create_time) = DAY(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS totalMoneyDay + COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS + totalMoneyYear, + COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = + MONTH(CURRENT_DATE()) THEN 1 ELSE 0 END), 0) AS totalNumMonth, + COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = + MONTH(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS totalMoneyMonth, + COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = + MONTH(CURRENT_DATE()) AND DAY(a.create_time) = DAY(CURRENT_DATE()) THEN 1 ELSE 0 END), 0) AS totalNumDay, + COALESCE(SUM(CASE WHEN YEAR(a.create_time) = YEAR(CURRENT_DATE()) AND MONTH(a.create_time) = + MONTH(CURRENT_DATE()) AND DAY(a.create_time) = DAY(CURRENT_DATE()) THEN a.pay_price ELSE 0 END), 0) AS + totalMoneyDay FROM - hard_order a + hard_order a a.del_flag = 0 diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java index cbff8d7da..0fe520c1e 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java @@ -98,8 +98,8 @@ public class ZyTest { @Test public void selfRefund() throws Exception { - String orderId = "1"; - String orderNo = "1"; + String orderId = "1897311229083856897"; + String orderNo = "01234567890123456789"; ZySelfGetTokenDto tokenParams = new ZySelfGetTokenDto(); tokenParams.setAppid(zyConfig.getSelfAppId()); diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletRechargeService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletRechargeService.java index 21d538928..b10df01c7 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletRechargeService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletRechargeService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.wallet.api.feign; import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.feign.annotation.NoToken; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeRefundDto; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeVo; import org.springframework.cloud.openfeign.FeignClient; @@ -17,6 +18,7 @@ public interface RemoteWalletRechargeService { * @param dto * @return */ + @NoToken @PostMapping("/wallet-recharge/refund") R refund(@RequestBody WalletRechargeRefundDto dto); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java index 1d5d78028..78dec72b1 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java @@ -44,6 +44,7 @@ public class WalletRechargeController { private final WalletRechargeService walletRechargeService; /* ************************************* start 远程调用 start ************************************* */ + @Inner @Operation(summary = "远程调用-退款", description = "远程调用-退款") @PostMapping("/refund") public R refund(@Valid @RequestBody WalletRechargeRefundDto dto) {