From 4e780124de0131ee79688f3a9fdd13e5ed1ff9b0 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 11 Nov 2025 18:41:41 +0800
Subject: [PATCH] 借款修改
---
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java | 4 +
trading-order-bean/src/main/java/com/yami/trading/bean/model/User.java | 3
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java | 3
trading-order-admin/src/main/java/com/yami/trading/admin/model/UpdateUserModel.java | 3
trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/UserDataDto.java | 3
trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java | 27 ++++--
trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/LoanController.java | 117 ++++++++++++++++------------
trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/AdminLoanController.java | 22 +++--
8 files changed, 112 insertions(+), 70 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/AdminLoanController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/AdminLoanController.java
index 3783e3a..34d7b21 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/AdminLoanController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/AdminLoanController.java
@@ -324,8 +324,8 @@
// String term=getParamValue(request,modelAndView,"term");
// if(null==term) return modelAndView;
- String term=request.getString("term");
- if(null==term) return Result.failed("term is null");
+ /*String term=request.getString("term");
+ if(null==term) return Result.failed("term is null");*/
// String quota=getParamValue(request,modelAndView,"quota");
// if(null==quota) return modelAndView;
@@ -338,11 +338,15 @@
String symbol=request.getString("symbol");
if(null==symbol) return Result.failed("symbol is null");
+
+ if (!symbol.equals("usdt") && !symbol.equals("USDT")) {
+ return Result.failed("仅支持usdt");
+ }
// String dailyRate=getParamValue(request,modelAndView,"dailyRate");
// if(null==dailyRate) return modelAndView;
- String dailyRate=request.getString("dailyRate");
+ /*String dailyRate=request.getString("dailyRate");
if(null==dailyRate) return Result.failed("dailyRate is null");
@@ -355,7 +359,7 @@
if(null==repayCycle) return Result.failed("repayCycle is null");
String createTime=request.getString("createTime");
- if(null==createTime) return Result.failed("createTime is null");
+ if(null==createTime) return Result.failed("createTime is null");*/
// String repayCycle=getParamValue(request,modelAndView,"repayCycle");
// if(null==repayCycle) return modelAndView;
@@ -376,17 +380,16 @@
// String img_idimg_3=getParamValue(request,modelAndView,"img_idimg_3");
// //if(null==img_idimg_3) return modelAndView;
- String img_idimg_1=request.getString("img_idimg_1");
+ /*String img_idimg_1=request.getString("img_idimg_1");
if(null==img_idimg_1) return Result.failed("img_idimg_1 is null");
String img_idimg_2=request.getString("img_idimg_2");
if(null==img_idimg_2) return Result.failed("img_idimg_2 is null");
- String img_idimg_3=request.getString("img_idimg_3");
+ String img_idimg_3=request.getString("img_idimg_3");*/
//if(null==img_idimg_3) return Result.failed("img_idimg_3 is null");
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
SimpleLoanOrder simpleLoanOrder=new SimpleLoanOrder(new BigDecimal(quota),symbol,id);
- simpleLoanOrder.setRepayCycle(new Integer(repayCycle));
+/* simpleLoanOrder.setRepayCycle(new Integer(repayCycle));
simpleLoanOrder.setRepayment(new Integer(repayment));
simpleLoanOrder.setDailyRate(new BigDecimal(dailyRate));
simpleLoanOrder.setTerm(new Integer(term));
@@ -403,10 +406,9 @@
// return modelAndView;
logger.error("error:", e);
return Result.failed("1",e.getMessage());
- }
+ }*/
try {
- System.out.println("-------------------------------");
boolean flag=loanService.modLoanOrder(simpleLoanOrder);
if(flag) {
// modelAndView.addObject("message","借贷申请单修改成功!");
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/LoanController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/LoanController.java
index f9e2cce..57cb467 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/LoanController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/LoanController.java
@@ -14,10 +14,13 @@
import cn.hutool.core.util.StrUtil;
import com.yami.trading.bean.loan.LoanParam;
import com.yami.trading.bean.loan.SimpleLoanOrder;
+import com.yami.trading.bean.model.User;
import com.yami.trading.common.util.DateTimeTools;
import com.yami.trading.common.util.UUIDGenerator;
import com.yami.trading.common.web.ResultObject;
import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.syspara.SysparaService;
+import com.yami.trading.service.user.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,23 +42,29 @@
*/
@Autowired
private LoanService loanService;
-
+
+ @Autowired
+ UserService userService;
+
+ @Autowired
+ SysparaService sysparaService;
+
/**
* Token服务
*/
// @Autowired
// private TokenService tokenService;
-
+
/**
* SLF4J日志组件
*/
private static final Logger logger = LoggerFactory.getLogger(LoanController.class);
-
+
/**
* 借贷额度正则式
*/
private static final Pattern QUOTA_REGEX=Pattern.compile("([A-Z]{2,8}):([1-9]{1}[0-9]{0,7})");
-
+
/**
* 获取借贷参数
* @param configId 配置ID
@@ -64,7 +73,7 @@
@RequestMapping("/api/loan!get.action")
public ResultObject getParams(String configId) {
ResultObject resultObject = new ResultObject();
-
+
try {
HashMap<String,Object> paramMap=loanService.getLoanParams(configId);
if(null==paramMap) {
@@ -80,10 +89,10 @@
resultObject.setMsg("程序错误");
logger.error("error:", e);
}
-
+
return resultObject;
}
-
+
/**
* 获取借贷参数
* @param request 配置ID
@@ -100,10 +109,10 @@
resultObject.setCode("1");
resultObject.setMsg("程序错误");
logger.error("error:", e);
- }
+ }
return resultObject;
}
-
+
/**
* 提交借贷申请
* @param request 请求对象
@@ -112,14 +121,14 @@
@RequestMapping("/api/loan!apply.action")
public ResultObject apply(HttpServletRequest request) {
ResultObject resultObject = new ResultObject();
-
+
// String token=request.getParameter("token");
// if(null==token || (token=token.trim()).isEmpty()) {
// resultObject.setCode("1");
// resultObject.setMsg("从请求参数中获取Token为空!");
// return resultObject;
// }
-
+
// String partyId=tokenService.cacheGet(token);
String partyId = SecurityUtils.getCurrentUserId();
if(null==partyId) {
@@ -127,10 +136,10 @@
resultObject.setMsg("通过Token获取partyId为空!");
return resultObject;
}
-
- String term=getParamValue(request,resultObject,"term");
- if(null==term) return resultObject;
-
+
+ /*String term=getParamValue(request,resultObject,"term");
+ if(null==term) return resultObject;*/
+
String quota=getParamValue(request,resultObject,"quota");
if(null==quota) return resultObject;
if (Integer.parseInt(quota) <= 0) {
@@ -138,51 +147,59 @@
resultObject.setMsg("请输入正确金额");
return resultObject;
}
-
- String symbol=getParamValue(request,resultObject,"symbol");
+
+ User party = userService.getById(partyId);
+ if (party.getLoanLimit() == 0 || Integer.parseInt(quota) > party.getLoanLimit()) {
+ resultObject.setCode("1");
+ resultObject.setMsg("贷款额度不足");
+ return resultObject;
+ }
+
+ /*String symbol=getParamValue(request,resultObject,"symbol");
if(null==symbol) return resultObject;
-
+
String dailyRate=getParamValue(request,resultObject,"dailyRate");
if(null==dailyRate) return resultObject;
-
+
String repayment=getParamValue(request,resultObject,"repayment");
if(null==repayment) return resultObject;
-
+
String repayCycle=getParamValue(request,resultObject,"repayCycle");
if(null==repayCycle) return resultObject;
-
+
String lendingInstitution=getParamValue(request,resultObject,"lendingInstitution");
if(null==lendingInstitution) return resultObject;
-
- String lendingName = getParamValue(request,resultObject,"lendingName");
+
+ String lendingName = getParamValue(request,resultObject,"lendingName");
if(null==lendingName) return resultObject;
-
+
String img_idimg_1=getParamValue(request,resultObject,"frontFile");
if(null==img_idimg_1) return resultObject;
String img_idimg_2=getParamValue(request,resultObject,"reverseFile");
if(null==img_idimg_2) return resultObject;
- /*String img_idimg_3=getParamValue(request,resultObject,"fileList");
- if(null==img_idimg_3) return resultObject;*/
+ String img_idimg_3=getParamValue(request,resultObject,"fileList");
+ if(null==img_idimg_3) return resultObject;
String houseImgs=new StringBuilder(img_idimg_1).append(",").append(img_idimg_2).toString();
-
+
String incomeImg=request.getParameter("incomeImg");
if(null==incomeImg || (incomeImg=incomeImg.trim()).isEmpty()) {
incomeImg=null;
- }
+ }*/
Date now = new Date();
- SimpleLoanOrder simpleLoanOrder=new SimpleLoanOrder(partyId,new BigDecimal(quota),symbol);
+ SimpleLoanOrder simpleLoanOrder=new SimpleLoanOrder(partyId,new BigDecimal(quota), "usdt");
String uuid = UUIDGenerator.getUUID();
simpleLoanOrder.setUuid(uuid);
- simpleLoanOrder.setLendingInstitution(new Integer(lendingInstitution));
- simpleLoanOrder.setRepayCycle(new Integer(repayCycle));
- simpleLoanOrder.setRepayment(new Integer(repayment));
- simpleLoanOrder.setDailyRate(new BigDecimal(dailyRate));
- simpleLoanOrder.setTerm(new Integer(term));
- simpleLoanOrder.setHouseImgs(houseImgs);
- simpleLoanOrder.setIncomeImg(incomeImg);
+ simpleLoanOrder.setLendingInstitution(null);
+ simpleLoanOrder.setRepayCycle(null);
+ simpleLoanOrder.setRepayment(null);
+ BigDecimal rate = new BigDecimal(sysparaService.find("loan_rate").getSvalue());
+ simpleLoanOrder.setDailyRate(rate);
+ simpleLoanOrder.setTerm(null);
+ simpleLoanOrder.setHouseImgs(null);
+ simpleLoanOrder.setIncomeImg(null);
simpleLoanOrder.setState(1);
- simpleLoanOrder.setLendingName(lendingName);
+ simpleLoanOrder.setLendingName(null);
simpleLoanOrder.setCreateTime(now);
try {
boolean flag = loanService.addLoanOrder(simpleLoanOrder);
@@ -200,10 +217,10 @@
resultObject.setMsg("程序错误");
logger.error("error:", e);
}
-
+
return resultObject;
}
-
+
/**
* 查看借贷申请单列表
* @param request 请求对象
@@ -212,14 +229,14 @@
@RequestMapping("/api/loan!getOrders.action")
public ResultObject getOrders(HttpServletRequest request) {
ResultObject resultObject = new ResultObject();
-
+
// String token=request.getParameter("token");
// if(null==token || (token=token.trim()).isEmpty()) {
// resultObject.setCode("1");
// resultObject.setMsg("从请求参数中获取Token为空!");
// return resultObject;
// }
-
+
// String partyId=tokenService.cacheGet(token);
String partyId = SecurityUtils.getCurrentUserId();
if(null==partyId) {
@@ -227,7 +244,7 @@
resultObject.setMsg("通过Token获取partyId为空!");
return resultObject;
}
-
+
HashMap<String,Object> paramMap=new HashMap<String,Object>();
paramMap.put("partyId", partyId);
paramMap.put("state", request.getParameter("state"));
@@ -263,10 +280,10 @@
resultObject.setMsg("程序错误");
logger.error("error:", e);
}
-
+
return resultObject;
}
-
+
/**
* 查看借贷申请单
* @param request 请求对象
@@ -275,7 +292,7 @@
@RequestMapping("/api/loan!getOrderDetail.action")
public ResultObject getOrderDetail(HttpServletRequest request) {
ResultObject resultObject = new ResultObject();
-
+
// String token=request.getParameter("token");
// if(null==token || (token=token.trim()).isEmpty()) {
// resultObject.setCode("1");
@@ -290,10 +307,10 @@
resultObject.setMsg("通过Token获取partyId为空!");
return resultObject;
}
-
+
String orderNo=getParamValue(request,resultObject,"orderNo");
if(null==orderNo) return resultObject;
-
+
try {
SimpleLoanOrder loanOrder=loanService.getLoanOrder(partyId,orderNo);
if(null!=loanOrder) {
@@ -308,10 +325,10 @@
resultObject.setMsg("程序错误");
logger.error("error:", e);
}
-
+
return resultObject;
}
-
+
/**
* 获取参数值
* @param request 请求对象
@@ -329,7 +346,7 @@
return paramValue;
}
}
-
+
/**
* 校验借贷额度是否有效
* @param resultObject 结果对象
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java
index 1f3b050..42cfea9 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java
@@ -379,17 +379,17 @@
transferMap.put("lendingInstitution", new Object[] {led,order.getLendingName()});
- Long starTimel = order.getCreateTime().getTime();
+ /*Long starTimel = order.getCreateTime().getTime();
Long num = endTimel - starTimel;
- Long remainQuota = num/24/60/60/1000;
+ Long remainQuota = num/24/60/60/1000;*/
order.setTotalInterest(BigDecimal.ZERO);
order.setRemainQuota(0);
- if(order.getState().intValue()==2||order.getState().intValue()==4) {
+ /*if(order.getState().intValue()==2||order.getState().intValue()==4) {
BigDecimal totalInterest = order.getDailyRate().multiply(new BigDecimal(remainQuota)).multiply(order.getQuota());
order.setTotalInterest(totalInterest);
order.setRemainQuota(order.getTerm() - remainQuota.intValue());
transferMap.put("totalInterest", totalInterest);
- }
+ } */
return transferMap;
}).collect(Collectors.toList());
@@ -415,6 +415,7 @@
}
@Override
+ @Transactional
public boolean updateLoanOrderState(String orderId, String status,String reason) {
if(null==orderId || (orderId=orderId.trim()).isEmpty()) {
throw new BusinessException("申请单ID不能为空!");
@@ -432,6 +433,12 @@
}
//到账金额
double amt = loanOrder.getQuota().doubleValue();
+
+ User user = userService.getById(loanOrder.getPartyId());
+ double remainLoanLimit = user.getLoanLimit() - amt;
+ user.setLoanLimit(remainLoanLimit < 0 ? 0 : remainLoanLimit);
+ userService.updateById(user);
+
//通过
Wallet wallet = this.walletService.saveWalletByPartyId(loanOrder.getPartyId());
double amountBefore = wallet.getMoney().doubleValue();
@@ -515,18 +522,18 @@
SimpleLoanOrder loanOrder=loanOrders.get(0);
String houseImgs=(String)loanOrder.getHouseImgs();
loanOrder.setHouseImgs(null==houseImgs?new String[0]:commaPattern.split(houseImgs));
- Date endDay = new Date();
+ /*Date endDay = new Date();
Long endTimel = endDay.getTime();
Long starTimel = loanOrder.getCreateTime().getTime();
Long num = endTimel - starTimel;
- Long remainQuota = num/24/60/60/1000;
+ Long remainQuota = num/24/60/60/1000;*/
loanOrder.setTotalInterest(BigDecimal.ZERO);
loanOrder.setRemainQuota(0);
- if(loanOrder.getState().intValue()==2||loanOrder.getState().intValue()==4) {
+ /*if(loanOrder.getState().intValue()==2||loanOrder.getState().intValue()==4) {
BigDecimal totalInterest = loanOrder.getDailyRate().multiply(new BigDecimal(remainQuota)).multiply(loanOrder.getQuota());
loanOrder.setTotalInterest(totalInterest);
loanOrder.setRemainQuota(loanOrder.getTerm() - remainQuota.intValue());
- }
+ }*/
return loanOrder;
}
@@ -592,7 +599,7 @@
List<SimpleLoanOrder> simpleLoanOrderList = jdbcTemplate.query(whereStatement.toString(), rowMapper);
//DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
- Date endDay = new Date();
+ /*Date endDay = new Date();
Long endTimel = endDay.getTime();
for(SimpleLoanOrder simpleLoanOrder : simpleLoanOrderList) {
Long starTimel = simpleLoanOrder.getCreateTime().getTime();
@@ -605,7 +612,7 @@
simpleLoanOrder.setTotalInterest(totalInterest);
simpleLoanOrder.setRemainQuota(simpleLoanOrder.getTerm() - remainQuota.intValue());
}
- }
+ }*/
return simpleLoanOrderList;
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
index 37da28e..a6bc6a7 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
@@ -110,6 +110,10 @@
if (model.getUserLevel() >= 0) {
user.setUserLevel(model.getUserLevel() * 10 + user.getUserLevel() % 10);
}
+ double loanLimit = model.getLoanLimit();
+ if (loanLimit >= 0) {
+ user.setLoanLimit(loanLimit);
+ }
userService.updateById(user);
String logtxt = MessageFormat.format(
"ip:" + IPHelper.getIpAddr() + ",管理员手动修改了用户信息,用户名:{0},原登录权限:{1},原是否业务锁定:{2},原提现权限:{3},原基础认证:{4},原备注:{5},原信用分:{6},现登录权限:{7},现是否业务锁定:{8},现提现权限:{9},现基础认证:{10},现备注:{11},现信用分:{12}",
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/model/UpdateUserModel.java b/trading-order-admin/src/main/java/com/yami/trading/admin/model/UpdateUserModel.java
index 646dbf0..849d153 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/model/UpdateUserModel.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/model/UpdateUserModel.java
@@ -31,4 +31,7 @@
@ApiModelProperty("实名认证")
private Boolean realNameAuthority;
+ @ApiModelProperty("剩余贷款额度")
+ private double loanLimit;
+
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
index a201b86..f4ca5b3 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
@@ -496,6 +496,9 @@
map.put("advancedverif", party.isHighlevelAuthority());
map.put("lastlogintime", party.getUserLasttime());
map.put("lastloginip", party.getUserLastip());
+ map.put("loanLimit", party.getLoanLimit());
+ map.put("loanRate", Double.valueOf(sysparaService.find("loan_rate").getSvalue()));
+
// 实名认证通过返回真实姓名
if (party.isRealNameAuthority()) {
map.put("name", kyc.getName());
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/model/User.java b/trading-order-bean/src/main/java/com/yami/trading/bean/model/User.java
index f9336be..8a56d31 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/model/User.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/model/User.java
@@ -192,6 +192,9 @@
@ApiModelProperty("登录权限")
private boolean loginAuthority = true;
+ //剩余贷款额度
+ private double loanLimit;
+
public BigDecimal getWithdrawLimitAmount() {
return withdrawLimitAmount == null ? new BigDecimal(0) : withdrawLimitAmount;
}
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/UserDataDto.java b/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/UserDataDto.java
index 3ad5a83..7c67304 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/UserDataDto.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/UserDataDto.java
@@ -81,6 +81,9 @@
@ApiModelProperty("提现权限")
private boolean withdrawAuthority;
+ @ApiModelProperty("剩余贷款额度")
+ private double loanLimit;
+
/**
* 用户邮箱
*/
--
Gitblit v1.9.3