From 8dcc757d17dd3bed804167a0aa640a978f10022c Mon Sep 17 00:00:00 2001
From: dd <gitluke@outlook.com>
Date: Tue, 21 Oct 2025 01:23:43 +0800
Subject: [PATCH] 1
---
ruoyi-system/src/main/java/com/ruoyi/system/domain/FundsLog.java | 53 +++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FundsLogServiceImpl.java | 29 +++++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java | 25 ++++++
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java | 6 +
ruoyi-system/src/main/java/com/ruoyi/system/service/FundsLogService.java | 23 +++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java | 5 +
ruoyi-system/src/main/java/com/ruoyi/system/domain/OperationType.java | 72 ++++++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/FundsLogMapper.java | 9 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java | 8 ++
9 files changed, 229 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
index 56bdf79..e3d864f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
@@ -17,6 +17,7 @@
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.dto.UserPolicyDto;
import com.ruoyi.system.mapper.UserPolicyMapper;
+import com.ruoyi.system.service.FundsLogService;
import com.ruoyi.system.service.GroupWelcomeConfigService;
import com.ruoyi.system.service.PaymentRecordService;
import com.ruoyi.system.service.UserAccountService;
@@ -50,6 +51,8 @@
private UserKycService userKycService;
@Autowired
private GroupWelcomeConfigService groupWelcomeConfigService;
+ @Autowired
+ private FundsLogService fundsLogService;
@Override
@@ -226,6 +229,9 @@
paymentRecord.setProductName(insuranceProduct.getProductName());
paymentRecord.setModePayment(3);
paymentRecordService.save(paymentRecord);
+
+ fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), insuranceProduct.getPremium(), OperationType.USER_ORDER);
+ // 生成资金日志
return Result.success();
}
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java
index 7768d0f..7d261b6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java
@@ -228,7 +228,10 @@
*/
@GetMapping("/getAccountPassword")
@Transactional
- public AjaxResult getAccountPassword(@RequestParam(value = "account") String account) {
+ public AjaxResult getAccountPassword(@RequestParam(value = "account",required = false) String account) {
+ if(ObjectUtil.isEmpty(account)){
+ return AjaxResult.error("请输入查询账号!");
+ }
UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<>(UserAccount.class)
.eq(UserAccount::getAccount, account)
);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
index 33b8258..a825d9f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
@@ -22,6 +22,7 @@
import com.ruoyi.system.domain.dto.UserPolicyDto;
import com.ruoyi.im.service.UserPolicyService;
import com.ruoyi.system.domain.out.UserTeamAndPositionOut;
+import com.ruoyi.system.service.FundsLogService;
import com.ruoyi.system.service.PaymentRecordService;
import com.ruoyi.system.service.UserAccountService;
import lombok.extern.slf4j.Slf4j;
@@ -69,6 +70,9 @@
@Autowired
PaymentRecordService paymentRecordService;
+
+ @Autowired
+ FundsLogService fundsLogService;
@Value("${pay.key}")
private String key;
@@ -243,6 +247,8 @@
userAccount.setBalance(userAccount.getBalance().add(userPolicy.getPremium()));
userAccountService.updateById(userAccount);
+ fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), userPolicy.getPremium(), OperationType.REFUND);
+
return AjaxResult.success("审批成功");
}
@@ -569,4 +575,23 @@
return AjaxResult.success("删除成功");
}
+ /**
+ * 保单列表
+ */
+ @GetMapping("/getFundsLogList")
+ public TableDataInfo getFundsLogList(@RequestParam(value = "account",required = false) String account,@RequestParam(value = "operationType",required = false) Integer operationType) {
+ startPage();
+
+ LambdaQueryWrapper<FundsLog> wrapper = new LambdaQueryWrapper<>();
+
+ if(StringUtils.isNotEmpty(account)){
+ wrapper.eq(FundsLog::getAccount,account);
+ }
+ if (ObjectUtil.isNotEmpty(operationType)){
+ wrapper.eq(FundsLog::getOperationType,operationType);
+ }
+ wrapper.orderByDesc(FundsLog::getCreateTime);
+ List<FundsLog> list = fundsLogService.list(wrapper);
+ return getDataTable(list);
+ }
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java
index d0be22c..c6bb604 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java
@@ -3,8 +3,10 @@
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.OperationType;
import com.ruoyi.system.domain.UserAccount;
import com.ruoyi.system.domain.UserKyc;
+import com.ruoyi.system.service.FundsLogService;
import com.ruoyi.system.service.UserAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +25,9 @@
@Autowired
UserAccountService userAccountService;
+
+ @Autowired
+ FundsLogService fundsLogService;
/**
* 用户资金操作
@@ -56,6 +61,9 @@
return AjaxResult.success("充值类型错误");
}
userAccountService.updateById(userAccount);
+
+ fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), money, type == 1 ? OperationType.ADMIN_RECHARGE : OperationType.ADMIN_DEDUCTION);
+
return AjaxResult.success("充值成功");
}catch (Exception e){
e.printStackTrace();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/FundsLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/FundsLog.java
new file mode 100644
index 0000000..eb8bec6
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/FundsLog.java
@@ -0,0 +1,53 @@
+package com.ruoyi.system.domain;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class FundsLog {
+
+ /**
+ * 主键ID
+ */
+ private Long id;
+
+ /**
+ * 用户ID
+ */
+ private Integer userId;
+
+ /**
+ * 账号
+ */
+ private String account;
+
+ /**
+ * 操作类型
+ * 1-后台充值 2-后台扣款 3-用户下单 4-退款
+ */
+ private Integer operationType;
+
+ /**
+ * 操作金额
+ */
+ private BigDecimal amount;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ private LocalDateTime updateTime;
+
+ // 构造方法
+ public FundsLog() {
+ this.createTime = LocalDateTime.now();
+ this.updateTime = LocalDateTime.now();
+ }
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/OperationType.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/OperationType.java
new file mode 100644
index 0000000..aa10062
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/OperationType.java
@@ -0,0 +1,72 @@
+package com.ruoyi.system.domain;
+
+/**
+ * 资金操作类型枚举
+ */
+public enum OperationType {
+
+ /**
+ * 后台充值 - 1
+ */
+ ADMIN_RECHARGE(1, "后台充值"),
+
+ /**
+ * 后台扣款 - 2
+ */
+ ADMIN_DEDUCTION(2, "后台扣款"),
+
+ /**
+ * 用户下单 - 3
+ */
+ USER_ORDER(3, "用户下单"),
+
+ /**
+ * 退款 - 4
+ */
+ REFUND(4, "退款");
+
+ private final int code;
+ private final String description;
+
+ OperationType(int code, String description) {
+ this.code = code;
+ this.description = description;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * 根据代码获取操作类型枚举
+ * @param code 操作类型代码
+ * @return 对应的枚举值,如果不存在返回null
+ */
+ public static OperationType getByCode(int code) {
+ for (OperationType type : values()) {
+ if (type.getCode() == code) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据描述获取操作类型枚举
+ * @param description 操作类型描述
+ * @return 对应的枚举值,如果不存在返回null
+ */
+ public static OperationType getByDescription(String description) {
+ for (OperationType type : values()) {
+ if (type.getDescription().equals(description)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FundsLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FundsLogMapper.java
new file mode 100644
index 0000000..dbadcdf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FundsLogMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.FundsLog;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface FundsLogMapper extends BaseMapper<FundsLog> {
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/FundsLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/FundsLogService.java
new file mode 100644
index 0000000..293fef9
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/FundsLogService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.domain.FundsLog;
+import com.ruoyi.system.domain.InvitationBlacklist;
+import com.ruoyi.system.domain.OperationType;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public interface FundsLogService extends IService<FundsLog> {
+
+
+ /**
+ * 后台充值
+ * @param userId 用户ID
+ * @param account 账户标识
+ * @param amount 充值金额
+ * @return 记录成功的资金日志ID
+ */
+ void addLog(Integer userId, String account, BigDecimal amount,OperationType operationType);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FundsLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FundsLogServiceImpl.java
new file mode 100644
index 0000000..8c8325e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FundsLogServiceImpl.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.domain.FundsLog;
+import com.ruoyi.system.domain.OperationType;
+import com.ruoyi.system.mapper.FundsLogMapper;
+import com.ruoyi.system.service.FundsLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Service
+public class FundsLogServiceImpl extends ServiceImpl<FundsLogMapper, FundsLog> implements FundsLogService {
+
+
+ @Override
+ public void addLog(Integer userId, String account, BigDecimal amount, OperationType operationType) {
+ // 创建资金日志记录
+ FundsLog fundsLog = new FundsLog();
+ fundsLog.setUserId(userId);
+ fundsLog.setAccount(account);
+ fundsLog.setOperationType(operationType.getCode());
+ fundsLog.setAmount(amount);
+ save(fundsLog);
+ }
+}
--
Gitblit v1.9.3