From ef1194ee0b5c658322b7ab381d4fa81f9aba9cbb Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 6 May 2025 16:25:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=89=93=E5=8C=85=E6=8E=92=E9=99=A4?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/feign/RemoteHardThirdPayService.java | 8 ++- .../third/HardThirdPayController.java | 7 +-- .../pjcloud/thirdparty/dto/pay/PayDto.java | 8 ++- .../thirdparty/vo/pay/PayGetWalletInfoVo.java | 24 --------- .../thirdparty/vo/pay/PayWalletInfoVo.java | 2 +- .../pjcloud-thirdparty-biz/pom.xml | 8 +++ .../controller/pay/ThirdPayApiController.java | 1 - .../impl/pay/ThirdPayApiServiceImpl.java | 9 +++- .../src/main/resources/doc/第三方支付文档.wps | Bin 83968 -> 90112 bytes .../java/com/bsd/pjcloud/admin/PayTest.java | 46 +++++++++++++++++- 10 files changed, 75 insertions(+), 38 deletions(-) delete mode 100644 pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayGetWalletInfoVo.java diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java index f1769827..1ac6810e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.api.feign; import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; +import com.bsd.pjcloud.common.feign.annotation.NoToken; import com.bsd.pjcloud.thirdparty.dto.pay.PayDto; import com.bsd.pjcloud.thirdparty.dto.pay.RefundDto; import com.bsd.pjcloud.thirdparty.vo.pay.PayBaseVo; @@ -10,18 +11,21 @@ import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; @FeignClient(contextId = "remoteHardThirdPayService", value = ServiceNameConstants.HARDWARE_SERVICE) public interface RemoteHardThirdPayService { /** * 第三方支付 */ - @PostMapping("/hard-third-pay/wallet-refund") - PayBaseVo walletPay(@RequestBody PayDto dto, WalletTypeEnum walletType); + @NoToken + @PostMapping("/hard-third-pay/wallet-pay") + PayBaseVo walletPay(@RequestBody PayDto dto, @RequestParam WalletTypeEnum walletType); /** * 第三方退款 */ + @NoToken @PostMapping("/hard-third-pay/wallet-refund") PayBaseVo walletRefund(@RequestBody RefundDto dto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java index b1fbc614..9e99f50b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java @@ -14,10 +14,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor @@ -32,7 +29,7 @@ public class HardThirdPayController { @PostMapping("/wallet-pay") @SysLog("第三方支付") @Operation(summary = "第三方支付") - public PayBaseVo walletPay(@RequestBody PayDto dto, WalletTypeEnum walletType) { + public PayBaseVo walletPay(@RequestBody PayDto dto, @RequestParam WalletTypeEnum walletType) { return hardThirdPayService.walletPay(dto, walletType); } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/pay/PayDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/pay/PayDto.java index 4bc2df1f..b5ad858f 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/pay/PayDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/pay/PayDto.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.thirdparty.dto.pay; -import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPaySoureBizTypeEnum; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.List; @@ -11,16 +12,19 @@ public class PayDto { /** * 用户id */ + @NotNull(message = "用户id不能为空") private Long userId; /** - * 第三方订单唯一id + * 第三方唯一流水id */ + @NotEmpty(message = "第三方唯一流水id不能为空") private String thirdOrderId; /** * 扣款金额(分) */ + @NotNull(message = "扣款金额不能为空") private Integer price; /** diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayGetWalletInfoVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayGetWalletInfoVo.java deleted file mode 100644 index 07e8d1bd..00000000 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayGetWalletInfoVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bsd.pjcloud.thirdparty.vo.pay; - -import lombok.Data; - -@Data -public class PayGetWalletInfoVo { - - /** - * sm4加密后的手机号 - */ - private String signPhone; - - /** - * 用户真实姓名 - */ - private String name; - - /** - * 用户余额(分) - */ - private int balance; - - -} diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayWalletInfoVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayWalletInfoVo.java index ae7a2105..b79fb926 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayWalletInfoVo.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/pay/PayWalletInfoVo.java @@ -8,7 +8,7 @@ public class PayWalletInfoVo { /** * 用户id */ - private String userId; + private Long userId; /** * sm4加密后的手机号 diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/pom.xml b/pjcloud-thirdparty/pjcloud-thirdparty-biz/pom.xml index bfa98f44..1449b2ee 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/pom.xml +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/pom.xml @@ -145,6 +145,14 @@ true + + + src/main/resources/doc + + **/*.wps + + + org.springframework.boot diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/pay/ThirdPayApiController.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/pay/ThirdPayApiController.java index 36805d2d..9171614a 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/pay/ThirdPayApiController.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/pay/ThirdPayApiController.java @@ -16,7 +16,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Map; diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/pay/ThirdPayApiServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/pay/ThirdPayApiServiceImpl.java index 437242f9..75d67203 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/pay/ThirdPayApiServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/pay/ThirdPayApiServiceImpl.java @@ -20,12 +20,15 @@ import com.bsd.pjcloud.thirdparty.vo.pay.*; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.feign.RemoteWalletService; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.Map; +import java.util.Set; /** * 第三方支付 @@ -64,6 +67,7 @@ public class ThirdPayApiServiceImpl implements ThirdPayApiService { return baseVo; } PayDto dto = JSONUtil.toBean(json, PayDto.class); + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(dto); if (ObjectUtil.isEmpty(dto)) { baseVo.set(ThirdPayVoStatusEnum.PARAMS_ERROR); // 日志 @@ -182,7 +186,7 @@ public class ThirdPayApiServiceImpl implements ThirdPayApiService { payLogService.save(logObj); return baseVo; } - WalletManageVo userWallet = walletService.getWalletByUserPhone(phone, WalletTypeEnum.EAT).getData(); + WalletManageVo userWallet = walletService.getWalletByUserPhone(phone, WalletTypeEnum.PAY).getData(); if (ObjectUtil.isEmpty(userWallet)) { baseVo.set(ThirdPayVoStatusEnum.USER_EXIST); // 日志 @@ -191,7 +195,8 @@ public class ThirdPayApiServiceImpl implements ThirdPayApiService { payLogService.save(logObj); return baseVo; } - PayGetWalletInfoVo result = new PayGetWalletInfoVo(); + PayWalletInfoVo result = new PayWalletInfoVo(); + result.setUserId(userWallet.getUserId()); result.setSignPhone(dto.getSignPhone()); result.setBalance(userWallet.getBalance()); result.setName(userWallet.getUsername()); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/doc/第三方支付文档.wps b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/doc/第三方支付文档.wps index b19729746e8b43fbd42a854e7eb9bf427a22f25e..79e2003ba95934cd8bfa27992e502196a278c503 100644 GIT binary patch delta 9519 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 paramsMap = new HashMap<>(); - paramsMap.put("signPhone", LbRetailSignUtils.sm4Encrypt("17683843144", config.getFieldKey())); + paramsMap.put("signPhone", LbRetailSignUtils.sm4Encrypt("17683843141", config.getFieldKey())); String body = JSONUtil.toJsonStr(paramsMap); // 发送请求 String res = HttpRequest.post(baseUrl + walletInfoUrl).contentType("application/json").header(apiCountersign(body)).body(body).execute().body(); + PayBaseVo baseVo = JSONUtil.toBean(res, PayBaseVo.class); + if (ObjectUtil.isNotEmpty(baseVo)) { + PayWalletInfoVo walletInfo = JSONUtil.toBean(String.valueOf(baseVo.getData()), PayWalletInfoVo.class); + baseVo.setData(walletInfo); + } log.info(res); } + // 扣款(没有购物车) + @Test + public void walletPay() throws Exception { + Map paramsMap = new HashMap<>(); + paramsMap.put("userId", 1875049673022279681L); + paramsMap.put("thirdOrderId", "1"); + paramsMap.put("price", 100); + paramsMap.put("products", null); + String body = JSONUtil.toJsonStr(paramsMap); + // 发送请求 + String res = HttpRequest.post(baseUrl + walletPayUrl).contentType("application/json").header(apiCountersign(body)).body(body).execute().body(); + log.info(res); + } + + // 扣款(有购物车) + @Test + public void walletCarPay() throws Exception { + ThirdKeyManageEntity config = getLbConfig(); + Map paramsMap = new HashMap<>(); + String body = JSONUtil.toJsonStr(paramsMap); + // 发送请求 + String res = HttpRequest.post(baseUrl + walletPayUrl).contentType("application/json").header(apiCountersign(body)).body(body).execute().body(); + log.info(res); + } + + // 退款 + @Test + public void walletRefund() throws Exception { + ThirdKeyManageEntity config = getLbConfig(); + Map paramsMap = new HashMap<>(); + String body = JSONUtil.toJsonStr(paramsMap); + // 发送请求 + String res = HttpRequest.post(baseUrl + walletRefundUrl).contentType("application/json").header(apiCountersign(body)).body(body).execute().body(); + log.info(res); + } private ThirdKeyManageEntity getLbConfig() { return keyManageService.get(ThirdKeyTypeEnum.LB);