From 5ab1a38d6fb2532b26311a4e2f9fd5120227a303 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 14 Jul 2025 21:03:13 +0800
Subject: [PATCH] 地址

---
 src/main/java/project/contract/internal/AdminContractOrderServiceImpl.java |    1 
 src/main/java/security/SecUser.java                                        |   11 ++
 src/main/java/project/user/LocalNormalReg.java                             |   13 ---
 src/main/java/project/contract/internal/ContractOrderServiceImpl.java      |    7 +
 src/main/java/project/party/NormalReg.java                                 |   10 ++
 src/main/java/project/user/internal/LocalUserServiceImpl.java              |    1 
 src/main/java/project/web/admin/impl/user/AdminUserServiceImpl.java        |  113 +++++++++++++--------------
 src/main/java/project/project/web/admin/AdminContractOrderController.java  |   29 ++++++-
 src/main/java/project/web/api/LocalUserController.java                     |    6 +
 src/main/java/data/loadcache/WalletLoadCacheService.java                   |    4 
 src/main/java/project/web/admin/impl/user/AdminAgentServiceImpl.java       |    2 
 11 files changed, 115 insertions(+), 82 deletions(-)

diff --git a/src/main/java/data/loadcache/WalletLoadCacheService.java b/src/main/java/data/loadcache/WalletLoadCacheService.java
index 94d634b..43b732f 100644
--- a/src/main/java/data/loadcache/WalletLoadCacheService.java
+++ b/src/main/java/data/loadcache/WalletLoadCacheService.java
@@ -26,8 +26,8 @@
 	private RedisHandler redisHandler;
 
 	public void loadcache() {
-//		loadWallet();
-//		logger.info("完成Wallet数据加载redis");
+		loadWallet();
+		logger.info("完成Wallet数据加载redis");
 		loadWalletExtend();
 		logger.info("完成WalletExtend数据加载redis");
 		loadExchangeRate();
diff --git a/src/main/java/project/contract/internal/AdminContractOrderServiceImpl.java b/src/main/java/project/contract/internal/AdminContractOrderServiceImpl.java
index d596320..27b0501 100644
--- a/src/main/java/project/contract/internal/AdminContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/AdminContractOrderServiceImpl.java
@@ -66,6 +66,7 @@
 			queryString.append("AND (party.USERNAME like:username OR party.USERCODE like:username ) ");
 			parameters.put("username","%"+username+"%");
 		}
+		queryString.append(" GROUP BY  orders.UUID  ");
 		queryString.append(" order by orders.CREATE_TIME desc ");
 		Page page = this.pagedQueryDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
 
diff --git a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
index d8f6f08..ab32bc6 100644
--- a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
@@ -429,8 +429,11 @@
 		if (!StringUtils.isNullOrEmpty(endTime)) {
 			whereSql.append("AND DATE(CREATE_TIME)<=DATE('"+endTime+" 23:59:59') ");
 		}
-
-		whereSql.append("ORDER BY CREATE_TIME DESC LIMIT ?,?");
+		if ("orders".equals(type)) {
+			whereSql.append("ORDER BY CREATE_TIME DESC LIMIT ?,?");
+		} else if ("hisorders".equals(type)) {
+			whereSql.append("ORDER BY CLOSE_TIME DESC LIMIT ?,?");
+		}
 		params.add(page.getFirstElementNumber());
 		params.add(pageSize);
 
diff --git a/src/main/java/project/party/NormalReg.java b/src/main/java/project/party/NormalReg.java
index 4e782ea..116a084 100644
--- a/src/main/java/project/party/NormalReg.java
+++ b/src/main/java/project/party/NormalReg.java
@@ -30,6 +30,7 @@
 	 */
 	protected String username;
 
+	private String phone;
 	/**
 	 * 密码
 	 */
@@ -94,6 +95,15 @@
 		this.password = password;
 	}
 
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
 	public String getRolename() {
 		return rolename;
 	}
diff --git a/src/main/java/project/project/web/admin/AdminContractOrderController.java b/src/main/java/project/project/web/admin/AdminContractOrderController.java
index 41be9ab..d2941aa 100644
--- a/src/main/java/project/project/web/admin/AdminContractOrderController.java
+++ b/src/main/java/project/project/web/admin/AdminContractOrderController.java
@@ -3,11 +3,12 @@
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.MessageFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -116,7 +117,25 @@
 					String roleName = map.get("rolename").toString();
 					map.put("roleNameDesc", Constants.ROLE_MAP.containsKey(roleName) ? Constants.ROLE_MAP.get(roleName) : roleName);
 				}
+				Object createTimeObj = map.get("createTime");
+				ZonedDateTime berlinTime;
 
+				if (createTimeObj instanceof String) {
+					// 处理字符串格式 "2025-07-14T16:13:29" (ISO格式)
+					berlinTime = LocalDateTime.parse((String) createTimeObj)
+							.atZone(ZoneId.systemDefault())
+							.withZoneSameInstant(ZoneId.of("Europe/Berlin"));
+				} else if (createTimeObj instanceof LocalDateTime) {
+					// 处理 LocalDateTime 对象
+					berlinTime = ((LocalDateTime) createTimeObj)
+							.atZone(ZoneId.systemDefault())
+							.withZoneSameInstant(ZoneId.of("Europe/Berlin"));
+				} else {
+					throw new IllegalArgumentException("不支持的日期类型");
+				}
+
+				String formatted = berlinTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+				map.put("createTime", formatted);
 				double depositOpen =  Double.parseDouble(map.get("deposit_open").toString());
 				double leverRate = Double.parseDouble(map.get("lever_rate").toString());
 				double tradeAvgPrice =  Double.parseDouble(map.get("trade_avg_price").toString());
diff --git a/src/main/java/project/user/LocalNormalReg.java b/src/main/java/project/user/LocalNormalReg.java
index 48be704..b86f954 100644
--- a/src/main/java/project/user/LocalNormalReg.java
+++ b/src/main/java/project/user/LocalNormalReg.java
@@ -5,20 +5,7 @@
 public class LocalNormalReg extends SunLineReg {
 	private static final long serialVersionUID = 6591426198060900449L;
 
-
-
-	private String phone;
-
 	private String em;
-
-	public void  setPhone(String phone){
-		this.phone = phone;
-	}
-
-
-	public String  getPhone(){
-		return phone;
-	}
 
 
 	public void  seEm(String em){
diff --git a/src/main/java/project/user/internal/LocalUserServiceImpl.java b/src/main/java/project/user/internal/LocalUserServiceImpl.java
index 5e09e8f..220a2a9 100644
--- a/src/main/java/project/user/internal/LocalUserServiceImpl.java
+++ b/src/main/java/project/user/internal/LocalUserServiceImpl.java
@@ -281,6 +281,7 @@
 		secUser.getRoles().add(role);
 		secUser.setUsername(reg.getUsername());
 		secUser.setPassword(reg.getPassword());
+		secUser.setPhone(reg.getPhone());
 		this.secUserService.saveUser(secUser);
 
 		// usdt账户
diff --git a/src/main/java/project/web/admin/impl/user/AdminAgentServiceImpl.java b/src/main/java/project/web/admin/impl/user/AdminAgentServiceImpl.java
index 5698cbe..e6dcddb 100644
--- a/src/main/java/project/web/admin/impl/user/AdminAgentServiceImpl.java
+++ b/src/main/java/project/web/admin/impl/user/AdminAgentServiceImpl.java
@@ -227,7 +227,9 @@
 			AgentNodes nodes = new AgentNodes();
 			nodes.setTags(agent.getPartyId().toString());
 			nodes.setHref(url + "?partyId=" + agent.getPartyId().toString());
+			logger.info("-----------------agent----------"+ agent.getPartyId());
 			Party party = this.partyService.cachePartyBy(agent.getPartyId(),true);
+			logger.info("-----------------party----------"+party.toString());
 			String username = party.getUsername();
 			String name = party.getName();
 			if ((!StringUtils.isNullOrEmpty(loginPartyId)) && (!StringUtils.isNullOrEmpty(username))
diff --git a/src/main/java/project/web/admin/impl/user/AdminUserServiceImpl.java b/src/main/java/project/web/admin/impl/user/AdminUserServiceImpl.java
index fa92057..a6771bf 100644
--- a/src/main/java/project/web/admin/impl/user/AdminUserServiceImpl.java
+++ b/src/main/java/project/web/admin/impl/user/AdminUserServiceImpl.java
@@ -221,21 +221,21 @@
 	 * 交易所_用户管理
 	 */
 	public Page exchangePagedQuery(int pageNo, int pageSize, String name_para, String rolename,  String checkedPartyId, Boolean online, String loginIp_para) {
-		
+
 		StringBuffer queryString = new StringBuffer(
-				"SELECT party.UUID id, party.NAME name, party.USERNAME username, "
+				"SELECT party.UUID id, party.NAME name,su.PHONE, party.USERNAME username, "
 				+ " party.LOGINAUTHORITY login_authority, party.WITHDRAW_LIMIT_AMOUNT withdraw_limit_amount, party.WITHDRAW_LIMIT_NOW_AMOUNT withdraw_limit_now_amount, "
 				+ " party.LAST_LOGIN_TIME last_loginTime, party.ENABLED enabled, party.ROLENAME rolename, party.CREATE_TIME create_time, "
-				+ " party.REMARKS remarks, wallet.USDT_MONEY money, party.USERCODE usercode, "
+				+ " party.REMARKS remarks, wallet.MONEY money, party.USERCODE usercode, "
 				+ " party_parent.USERNAME username_parent, party.LOGIN_IP login_ip, party.GIFT_USER gift_user, party.USER_LEVEL user_level, "
 				+ " party.REGSITER_USERCODE register_usercode"
 				+ " ");
-		
+
 		queryString.append(
 				" FROM PAT_PARTY party LEFT JOIN PAT_USER_RECOM user ON user.PARTY_ID = party.UUID "
-				+ " LEFT JOIN T_WALLET_GATHER wallet ON wallet.PARTY_ID = party.UUID "
+				+ " LEFT JOIN T_WALLET wallet ON wallet.PARTY_ID = party.UUID "
 				+ " LEFT JOIN PAT_PARTY party_parent ON user.RECO_ID = party_parent.UUID "
-				
+				+ " LEFT JOIN SCT_USER su ON party.UUID = su.PARTY_UUID"
 				+ " WHERE 1 = 1 ");
 
 		Map<String, Object> parameters = new HashMap<String, Object>();
@@ -494,34 +494,37 @@
 		if (money_revise == 0 || coin_type == "") {
 			return;
 		}
-		WalletGatherService walletGatherService = new WalletGatherServiceImpl(jdbcTemplate,redisHandler,walletService);
-		WalletGather walletGather = walletGatherService.getWalletGatherByPartyId(partyId,null);
+
 		if ("usdt".equals(coin_type)) {
 			// 交易所修改usdt
 			Party party = this.partyService.cachePartyBy(partyId, false);
-			double amount_before = walletGather.getUsdtMoney();
-			if (Arith.add(money_revise, walletGather.getUsdtMoney()) < 0.0D) {
+
+			Wallet wallet = this.walletService.saveWalletByPartyId(partyId);
+			double amount_before = wallet.getMoney();
+			if (Arith.add(money_revise, wallet.getMoney()) < 0.0D) {
 				throw new BusinessException("操作失败!修正后账户余额小于0。");
 			}
-			
+
 			SecUser sec = this.secUserService.findUserByLoginName(operator_name);
-			String sysSafeword = sec.getSafeword();			
+			String sysSafeword = sec.getSafeword();
 			String safeword_md5 = this.passwordEncoder.encodePassword(safeword, operator_name);
 			if (!safeword_md5.equals(sysSafeword)) {
 				throw new BusinessException("资金密码错误");
 			}
-			//修改资金账户
-			walletGatherService.update(walletGather.getPartyId().toString(),coin_type,money_revise,"add");
+
+			// 更新金额
+			this.walletService.update(wallet.getPartyId().toString(), money_revise);
+
 			// 账变日志
 			MoneyLog moneyLog = new MoneyLog();
 			moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
 			moneyLog.setAmount_before(amount_before);
 			moneyLog.setAmount(money_revise);
-			moneyLog.setAmount_after(Arith.add(walletGather.getUsdtMoney(), money_revise));
+			moneyLog.setAmount_after(Arith.add(wallet.getMoney(), money_revise));
 			moneyLog.setPartyId(partyId);
 			moneyLog.setWallettype(Constants.WALLET);
 			moneyLog.setContent_type(Constants.MONEYLOG_CONTENT_RECHARGE);
-			
+
 			// 钱包日志
 			WalletLog walletLog = new WalletLog();
 			walletLog.setCategory(Constants.MONEYLOG_CATEGORY_RECHARGE);
@@ -531,84 +534,75 @@
 			walletLog.setAmount(money_revise);
 			walletLog.setWallettype("USDT");
 			this.walletLogService.save(walletLog);
-			
-			// 操作日志			
+
+			// 操作日志
 			Log log = new Log();
 			log.setCategory(Constants.LOG_CATEGORY_OPERATION);
 			log.setUsername(party.getUsername());
 			log.setOperator(operator_name);
-			
+
 			// change----添加赠送金额
 			if("change".equals(reset_type)) {
-				
+
 				// 只有正式用户才需要记录报表
 				if (null != party && Constants.SECURITY_ROLE_MEMBER.equals(party.getRolename())) {
 					this.userDataService.saveGiftMoneyHandle(partyId, money_revise);
 				}
-				
+
 				log.setLog("ip:"+ip+",管理员手动添加赠送金额。修改币种[usdt],修改数量[" + money_revise + "]");
 				moneyLog.setLog("管理员手动添加赠送金额");
-				
+
 				this.checkGiftUserLine(party);
 			}
-			
+
 			// recharge--添加充值金额
 			if("recharge".equals(reset_type)) {
-				
+
 				// 只有正式用户才需要记录报表
 				if (null != party && Constants.SECURITY_ROLE_MEMBER.equals(party.getRolename())) {
 					this.userDataService.saveRechargeHandle(partyId, money_revise, "usdt");
 				}
-				
+
 				log.setLog("ip:"+ip+",管理员手动添加充值金额。修改币种[usdt],修改数量[" + money_revise + "]");
 				moneyLog.setLog("管理员手动添加充值金额");
 			}
-			
+
 			this.moneyLogService.save(moneyLog);
 			this.logService.saveSync(log);
-						
-			// 充值到账后给他增加提现流水限制金额			
+
+			// 充值到账后给他增加提现流水限制金额
 			party.setWithdraw_limit_amount(Arith.add(party.getWithdraw_limit_amount(), money_revise));
 			this.partyService.update(party);
 		} else {
 			// 交易所修改btc、eth;DAPP修改质押账户(USDT)【USDT_DAPP】;DAPP演示用户修改DAPP余额【USDT_USER】;
 			Party party = this.partyService.cachePartyBy(partyId, false);
 
-
-			double amount_before = 0;
-			if("btc".equals(coin_type)){
-				amount_before = walletGather.getBtcMoney();
-			}else if ("eth".equals(coin_type)){
-				amount_before = walletGather.getEthMoney();
-			}
-			if (Arith.add(money_revise, amount_before) < 0.0D) {
+			WalletExtend walletExtend = this.walletService.saveExtendByPara(partyId, coin_type);
+			double amount_before = walletExtend.getAmount();
+			if (Arith.add(money_revise, walletExtend.getAmount()) < 0.0D) {
 				throw new BusinessException("操作失败!修正后账户余额小于0。");
 			}
-			
+
 			SecUser sec =  this.secUserService.findUserByLoginName(operator_name);
 			String sysSafeword =sec.getSafeword();
-			
+
 			String safeword_md5 = this.passwordEncoder.encodePassword(safeword, operator_name);
 			if (!safeword_md5.equals(sysSafeword)) {
 				throw new BusinessException("资金密码错误");
 			}
-			walletGatherService.update(walletGather.getPartyId().toString(),coin_type,money_revise,"add");
-			double amount = 0;
-			if("btc".equals(coin_type)){
-				amount = walletGather.getBtcMoney();
-			}else if ("eth".equals(coin_type)){
-				amount = walletGather.getEthMoney();
-			}
+
+			this.walletService.updateExtend(walletExtend.getPartyId().toString(), coin_type, money_revise);
+
 			// 账变日志
 			MoneyLog moneyLog = new MoneyLog();
 			moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
 			moneyLog.setAmount_before(amount_before);
 			moneyLog.setAmount(money_revise);
-			moneyLog.setAmount_after(Arith.add(amount, money_revise));
+			moneyLog.setAmount_after(Arith.add(walletExtend.getAmount(), money_revise));
 			moneyLog.setPartyId(partyId);
 			moneyLog.setWallettype(coin_type.toUpperCase());
 			moneyLog.setContent_type(Constants.MONEYLOG_CONTENT_RECHARGE);
-			
+
 			// 钱包日志
 			WalletLog walletLog = new WalletLog();
 			walletLog.setCategory(Constants.MONEYLOG_CATEGORY_RECHARGE);
@@ -618,28 +612,28 @@
 			walletLog.setAmount(money_revise);
 			walletLog.setWallettype(coin_type.toUpperCase());
 			walletLogService.save(walletLog);
-			
+
 			// 操作日志
 //			Party party = this.partyService.cachePartyBy(partyId, true);
 			Log log = new Log();
 			log.setCategory(Constants.LOG_CATEGORY_OPERATION);
 			log.setUsername(party.getUsername());
 			log.setOperator(operator_name);
-			
+
 			// recharge--添加充值金额
 			if("recharge".equals(reset_type)) {
 				String coin_str= "";
-				
+
 				if("USDT_DAPP".equals(coin_type)) {
 					coin_str="[质押账户(USDT)]";
-					
+
 					PledgeOrder entity_before = this.pledgeOrderService.findByPartyId(partyId);
 
 					if (entity_before == null) {
-						
+
 						PledgeConfig entity_config = this.pledgeConfigService.findById("2c948a827cd5f779017cd2322f5d0001");
 						PledgeOrder entity = new PledgeOrder();
-						
+
 						entity.setPartyId(partyId);
 						entity.setConfig(entity_config.getConfig());
 						entity.setUsdt(entity_config.getUsdt());
@@ -656,29 +650,30 @@
 
 //						entity.setSendtime(this.sendtime);
 						entity.setCreateTime(new Date());
-						
+
 						this.pledgeOrderService.save(entity);
-					}					
+					}
 				}
-				
+
 				if("USDT_USER".equals(coin_type)) {
 					coin_str="[用户钱包USDT映射]";
 				}
-				
+
 				// 只有正式用户才需要记录报表
 				if (null != party && Constants.SECURITY_ROLE_MEMBER.equals(party.getRolename())) {
 					this.userDataService.saveRechargeHandle(partyId, money_revise, coin_type);
 				}
-				
+
 				log.setLog("ip:"+ip+",管理员手动添加充值金额。修改币种["+coin_type+"]"+coin_str+",修改数量[" + money_revise + "]");
 				moneyLog.setLog("管理员手动添加充值金额");
 			}
-			
+
 			this.moneyLogService.save(moneyLog);
 			this.logService.saveSync(log);
 		}
 	}
 
+
 	/**
 	 * DAPP/交易所 修改余额 减少
 	 */
diff --git a/src/main/java/project/web/api/LocalUserController.java b/src/main/java/project/web/api/LocalUserController.java
index aecffab..8776533 100644
--- a/src/main/java/project/web/api/LocalUserController.java
+++ b/src/main/java/project/web/api/LocalUserController.java
@@ -395,6 +395,7 @@
 		String verifcode = request.getParameter("verifcode");
 		// 注册类型:1/手机;2/邮箱;3/用户名;
 		String type = request.getParameter("type");
+		String phone = request.getParameter("phone").replace(" ", "");
 		// 资金密码选填,不填默认 000000
 		String safeword = request.getParameter("safeword").replace(" ", "");
 		String re_safeword = request.getParameter("re_safeword").replace(" ", "");
@@ -414,7 +415,9 @@
 			if (StringUtils.isEmptyString(username)) {
 				throw new BusinessException("用户名不能为空");
 			}
-
+			if (StringUtils.isEmptyString(phone)) {
+				throw new BusinessException("手机号不能为空");
+			}
 			if (StringUtils.isEmptyString(password)) {
 				throw new BusinessException("登录密码不能为空");
 			}
@@ -484,6 +487,7 @@
 			reg.setPassword(password);
 			reg.setSafeword(safeword);
 			reg.setReco_usercode(usercode);
+			reg.setPhone(phone);
 
 			this.localUserService.saveRegisterNoVerifcode(reg, type);
 
diff --git a/src/main/java/security/SecUser.java b/src/main/java/security/SecUser.java
index 8ec1c8d..2e316ef 100644
--- a/src/main/java/security/SecUser.java
+++ b/src/main/java/security/SecUser.java
@@ -27,6 +27,9 @@
 	@Column(name="USERNAME")
 	private String username;// 登陆用户名
 
+	@Column(name="PHONE")
+	private String phone;// 手机号
+
 	@Column(name="PASSWORD")
 	private String password;// 密码
 
@@ -104,6 +107,14 @@
 		this.username = username;
 	}
 
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
 	public String getPassword() {
 		return password;
 	}

--
Gitblit v1.9.3