Quellcode durchsuchen

1. 微信对接的初级
2. 确定需要一个充值记录,而不是资金记录那么简单。

skyfffire vor 1 Monat
Ursprung
Commit
21cb182e50

+ 7 - 0
pom.xml

@@ -80,6 +80,13 @@
             <artifactId>logback-classic</artifactId>
             <version>1.2.11</version> <!-- 匹配 SLF4J 1.7.x 的最新版本 -->
         </dependency>
+
+        <!-- 微信支付SDK -->
+        <dependency>
+            <groupId>com.github.wechatpay-apiv3</groupId>
+            <artifactId>wechatpay-java</artifactId>
+            <version>0.2.17</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 12 - 0
src/main/java/common/model/BalanceLog.java

@@ -0,0 +1,12 @@
+package common.model;
+
+import common.model.base.BaseBalanceLog;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class BalanceLog extends BaseBalanceLog<BalanceLog> {
+	public static final BalanceLog dao = new BalanceLog().dao();
+}
+

+ 12 - 0
src/main/java/common/model/Deposit.java

@@ -0,0 +1,12 @@
+package common.model;
+
+import common.model.base.BaseDeposit;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class Deposit extends BaseDeposit<Deposit> {
+	public static final Deposit dao = new Deposit().dao();
+}
+

+ 0 - 12
src/main/java/common/model/DepositLog.java

@@ -1,12 +0,0 @@
-package common.model;
-
-import common.model.base.BaseDepositLog;
-
-/**
- * Generated by JFinal.
- */
-@SuppressWarnings("serial")
-public class DepositLog extends BaseDepositLog<DepositLog> {
-	public static final DepositLog dao = new DepositLog().dao();
-}
-

+ 2 - 1
src/main/java/common/model/_MappingKit.java

@@ -16,7 +16,8 @@ import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
 public class _MappingKit {
 	
 	public static void mapping(ActiveRecordPlugin arp) {
-		arp.addMapping("t_deposit_log", "id", DepositLog.class);
+		arp.addMapping("t_balance_log", "id", BalanceLog.class);
+		arp.addMapping("t_deposit", "id", Deposit.class);
 		arp.addMapping("t_news", "id", News.class);
 		arp.addMapping("t_nft", "id", Nft.class);
 		arp.addMapping("t_nftt", "id", Nftt.class);

+ 101 - 0
src/main/java/common/model/base/BaseBalanceLog.java

@@ -0,0 +1,101 @@
+package common.model.base;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.jfinal.plugin.activerecord.IBean;
+
+/**
+ * Generated by JFinal, do not modify this file.
+ */
+@SuppressWarnings("serial")
+public abstract class BaseBalanceLog<M extends BaseBalanceLog<M>> extends Model<M> implements IBean {
+	/**
+	 * 资金记录的id
+	 */
+	public void setId(java.lang.Long id) {
+		set("id", id);
+	}
+	
+	/**
+	 * 资金记录的id
+	 */
+	public java.lang.Long getId() {
+		return getLong("id");
+	}
+	/**
+	 * 资金变化的user,-1代表未找到的user
+	 */
+	public void setUserId(java.lang.Long userId) {
+		set("user_id", userId);
+	}
+	
+	/**
+	 * 资金变化的user,-1代表未找到的user
+	 */
+	public java.lang.Long getUserId() {
+		return getLong("user_id");
+	}
+	/**
+	 * 资金变化数量,负数是扣减
+	 */
+	public void setAmount(java.lang.Integer amount) {
+		set("amount", amount);
+	}
+	
+	/**
+	 * 资金变化数量,负数是扣减
+	 */
+	public java.lang.Integer getAmount() {
+		return getInt("amount");
+	}
+	/**
+	 * 资金变化记录描述
+	 */
+	public void setDescription(java.lang.String description) {
+		set("description", description);
+	}
+	
+	/**
+	 * 资金变化记录描述
+	 */
+	public java.lang.String getDescription() {
+		return getStr("description");
+	}
+	/**
+	 * 资金变化记录创建时间
+	 */
+	public void setCreateTime(java.lang.Long createTime) {
+		set("create_time", createTime);
+	}
+	
+	/**
+	 * 资金变化记录创建时间
+	 */
+	public java.lang.Long getCreateTime() {
+		return getLong("create_time");
+	}
+	public void setIsDeleted(java.lang.Integer isDeleted) {
+		set("is_deleted", isDeleted);
+	}
+	
+	public java.lang.Integer getIsDeleted() {
+		return getInt("is_deleted");
+	}
+	
+	public boolean save() {
+		set("create_time", System.currentTimeMillis());
+		
+		return super.save();
+	}
+	
+	public boolean update() {
+		set("update_time", System.currentTimeMillis());
+		
+		return super.update();
+	}
+
+	public boolean delete() {
+		set("is_deleted", 1);
+
+		return super.update();
+	}
+}

+ 23 - 23
src/main/java/common/model/base/BaseDepositLog.java → src/main/java/common/model/base/BaseDeposit.java

@@ -7,7 +7,7 @@ import com.jfinal.plugin.activerecord.IBean;
  * Generated by JFinal, do not modify this file.
  */
 @SuppressWarnings("serial")
-public abstract class BaseDepositLog<M extends BaseDepositLog<M>> extends Model<M> implements IBean {
+public abstract class BaseDeposit<M extends BaseDeposit<M>> extends Model<M> implements IBean {
 	/**
 	 * 充值记录的id
 	 */
@@ -22,66 +22,66 @@ public abstract class BaseDepositLog<M extends BaseDepositLog<M>> extends Model<
 		return getLong("id");
 	}
 	/**
-	 * 充值的user,-1代表未找到的user
+	 * 充值的user
 	 */
 	public void setUserId(java.lang.Long userId) {
 		set("user_id", userId);
 	}
 	
 	/**
-	 * 充值的user,-1代表未找到的user
+	 * 充值的user
 	 */
 	public java.lang.Long getUserId() {
 		return getLong("user_id");
 	}
 	/**
-	 * 慧用工解析完成的businessBody
+	 * 微信解析完成的json原文
 	 */
-	public void setHygDecrypted(java.lang.String hygDecrypted) {
-		set("hyg_decrypted", hygDecrypted);
+	public void setWxDecrypted(java.lang.String wxDecrypted) {
+		set("wx_decrypted", wxDecrypted);
 	}
 	
 	/**
-	 * 慧用工解析完成的businessBody
+	 * 微信解析完成的json原文
 	 */
-	public java.lang.String getHygDecrypted() {
-		return getStr("hyg_decrypted");
+	public java.lang.String getWxDecrypted() {
+		return getStr("wx_decrypted");
 	}
 	/**
-	 * 慧用工回调原文
+	 * 微信回调原文
 	 */
-	public void setHygOriginal(java.lang.String hygOriginal) {
-		set("hyg_original", hygOriginal);
+	public void setWxOriginal(java.lang.String wxOriginal) {
+		set("wx_original", wxOriginal);
 	}
 	
 	/**
-	 * 慧用工回调原文
+	 * 微信回调原文
 	 */
-	public java.lang.String getHygOriginal() {
-		return getStr("hyg_original");
+	public java.lang.String getWxOriginal() {
+		return getStr("wx_original");
 	}
 	/**
-	 * 慧用工的充值单号,如果是重复的就不要给用户重复充值了
+	 * 微信的充值单号,如果是重复的就不要给用户重复充值了
 	 */
-	public void setHygOrderNo(java.lang.String hygOrderNo) {
-		set("hyg_order_no", hygOrderNo);
+	public void setWxOrderNo(java.lang.String wxOrderNo) {
+		set("wx_order_no", wxOrderNo);
 	}
 	
 	/**
-	 * 慧用工的充值单号,如果是重复的就不要给用户重复充值了
+	 * 微信的充值单号,如果是重复的就不要给用户重复充值了
 	 */
-	public java.lang.String getHygOrderNo() {
-		return getStr("hyg_order_no");
+	public java.lang.String getWxOrderNo() {
+		return getStr("wx_order_no");
 	}
 	/**
-	 * 充值数量,负数是提现
+	 * 充值数量
 	 */
 	public void setAmount(java.lang.Integer amount) {
 		set("amount", amount);
 	}
 	
 	/**
-	 * 充值数量,负数是提现
+	 * 充值数量
 	 */
 	public java.lang.Integer getAmount() {
 		return getInt("amount");

+ 52 - 0
src/main/java/common/utils/wechat/WeChatConfig.java

@@ -0,0 +1,52 @@
+package common.utils.wechat;
+
+import com.wechat.pay.java.core.Config;
+import com.wechat.pay.java.core.RSAAutoCertificateConfig;
+import com.wechat.pay.java.core.notification.NotificationConfig;
+import com.wechat.pay.java.service.payments.h5.H5Service;
+
+public class WeChatConfig {
+    static String merchantId = System.getenv("WX_MERCHANT_ID");
+    static String privateKeyPath = System.getenv("WX_PRIVATE_KEY_PATH");
+    static String merchantSerialNumber = System.getenv("WX_MERCHANT_SERIAL_NUMBER");
+    static String apiV3Key = System.getenv("WX_API_V3_KEY");
+    // static String appId = System.getenv("WX_APP_ID");
+    
+    private static Config config;
+    private static NotificationConfig nConfig;
+    private static H5Service service;
+    
+    public static Config getConfig() {
+        if (config == null) {
+           config = new RSAAutoCertificateConfig.Builder()
+                   .merchantId(merchantId)
+                   .privateKeyFromPath(privateKeyPath)
+                   .merchantSerialNumber(merchantSerialNumber)
+                   .apiV3Key(apiV3Key)
+                   .build();
+        }
+        
+        return config;
+    }
+
+    public static NotificationConfig getNConfig() {
+        if (nConfig == null) {
+            nConfig = new RSAAutoCertificateConfig.Builder()
+                    .merchantId(merchantId)
+                    .privateKeyFromPath(privateKeyPath)
+                    .merchantSerialNumber(merchantSerialNumber)
+                    .apiV3Key(apiV3Key)
+                    .build();
+        }
+
+        return nConfig;
+    }
+    
+    public static H5Service getService() {        
+        if (service == null) {
+            service = new H5Service.Builder().config(getConfig()).build();
+        }
+        
+        return service;
+    }
+}

+ 46 - 0
src/main/java/common/utils/wechat/WeChatService.java

@@ -0,0 +1,46 @@
+package common.utils.wechat;
+
+import com.wechat.pay.java.core.notification.NotificationConfig;
+import com.wechat.pay.java.core.notification.NotificationParser;
+import com.wechat.pay.java.core.notification.RequestParam;
+import com.wechat.pay.java.service.payments.h5.model.PrepayRequest;
+import com.wechat.pay.java.service.payments.h5.model.PrepayResponse;
+import com.wechat.pay.java.service.payments.h5.H5Service;
+import com.wechat.pay.java.service.payments.model.Transaction;
+
+public class WeChatService {
+    static H5Service h5Service = WeChatConfig.getService();
+
+    /** H5支付下单 */
+    public static PrepayResponse prepay() {
+        PrepayRequest request = new PrepayRequest();
+        // 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
+        // 调用接口
+        return h5Service.prepay(request);
+    }
+
+    // 将请求体解析为tx
+    public static Transaction parseTransaction(String requestBody, 
+                                               String wechatPaySerial, 
+                                               String wechatpayNonce, 
+                                               String wechatSignature, 
+                                               String wechatTimestamp) {
+        // 构造 RequestParam
+        RequestParam requestParam = new RequestParam.Builder()
+                .serialNumber(wechatPaySerial)
+                .nonce(wechatpayNonce)
+                .signature(wechatSignature)
+                .timestamp(wechatTimestamp)
+                .body(requestBody)
+                .build();
+
+        // 如果已经初始化了 NotificationConfig,可直接使用
+        NotificationConfig config = WeChatConfig.getNConfig();
+
+        // 初始化 NotificationParser
+        NotificationParser parser = new NotificationParser(config);
+        
+        // 直接返回tx
+        return parser.parse(requestParam, Transaction.class);
+    }
+}

+ 3 - 3
src/main/java/modules/order/OrderService.java

@@ -5,7 +5,7 @@ import com.jfinal.aop.Inject;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
-import common.model.DepositLog;
+import common.model.BalanceLog;
 import common.model.Order;
 import common.model.OrderLog;
 import common.model.User;
@@ -54,7 +54,7 @@ public class OrderService {
                 if (!user.update()) {
                     throw new RuntimeException("创建信息时,用户信息更新失败 user id: " + user.getId());
                 }
-                DepositLog l = new DepositLog();
+                BalanceLog l = new BalanceLog();
                 l.set("create_time", System.currentTimeMillis());
                 l.set("is_deleted", 0);
                 l.set("description", "用户购买NFT:" + nfttId + ",消费"); // 描述中带上百分比
@@ -173,7 +173,7 @@ public class OrderService {
                     throw new RuntimeException("火花归还失败"); // 抛出异常触发回滚
                 }
                 // 6. 火花归还记录
-                DepositLog l = new DepositLog();
+                BalanceLog l = new BalanceLog();
                 l.set("create_time", System.currentTimeMillis());
                 l.set("is_deleted", 0);
                 l.set("description", "用户取消订单:" + orderId + ",退还"); // 描述中带上百分比

+ 6 - 6
src/main/java/modules/deposit/DepositLogService.java → src/main/java/modules/user/BalanceLogService.java

@@ -1,7 +1,7 @@
-package modules.deposit;
+package modules.user;
 
 import com.jfinal.plugin.activerecord.Db;
-import common.model.DepositLog;
+import common.model.BalanceLog;
 import common.utils.http.MyRet;
 
 import java.util.ArrayList;
@@ -9,9 +9,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class DepositLogService {
-    public DepositLog findByOrderNo(String orderNo) {
-        return DepositLog.dao.findFirst("SELECT * FROM t_deposit_log WHERE hyg_order_no=?", orderNo);
+public class BalanceLogService {
+    public BalanceLog findByOrderNo(String orderNo) {
+        return BalanceLog.dao.findFirst("SELECT * FROM t_deposit_log WHERE hyg_order_no=?", orderNo);
     }
     
     public MyRet findForUser(int pageNumber, int pageSize, long userId) {
@@ -31,7 +31,7 @@ public class DepositLogService {
         paramsForList.add(offset);
         paramsForList.add(pageSize);
         
-        List<DepositLog> logs = DepositLog.dao.find(listSql, paramsForList.toArray());
+        List<BalanceLog> logs = BalanceLog.dao.find(listSql, paramsForList.toArray());
         // 如果列表为空,直接返回
         if (logs.isEmpty()) {
             Map<String, Object> response = new HashMap<>(); // 准备返回结构

+ 67 - 60
src/main/java/modules/user/UserController.java

@@ -1,25 +1,26 @@
 package modules.user;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jdcloud.sdk.service.sms.model.BatchSendResponse;
 import com.jfinal.aop.Before;
 import com.jfinal.aop.Inject;
+import com.jfinal.json.Json;
 import com.jfinal.kit.HashKit;
+import com.jfinal.kit.HttpKit;
 import com.jfinal.kit.StrKit;
+import com.wechat.pay.java.service.payments.model.Transaction;
 import common.interceptor.LoginInterceptor;
 import common.interceptor.empty.EmptyInterface;
 import common.interceptor.role.RequiredRoleInterface;
 import common.jfinal.AppConfig;
-import common.model.DepositLog;
+import common.model.Deposit;
 import common.model.User;
 import common.utils.http.MyController;
 import common.utils.http.MyRet;
 import common.utils.http.VerifyCode;
 import common.utils.hyg.AESUtils;
-import common.utils.hyg.HygSDK;
 import common.utils.jdcloud.SMS;
-import modules.deposit.DepositLogService;
+import common.utils.wechat.WeChatService;
 import modules.order.OrderService;
 
 import java.util.HashMap;
@@ -40,7 +41,7 @@ public class UserController extends MyController {
     private UserService service;
     
     @Inject
-    private DepositLogService depositLogService;
+    private BalanceLogService depositLogService;
 
     @Inject
     private OrderService orderService;
@@ -385,70 +386,76 @@ public class UserController extends MyController {
         }
     }
     
-    // 慧用工充值回调地址
-    public void hygDeposited() {
-        JSONObject requestBodyJson = MyController.getJsonModelByRequestAndType(getRequest(), JSONObject.class);
-
-        AppConfig.LOGGER.info("hygDeposited {}", requestBodyJson);
-
-        // 每条回调都保存到数据库
-        DepositLog log = new DepositLog();
-        log.setCreateTime(System.currentTimeMillis());
-        log.setHygOriginal(requestBodyJson.toJSONString());
-        log.setIsDeleted(0);
+    // 微信充值回调地址
+    public void wxDeposited() {
+        String originalBody = HttpKit.readData(getRequest());
+        AppConfig.LOGGER.info("wx notify {}", originalBody);
+
+        // 保证每条回调都保存到数据库
+        Deposit deposit = new Deposit();
+        deposit.setCreateTime(System.currentTimeMillis());
+        deposit.setWxOriginal(originalBody);
+        deposit.setIsDeleted(0);
         
-        // 解析businessBody
-        String businessBodyEncryptedHex = requestBodyJson.getString("businessBody");
         try {
-            String body = AESUtils.decryptByHex(businessBodyEncryptedHex);
-            JSONObject businessBody = JSONObject.parseObject(body);
+            // 获取回调通知中的相关数据
+            String wechatPaySerial = getRequest().getHeader("Wechatpay-Serial");
+            String wechatpayNonce = getRequest().getHeader("Wechatpay-Nonce");
+            String wechatSignature = getRequest().getHeader("Wechatpay-Signature");
+            String wechatTimestamp = getRequest().getHeader("Wechatpay-Timestamp");
+
+            // 解析完成
+            Transaction tx = WeChatService.parseTransaction(originalBody, wechatPaySerial, wechatpayNonce, wechatSignature, wechatTimestamp);
+            Json json = Json.getJson();
+            String txJson = json.toJson(tx);
+
+            // // 这里开始进行日志记录
+            // String payerAccount = businessBody.getString("businessBody");
+            // String orderNo = businessBody.getString("orderNo");
+            // // 不要重复处理已存在的充值单号,并且要加款成功
+            // if (depositLogService.findByOrderNo(orderNo) == null && businessBody.getString("rechargeStatus").equals("20")) {
+            //     User user = service.findUserByBankCard(payerAccount);
+            //
+            //     // 有充值信息但是未找到充值者
+            //     Integer paymentAmount = businessBody.getInteger("paymentAmount");
+            //     if (user == null) {
+            //         log.setDescription("未找到充值者");
+            //         log.setAmount(paymentAmount);
+            //         log.setUserId((long) -1);
+            //     } else {
+            //         // 对用户进行充值
+            //         user.setBalance(user.getBalance() + paymentAmount);
+            //         user.update();
+            //
+            //         // 交易者信息存档
+            //         log.setDescription("用户充值");
+            //         log.setAmount(paymentAmount);
+            //         log.setUserId(user.getId());
+            //     }
+            // }
+
+            // 日志入库
+            deposit.setWxDecrypted(txJson);
+            deposit.update();
             
-            // 这里开始进行日志记录
-            String payerAccount = businessBody.getString("businessBody");
-            String orderNo = businessBody.getString("orderNo");
-            // 不要重复处理已存在的充值单号,并且要加款成功
-            if (depositLogService.findByOrderNo(orderNo) == null && businessBody.getString("rechargeStatus").equals("20")) {
-                User user = service.findUserByBankCard(payerAccount);
-                
-                // 有充值信息但是未找到充值者
-                Integer paymentAmount = businessBody.getInteger("paymentAmount");
-                if (user == null) {
-                    log.setDescription("未找到充值者");
-                    log.setAmount(paymentAmount);
-                    log.setUserId((long) -1);
-                } else {
-                    // 对用户进行充值
-                    user.setBalance(user.getBalance() + paymentAmount);
-                    user.update();
-                    
-                    // 交易者信息存档
-                    log.setDescription("用户充值");
-                    log.setAmount(paymentAmount);
-                    log.setUserId(user.getId());
-                }
-
-                // 日志入库
-                log.setHygOrderNo(orderNo);
-                log.setHygDecrypted(body);
-                log.save();
-            }
+            AppConfig.LOGGER.info("入库成功 {}", deposit);
 
-            // 给慧用工的回调信息
-            Map<String, Object> responseJson = new HashMap<>();
-            responseJson.put("statusCode", "000000");
-            responseJson.put("statusText", "回调成功");
-            renderJson(responseJson);
+            // 成功入库后给微信的回调信息
+            getResponse().setStatus(200);
+            renderText("");
         } catch (Exception e) {
+            // 回调日志入库
+            deposit.save();
+            
             Map<String, Object> responseJson = new HashMap<>();
-            responseJson.put("statusCode", "100000");
-            responseJson.put("statusText", "回调失败 " + e.getMessage());
+            responseJson.put("code", "FAIL");
+            responseJson.put("message", "回调失败 " + e.getMessage());
 
-            AppConfig.LOGGER.info("回调失败 " + e.getMessage());
+            AppConfig.LOGGER.error("回调失败 {}", e.getMessage());
 
+            // 返回500错误码
+            getResponse().setStatus(500);
             renderJson(responseJson);
-
-            // 回调日志入库
-            log.save();
         }
     }
 

+ 7 - 7
src/main/java/modules/user/UserTeamShareTask.java

@@ -3,7 +3,7 @@ package modules.user;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import common.jfinal.AppConfig;
-import common.model.DepositLog;
+import common.model.BalanceLog;
 import common.model.Nftt;
 import common.model.Order;
 import common.model.User;
@@ -57,7 +57,7 @@ public class UserTeamShareTask implements Runnable {
         }
 
         // 记录分润日志
-        DepositLog log = new DepositLog();
+        BalanceLog log = new BalanceLog();
         log.set("create_time", System.currentTimeMillis());
         log.set("is_deleted", 0);
         log.set("description", description + " " + percentage.intValue() + "%"); // 描述中带上百分比
@@ -126,7 +126,7 @@ public class UserTeamShareTask implements Runnable {
 
         // 记录分润日志
         String description = "直推分润";
-        DepositLog log = new DepositLog();
+        BalanceLog log = new BalanceLog();
         log.set("create_time", System.currentTimeMillis());
         log.set("is_deleted", 0);
         log.set("description", description + " " + percentage.intValue() + "%"); // 描述中带上百分比
@@ -201,7 +201,7 @@ public class UserTeamShareTask implements Runnable {
 
         // 现在,你可以遍历 userOrderCounts,结合 userMap 进行分润处理
         List<User> usersToUpdate = new ArrayList<>();
-        List<DepositLog> depositLogsToSave = new ArrayList<>();
+        List<BalanceLog> depositLogsToSave = new ArrayList<>();
 
         // 假设分润规则是:每个用户获得的总利润 = (该用户的有效订单数量 / 所有用户的总有效订单数量) * 总利润
         // 或者:简单地每个用户的固定份额
@@ -254,7 +254,7 @@ public class UserTeamShareTask implements Runnable {
             usersToUpdate.add(user);
 
             // 创建分润日志
-            DepositLog log1 = new DepositLog();
+            BalanceLog log1 = new BalanceLog();
             log1.set("create_time", System.currentTimeMillis());
             log1.set("is_deleted", 0);
             log1.set("description", "4%作为NFT持有者分享," + validOrderCount + " / " + totalValidOrders); // 加入订单数量信息
@@ -262,7 +262,7 @@ public class UserTeamShareTask implements Runnable {
             log1.set("user_id", userId);
             depositLogsToSave.add(log1);
             
-            DepositLog log2 = new DepositLog();
+            BalanceLog log2 = new BalanceLog();
             log2.set("create_time", System.currentTimeMillis());
             log2.set("is_deleted", 0);
             log2.set("description", "NFT持有者共享总数的10%," + validOrderCount + " / " + nftt.getMaxQuantity()); // 加入订单数量信息
@@ -289,7 +289,7 @@ public class UserTeamShareTask implements Runnable {
     @Override
     public void run() {
         // 确保整个分润过程在一个数据库事务中
-        // 因为操作涉及到多个 User 和 DepositLog 的更新和插入
+        // 因为操作涉及到多个 User 和 BalanceLog 的更新和插入
         Db.tx(() -> {
             try {
                 this.class1();

+ 1 - 1
src/main/java/modules/withdraw/WithdrawMaintenanceTask.java

@@ -108,7 +108,7 @@ public class WithdrawMaintenanceTask implements Runnable {
                         user.update();
 
                         // 3. 资金流水处理
-                        DepositLog l = new DepositLog();
+                        BalanceLog l = new BalanceLog();
                         l.set("create_time", System.currentTimeMillis());
                         l.set("is_deleted", 0);
                         l.set("description", "提现失败退还,慧用工原因:" + remark); // 描述中带上百分比

+ 4 - 4
src/main/java/modules/withdraw/WithdrawService.java

@@ -3,7 +3,7 @@ package modules.withdraw;
 import com.alibaba.fastjson.JSONObject;
 import com.jfinal.plugin.activerecord.Db;
 import common.jfinal.AppConfig;
-import common.model.DepositLog;
+import common.model.BalanceLog;
 import common.model.User;
 import common.model.Withdraw;
 import common.utils.http.MyRet;
@@ -52,7 +52,7 @@ public class WithdrawService {
                 withdraw.setIsDeleted(0);
 
                 // 保存资金流水
-                DepositLog l = new DepositLog();
+                BalanceLog l = new BalanceLog();
                 l.set("create_time", System.currentTimeMillis());
                 l.set("is_deleted", 0);
                 l.set("description", "用户提现:" + amount); // 描述中带上百分比
@@ -111,7 +111,7 @@ public class WithdrawService {
                     }
 
                     // 保存资金流水
-                    DepositLog l = new DepositLog();
+                    BalanceLog l = new BalanceLog();
                     l.set("create_time", System.currentTimeMillis());
                     l.set("is_deleted", 0);
                     l.set("description", "慧用工转款失败退还"); // 描述中带上百分比
@@ -161,7 +161,7 @@ public class WithdrawService {
                 }
 
                 // 管理员拒绝
-                DepositLog l = new DepositLog();
+                BalanceLog l = new BalanceLog();
                 l.set("create_time", System.currentTimeMillis());
                 l.set("is_deleted", 0);
                 l.set("description", "管理员拒绝提现,请查看原因"); // 描述中带上百分比