From 69d7ae376a58c399c97ee42e5ff7a13860cb2b7e Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 18 Jun 2025 16:23:23 +0800
Subject: [PATCH] 1

---
 src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java |  205 ++++++++++++++++-----------------------------------
 1 files changed, 65 insertions(+), 140 deletions(-)

diff --git a/src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java b/src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java
index 269b993..e1796a8 100644
--- a/src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java
+++ b/src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java
@@ -24,10 +24,7 @@
 import project.party.recom.UserRecomService;
 import project.tip.TipService;
 import project.user.UserDataService;
-import project.wallet.Wallet;
-import project.wallet.WalletExtend;
-import project.wallet.WalletLogService;
-import project.wallet.WalletService;
+import project.wallet.*;
 import project.withdraw.AdminWithdrawService;
 import project.withdraw.Withdraw;
 import security.SecUser;
@@ -51,7 +48,7 @@
 	private TipService tipService;
 	
 	@Override
-	public void saveReject(String id, String failure_msg, String userName, String partyId) {
+	public void saveReject(String id, String failure_msg, String userName, String partyId, WalletGatherService walletGatherService) {
 		Withdraw withdraw = this.get(id);
 
 		if (withdraw.getSucceeded() == 2 ) {// 通过后不可驳回
@@ -70,56 +67,41 @@
 			symbol = "btc";
 		} else if (withdraw.getMethod().indexOf("ETH") != -1) {
 			symbol = "eth";
+		}  else if (withdraw.getMethod().indexOf("USDC") != -1) {
+			symbol = "eth";
 		} else {
 			symbol = "usdt";
 		}
-		if ("usdt".equals(symbol)) {
-			Wallet wallet = walletService.saveWalletByPartyId(withdraw.getPartyId());
-
-			double amount_before = wallet.getMoney();
-
-			walletService.update(wallet.getPartyId().toString(),
-					Arith.add(withdraw.getAmount(), withdraw.getAmount_fee()));
-
-			/*
-			 * 保存资金日志
-			 */
-			MoneyLog moneyLog = new MoneyLog();
-			moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
-			moneyLog.setAmount_before(amount_before);
-			moneyLog.setAmount(Arith.add(withdraw.getAmount(), withdraw.getAmount_fee()));
-			moneyLog.setAmount_after(
-					Arith.add(amount_before, Arith.add(withdraw.getAmount(), withdraw.getAmount_fee())));
-
-			moneyLog.setLog("驳回提现[" + withdraw.getOrder_no() + "]");
-			// moneyLog.setExtra(withdraw.getOrder_no());
-			moneyLog.setPartyId(withdraw.getPartyId());
-			moneyLog.setWallettype(Constants.WALLET);
-			moneyLog.setContent_type(Constants.MONEYLOG_CONTENT_WITHDRAW);
-
-			moneyLogService.save(moneyLog);
-		} else {
-			WalletExtend walletExtend = walletService.saveExtendByPara(withdraw.getPartyId(), symbol);
-			double amount_before = walletExtend.getAmount();
-			walletService.updateExtend(withdraw.getPartyId().toString(), symbol, withdraw.getVolume());
-
-			/*
-			 * 保存资金日志
-			 */
-			MoneyLog moneyLog = new MoneyLog();
-			moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
-			moneyLog.setAmount_before(amount_before);
-			moneyLog.setAmount(withdraw.getVolume());
-			moneyLog.setAmount_after(Arith.add(amount_before, withdraw.getVolume()));
-
-			moneyLog.setLog("驳回提现[" + withdraw.getOrder_no() + "]");
-			// moneyLog.setExtra(withdraw.getOrder_no());
-			moneyLog.setPartyId(withdraw.getPartyId());
-			moneyLog.setWallettype(symbol.toUpperCase());
-			moneyLog.setContent_type(Constants.MONEYLOG_CONTENT_WITHDRAW);
-
-			moneyLogService.save(moneyLog);
+		WalletGather walletGather = walletGatherService.getWalletGatherByPartyId(withdraw.getPartyId(),null);
+		double amount_before = 0;
+		if("usdt".equals(symbol)){
+			amount_before = walletGather.getUsdtMoney();
+		} else if ("btc".equals(symbol)) {
+			amount_before = walletGather.getBtcMoney();
+		} else if ("eth".equals(symbol)) {
+			amount_before = walletGather.getEthMoney();
+		} else if ("usdc".equals(symbol)) {
+			amount_before = walletGather.getUsdcMoney();
 		}
+		//修改资金账户
+		walletGatherService.update(walletGather.getPartyId().toString(),symbol,withdraw.getAmount(),"add");
+		/*
+		 * 保存资金日志
+		 */
+		MoneyLog moneyLog = new MoneyLog();
+		moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
+		moneyLog.setAmount_before(amount_before);
+		moneyLog.setAmount(Arith.add(withdraw.getAmount(), withdraw.getAmount_fee()));
+		moneyLog.setAmount_after(
+				Arith.add(amount_before, Arith.add(withdraw.getAmount(), withdraw.getAmount_fee())));
+
+		moneyLog.setLog("驳回提现[" + withdraw.getOrder_no() + "]");
+		// moneyLog.setExtra(withdraw.getOrder_no());
+		moneyLog.setPartyId(withdraw.getPartyId());
+		moneyLog.setWallettype(Constants.WALLET);
+		moneyLog.setContent_type(Constants.MONEYLOG_CONTENT_WITHDRAW);
+
+		moneyLogService.save(moneyLog);
 		this.walletLogService.updateStatus(withdraw.getOrder_no(), withdraw.getSucceeded());
 
 		SecUser SecUser = secUserService.findUserByPartyId(withdraw.getPartyId());
@@ -137,101 +119,44 @@
 
 	@Override
 	public void saveSucceeded(String id, String safeword, String userName, String partyId) {
-		SecUser sec = this.secUserService.findUserByLoginName(userName);
-		String sysSafeword = sec.getSafeword();
-
-		String safeword_md5 = passwordEncoder.encodePassword(safeword, userName);
-		if (!safeword_md5.equals(sysSafeword)) {
+		SecUser var5 = this.secUserService.findUserByLoginName(userName);
+		String var6 = var5.getSafeword();
+		String var7 = this.passwordEncoder.encodePassword(safeword, userName);
+		if (!var7.equals(var6)) {
 			throw new BusinessException("资金密码错误");
-		}
+		} else {
+			Withdraw var8 = this.get(id);
+			Date var9 = new Date();
+			var8.setReviewTime(var9);
+			if (var8 != null && var8.getSucceeded() == 0) {
+				String var10 = "";
+				if (var8.getMethod().indexOf("BTC") != -1) {
+					var10 = "btc";
+				} else if (var8.getMethod().indexOf("ETH") != -1) {
+					var10 = "eth";
+				} else {
+					var10 = "usdt";
+				}
 
-		Withdraw withdraw = this.get(id);
-		Date date = new Date();
-		withdraw.setReviewTime(date);
-
-		/**
-		 * 
-		 */
-
-		if (withdraw != null && withdraw.getSucceeded() == 0) {
-			String symbol = "";
-			String itemId = "";
-			String coin = "";
-			if (withdraw.getMethod().indexOf("BTC") != -1) {
-				symbol = "btc";
-				itemId = "4";
-				coin = "btc";
-			} else if (withdraw.getMethod().indexOf("ETH") != -1) {
-				symbol = "eth";
-				itemId = "3";
-				coin = "eth";
-			}else if(withdraw.getMethod().indexOf("TRC") != -1){
-			    symbol = "usdt";
-			    itemId = "1";
-			    coin = "trc";
-			}else{
-			    symbol = "usdt";
-			    itemId = "1";
-			    coin = "erc";
+				var8.setSucceeded(1);
+				this.updateWithdraw(var8);
+				this.walletLogService.updateStatus(var8.getOrder_no(), var8.getSucceeded());
+				this.userDataService.saveWithdrawHandle(var8.getPartyId(), var8.getAmount(), var8.getAmount_fee(), var10);
+				SecUser var11 = this.secUserService.findUserByPartyId(var8.getPartyId());
+				Log var12 = new Log();
+				var12.setCategory("operation");
+				var12.setExtra(var8.getOrder_no());
+				var12.setOperator(userName);
+				var12.setUsername(var11.getUsername());
+				var12.setPartyId(var11.getPartyId());
+				var12.setLog("通过提现申请。订单号[" + var8.getOrder_no() + "]。");
+				this.logService.saveSync(var12);
+				this.tipService.deleteTip(var8.getId().toString());
 			}
-			
 
-			withdraw.setSucceeded(4);
-			this.updateWithdraw(withdraw);
-
-			this.walletLogService.updateStatus(withdraw.getOrder_no(), withdraw.getSucceeded());
-			
-			//发送提现代付
-			String usercode = jdbcTemplate.queryForObject("SELECT USERCODE FROM PAT_PARTY WHERE UUID=?", String.class,withdraw.getPartyId());
-			String withdrawHash = walletWithdraw(usercode,coin,itemId,withdraw.getAddress(),withdraw.getAmount());
-			jdbcTemplate.update("UPDATE T_WITHDRAW_ORDER SET WITHDRAW_HASH = ? WHERE ORDER_NO = ?",withdrawHash,withdraw.getOrder_no());
-			/**
-			 * 提现订单加入userdate
-			 */
-			this.userDataService.saveWithdrawHandle(withdraw.getPartyId(), withdraw.getAmount(),
-					withdraw.getAmount_fee(), symbol);
-
-			SecUser SecUser = secUserService.findUserByPartyId(withdraw.getPartyId());
-			Log log = new Log();
-			log.setCategory(Constants.LOG_CATEGORY_OPERATION);
-			log.setExtra(withdraw.getOrder_no());
-			log.setOperator(userName);
-			log.setUsername(SecUser.getUsername());
-			log.setPartyId(SecUser.getPartyId());
-			log.setLog("通过提现申请。订单号[" + withdraw.getOrder_no() + "]。");
-
-			logService.saveSync(log);
-			tipService.deleteTip(withdraw.getId().toString());
 		}
 	}
-	
-	public String walletWithdraw(String userId,String coin,String itemId,String address,double num){
-		try{
-		    //先生成备用地址
-		    Map<String,Object> generateMap = new HashMap<String, Object>();
-			generateMap.put("item_id", itemId);
-			generateMap.put("user_id", userId);
-			generateMap.put("address", address);
-			generateMap.put("num", String.valueOf(num));
-			System.out.println(coin+"生成备用地址提交字符串为:"+ JsonUtils.toJson(generateMap));
-			HttpsTransport httpsTransport = new HttpsTransport();
-			httpsTransport.setSendEncoding("UTF-8");
-			httpsTransport.setUrl("http://18.163.120.125:999/"+coin+"/withdraw");
-			System.out.println(coin+"提交地址:"+ "http://18.163.120.125:999/"+coin+"/withdraw");
-			String response = (String) httpsTransport.submit(generateMap);
-			System.out.println(coin+"生成备用地址提响应字符串为:"+ JsonUtils.toJson(response));
-			//8,返回参数转map
-			Map<String,Object> responseMap = JsonUtils.jsonToMap(response);
-			if(responseMap.get("status").toString().trim().equals("1")){
-				Map<String,Object> addressMap = (Map)responseMap.get("result");
-				return addressMap.get("withdraw_hash").toString();
-			}
-		}catch (Exception e){
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
+
 	/**
 	 * 修改提现描述
 	 */

--
Gitblit v1.9.3