From 4e5138fdfd60edf0d67787582905dfcc0801d667 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 20 Nov 2025 17:38:10 +0800
Subject: [PATCH] 多ip地址登录

---
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 42 insertions(+), 15 deletions(-)

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 24260d4..97e67d1 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
@@ -2,6 +2,7 @@
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.util.*;
 import java.util.regex.Pattern;
@@ -15,12 +16,15 @@
 import com.yami.trading.bean.model.MoneyLog;
 import com.yami.trading.bean.model.User;
 import com.yami.trading.bean.model.Wallet;
+import com.yami.trading.bean.rate.domain.ExchangeRate;
 import com.yami.trading.common.constants.Constants;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.BusinessException;
+import com.yami.trading.common.exception.YamiShopBindException;
 import com.yami.trading.dao.loan.LoanParamMapper;
 import com.yami.trading.service.MoneyLogService;
 import com.yami.trading.service.WalletService;
+import com.yami.trading.service.rate.ExchangeRateService;
 import com.yami.trading.service.user.UserService;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
@@ -58,6 +62,9 @@
 
 	@Autowired
 	LoanParamMapper loanParamMapper;
+
+	@Autowired
+	ExchangeRateService exchangeRateService;
 
 	@Getter
 	HashMap<String,Object> paramMap = new HashMap<>();
@@ -379,17 +386,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 +422,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 +440,21 @@
 			}
 			//到账金额
 			double amt = loanOrder.getQuota().doubleValue();
+			if (!loanOrder.getSymbol().equalsIgnoreCase("usdt")) {
+				ExchangeRate exchangeRate = exchangeRateService.findBy(ExchangeRate.IN, loanOrder.getSymbol().toUpperCase());
+				if (exchangeRate == null) {
+					throw new YamiShopBindException("汇率未设置!");
+				}
+				BigDecimal money = BigDecimal.valueOf(amt).divide(exchangeRate.getRata(), 8, RoundingMode.HALF_UP);
+				amt = money.doubleValue();
+			}
+
+			User user = userService.getById(loanOrder.getPartyId());
+			double remainLoanLimit  = user.getLoanLimit() - amt  < 0 ? 0 : user.getLoanLimit() - amt;
+			BigDecimal loanLimit =  BigDecimal.valueOf(remainLoanLimit).setScale(2, RoundingMode.HALF_UP);
+			user.setLoanLimit(loanLimit.doubleValue());
+			userService.updateById(user);
+
 			//通过
 			Wallet wallet = this.walletService.saveWalletByPartyId(loanOrder.getPartyId());
 			double amountBefore = wallet.getMoney().doubleValue();
@@ -439,11 +462,11 @@
 			MoneyLog log = new MoneyLog();
 			log.setCategory(Constants.MONEYLOG_CATEGORY_LOAN);
 			log.setAmountBefore(new BigDecimal(amountBefore));
-			log.setAmount(new BigDecimal(amt));
-			log.setAmountAfter(wallet.getMoney().add(BigDecimal.valueOf(amt)));
+			log.setAmount(loanOrder.getQuota());
+			log.setAmountAfter(BigDecimal.valueOf(amountBefore + amt));
 			log.setLog("借贷放款,订单号[" + loanOrder.getUuid() + "]");
 			log.setUserId(loanOrder.getPartyId());
-			log.setWalletType(Constants.WALLET);
+			log.setWalletType(loanOrder.getSymbol().toUpperCase());
 			log.setContentType(Constants.MONEYLOG_CONTENT_LOAN_ADD);
 			moneyLogService.save(log);
 		}
@@ -515,18 +538,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 +615,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 +628,7 @@
 				simpleLoanOrder.setTotalInterest(totalInterest);
 				simpleLoanOrder.setRemainQuota(simpleLoanOrder.getTerm() - remainQuota.intValue());
 			}						
-		}
+		}*/
 		return simpleLoanOrderList;
 	}
 
@@ -616,8 +639,8 @@
 	@Override
 	public Result getLoanParamList(int pageNum, int pageSize) {
 		try {
-			Page<LoanParam> page = new Page<>(pageNum, pageSize);
-			page = loanParamMapper.selectPage(page, null);
+			Page page = new Page(pageNum, pageSize);
+			page = loanParamMapper.getLoanParamList(page);
 			return Result.succeed(page);
 		} catch (Exception e) {
 			log.error(e.getMessage());
@@ -628,7 +651,11 @@
 	@Override
 	public Result saveLoanParam(LoanParam model) {
 		try {
+			if (model.getLending_institution() == null || model.getLending_institution().isEmpty()) {
+				model.setLending_institution("1");
+			}
 			if (model.getUuid() != 0) {
+				System.out.println(model);
 				if (loanParamMapper.updateById(model) > 0) {
 					return Result.succeed("修改成功");
 				}

--
Gitblit v1.9.3