From 3bcda507caca11eeeebf7b70d7bfb8ac56a67836 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 05 八月 2025 21:10:06 +0800
Subject: [PATCH] 后台提现审核

---
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java                        |   10 +++
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java                     |    3 
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java |   19 +++++-
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/UUIDUtil.java                        |  103 ++++++++++++++++++++++++++++++++++
 4 files changed, 130 insertions(+), 5 deletions(-)

diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
index 3878d4f..b5a041b 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
+import com.alipay.api.AlipayApiException;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
@@ -8,12 +9,16 @@
 import com.stylefeng.guns.core.util.ExcelExportUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.TDriver;
 import com.stylefeng.guns.modular.system.model.TPubWithdrawal;
 import com.stylefeng.guns.modular.system.model.TSystemNotice;
+import com.stylefeng.guns.modular.system.service.ITDriverService;
 import com.stylefeng.guns.modular.system.service.ITPubWithdrawalService;
 import com.stylefeng.guns.modular.system.service.ITSystemNoticeService;
 import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
 import com.stylefeng.guns.modular.system.util.PushURL;
+import com.stylefeng.guns.modular.system.util.alipay.AlipayUtils;
+import com.stylefeng.guns.modular.system.util.alipay.UUIDUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -21,6 +26,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -40,6 +46,8 @@
 
     @Autowired
     private ITSystemNoticeService tSystemNoticeService;
+    @Autowired
+    private ITDriverService driverService;
 
     /**
      * 跳转到提现列表首页
@@ -115,7 +123,7 @@
      */
     @RequestMapping(value = "/immediately")
     @ResponseBody
-    public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
+    public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) throws AlipayApiException {
         TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
         if (SinataUtil.isNotEmpty(tPubWithdrawal)){
 //            tPubWithdrawal.setState(state);  //调用接口修改状态
@@ -125,10 +133,16 @@
             Integer stateObj = 1;
             if (2 == state){   //同意提现
                 stateObj = 1;
+                // 支付宝提现
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+                TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
+                System.err.println("支付宝提现返回信息"+AlipayUtils.aliWithdrawal(code,tPubWithdrawal.getMoney()+"",tPubWithdrawal.getCode(),tDriver.getIdCard()));
+                tPubWithdrawal.setOutOrderNo( code);
+                tPubWithdrawalService.updateById(tPubWithdrawal);
             }else if (3 == state){  //拒绝提现
                 stateObj = 2;
             }
-            tPubWithdrawalService.updateById(tPubWithdrawal);
 
 //            Map<String,String> map = new HashMap<>();
 //            map.put("id", String.valueOf(tPubWithdrawal.getId()));
@@ -136,7 +150,6 @@
 //            String result = HttpRequestUtil.postRequest(PushURL.withdraw_auth_url, map);
 //            System.out.println("提现审核接口 :【recordId="+tPubWithdrawal.getId().toString()+"】,调用接口:"+result);
 
-            // 支付宝提现
 
             //增加系统消息
             TSystemNotice notice = new TSystemNotice();
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java
index 4f469e7..4a8680e 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java
@@ -42,6 +42,8 @@
      * 提现金额
      */
     private BigDecimal money;
+    // 提现订单号
+    private String outOrderNo;
     /**
      * 状态(1=待处理,2=成功,3=失败)
      */
@@ -203,4 +205,12 @@
         ", withdrawalType=" + withdrawalType +
         "}";
     }
+
+    public String getOutOrderNo() {
+        return outOrderNo;
+    }
+
+    public void setOutOrderNo(String outOrderNo) {
+        this.outOrderNo = outOrderNo;
+    }
 }
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java
index f952ff3..646f619 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java
@@ -58,7 +58,7 @@
     /**
      * 提现
      */
-    public static String aliWithdrawal(String outBizNo, String money, String account, String idCard,String userName) throws AlipayApiException {
+    public static String aliWithdrawal(String outBizNo, String money, String account, String idCard) throws AlipayApiException {
         // 初始化SDK
         AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
 
@@ -81,7 +81,6 @@
         payeeInfo.setIdentity(account);
         payeeInfo.setCertType("IDENTITY_CARD");
         payeeInfo.setCertNo(idCard);
-        payeeInfo.setName(userName);
         payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
         model.setPayeeInfo(payeeInfo);
         // 设置业务备注
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/UUIDUtil.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/UUIDUtil.java
new file mode 100644
index 0000000..774242a
--- /dev/null
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/UUIDUtil.java
@@ -0,0 +1,103 @@
+package com.stylefeng.guns.modular.system.util.alipay;
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 定义生成随机码的工具类
+ */
+public class UUIDUtil {
+
+    private int i = 1;
+
+
+    /**
+     * 定义生成原生的UUID随机码
+     *
+     * @return
+     */
+    public static String getNativeUUID() {
+        return UUID.randomUUID().toString();
+    }
+
+
+    /**
+     * 生成32位随机码
+     *
+     * @return
+     */
+    public static String getRandomCode() {
+        return UUIDUtil.getNativeUUID().replaceAll("-", "");
+    }
+
+
+    /**
+     * 获取给定长度的随机码
+     *
+     * @param num
+     * @return
+     * @throws Exception
+     */
+    public static String getRandomCode(Integer num) throws Exception {
+        String str = null;
+        if (0 < num) {
+            if (num % 32 > 0) {
+                Integer s = num / 32;
+                Integer l = num % 32;
+                StringBuffer sb = new StringBuffer();
+                for (int i = 0; i < s; i++) {
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                sb.append(UUIDUtil.getRandomCode().substring(0, l));
+                str = sb.toString();
+            } else if (num % 32 == 0) {
+                Integer s = num / 32;
+                StringBuffer sb = new StringBuffer();
+                for (int i = 0; i < s; i++) {
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                str = sb.toString();
+            } else {
+                str = UUIDUtil.getRandomCode().substring(0, num);
+            }
+        } else {
+            throw new Exception("参数只能大于0");
+        }
+        return str;
+    }
+
+
+    /**
+     * 获取根据当前时间的字符串数据
+     *
+     * @return
+     */
+    public synchronized static String getTimeStr() {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS");
+        return simpleDateFormat.format(new Date());
+    }
+
+
+    /**
+     * @Description: 获取数字随机码
+     * @Author pzb
+     * @Date 2021/8/11 16:52
+     * @Param
+     * @Return
+     * @Exception
+     */
+    public static String getNumberRandom(Integer num) {
+        if (null == num) {
+            num = 32;
+        }
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < num; i++) {
+            sb.append(Double.valueOf(Math.random() * 10).intValue());
+        }
+        return sb.toString();
+    }
+
+
+}

--
Gitblit v1.7.1