From b5ff50145e846637838a7905610aed3f4ada5e72 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 04 七月 2023 00:08:51 +0800
Subject: [PATCH] 更新部分支付功能逻辑

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java |   67 +++++++++++++++++----------------
 1 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 96662d0..03c065d 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -102,6 +102,9 @@
     @Autowired
     private PayMoneyUtil payMoneyUtil;
 
+    @Autowired
+    private IBankCardService bankCardService;
+
     @Value("${callbackPath}")
     private String callbackPath;
 
@@ -167,7 +170,7 @@
      * @return
      */
     @Override
-    public ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, Double lat, Double lng,Integer uid,Integer type,
+    public ResultUtil<LoginWarpper> captchaLogin(String phoneOperator, String phone, String code, String registIp, Double lat, Double lng,Integer uid,Integer type,
                                                  Integer userType, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
@@ -177,6 +180,7 @@
         UserInfo userInfo = userInfoMapper.queryByPhone(phone);
         if(null == userInfo){
             userInfo = new UserInfo();
+            userInfo.setPhoneOperator(phoneOperator);
             userInfo.setPhone(phone);
             userInfo.setPassWord(ShiroKit.md5("", salt));
             userInfo.setNickName(this.getDefaultName());
@@ -405,9 +409,8 @@
     }
 
     @Override
-    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType, Integer language) throws Exception {
-        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null, null,uid,type,userType,language);
-
+    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phoneOperator, String phone, String code, Integer uid, Integer type, Integer userType, Integer language) throws Exception {
+        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phoneOperator, phone, code, null, null, null,uid,type,userType,language);
         return resultUtil;
     }
 
@@ -902,7 +905,7 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil bindingPhone(Integer uid, String phone, String code, Integer language) throws Exception {
+    public ResultUtil bindingPhone(Integer uid, String phoneOperator, String phone, String code, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
             return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
@@ -952,6 +955,7 @@
             return ResultUtil.success(loginWarpper);
         }
 
+        userInfo.setPhoneOperator(phoneOperator);
         userInfo.setPhone(phone);
         userInfo.setUpdateTime(new Date());
         userInfo.setUpdateUser(userInfo.getId());
@@ -1099,28 +1103,20 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil depositBalance(Integer payType, String accountNumber, Double money, Integer uid, Integer type, Integer language) throws Exception {
+    public ResultUtil depositBalance(Integer payType, String bankCardId, Double money, Integer uid, Integer type, Integer language) throws Exception {
         UserInfo userInfo = userInfoMapper.selectById(uid);
         if(money.compareTo(0D) <= 0){
             return ResultUtil.error("支付金额必须大于0元");
         }
-        if(payType == 1){//微信支付
+        if(payType == 1){//手机支付
             Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
-//            ResultUtil resultUtil = payMoneyUtil.weixinpay("余额充值",language.toString(),integer.toString(),money+"","/base/wxCancelUserBalance","JSAPI",userInfo.getAppletsOpenId());
-//            if(resultUtil.getCode()==200){
-//                PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
-//                paymentRecordService.updateById(paymentRecord);
-//                return resultUtil;
-//            }else{
-//                return ResultUtil.error("获取支付信息失败", "");
-//            }
 
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             String merchantTransactionId = sdf.format(new Date()) + language + integer;
             CheckoutRequest checkoutRequest = new CheckoutRequest();
             checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
             checkoutRequest.setCustomerEmail(userInfo.getEmail());
-            checkoutRequest.setAccountNumber(accountNumber);
+            checkoutRequest.setAccountNumber(userInfo.getPhone());
             checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
             checkoutRequest.setCustomerLastName(userInfo.getLastName());
             checkoutRequest.setRequestAmount(money);
@@ -1131,20 +1127,28 @@
             checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun");
             checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
             return TinggPayUtil.checkoutRequest(checkoutRequest);
-
-
         }
-//        if(payType == 2){//支付宝支付
-//            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 2, money, "", 1);//添加预支付数据
-//            ResultUtil resultUtil = payMoneyUtil.alipay("余额充值","余额充值",integer + "_" + language,money+"","/base/aliCancelUserBalance");
-//            if(resultUtil.getCode()==200){
-//                PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
-//                paymentRecordService.updateById(paymentRecord);
-//                return resultUtil;
-//            }else{
-//                return ResultUtil.error("获取支付信息失败", "");
-//            }
-//        }
+
+        if(payType == 2){//银行卡支付
+            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
+            BankCard bankCard = bankCardService.selectById(bankCardId);
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String merchantTransactionId = sdf.format(new Date()) + language + integer;
+            CheckoutRequest checkoutRequest = new CheckoutRequest();
+            checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
+            checkoutRequest.setCustomerEmail(userInfo.getEmail());
+            checkoutRequest.setAccountNumber(bankCard.getCode());
+            checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
+            checkoutRequest.setCustomerLastName(bankCard.getLastName());
+            checkoutRequest.setRequestAmount(money);
+            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+            checkoutRequest.setRequestDescription("Account top-up");
+            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelUserBalance");
+            checkoutRequest.setPendingRedirectUrl("");
+            checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun");
+            checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
+            return TinggPayUtil.checkoutRequest(checkoutRequest);
+        }
         return ResultUtil.success();
     }
 
@@ -1158,7 +1162,7 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil updatePhone(String code, String phone, Integer uid, Integer language) throws Exception {
+    public ResultUtil updatePhone(String code, String phoneOperator, String phone, Integer uid, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
             return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
@@ -1168,10 +1172,9 @@
         if(null != userInfo1){
             return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The phone number has been registered" : "Le numéro de téléphone a été enregistré");
         }
+        userInfo.setPhoneOperator(phoneOperator);
         userInfo.setPhone(phone);
         this.updateById(userInfo);
-
-//        smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
         return ResultUtil.success();
     }
 

--
Gitblit v1.7.1