From cd9bd57600aeda42a7b06e015ea1e0b94dd37b75 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 17:32:33 +0800
Subject: [PATCH] 虚拟卡余额小于100时提示用户余额不足

---
 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 211 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
new file mode 100644
index 0000000..8d9b36c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
@@ -0,0 +1,211 @@
+package com.dy.testServer.forRmi;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.dy.testServer.ServerProperties;
+
+public class Manager {
+
+	public static boolean enablemwTestStartTcpConnect = false ;
+
+	public static boolean enablemwTestStartRtuReport = false ;
+
+	public static int clientId = 1 ;
+	
+	public static long maxClient = 0 ;
+	
+	public static Map<String, String> id2TokenMap = new HashMap<>() ;
+
+	public static Map<String, MwTestClientStatus> token2ClientMap = new HashMap<>() ;
+	
+	public static List<Object[]> rtuAddrList = new ArrayList<>() ;
+	
+	public static void init(){
+		maxClient = (ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)/ServerProperties.rtuAddrPerMwTest ;
+		if((ServerProperties.rtuAddrEnd - ServerProperties.rtuAddrStart)%ServerProperties.rtuAddrPerMwTest > 0 ){
+			maxClient = maxClient + 1 ;
+		}
+		int count = 0 ;
+		for(int i = 0; i < maxClient; i++){
+			long start = ServerProperties.rtuAddrStart + (i * ServerProperties.rtuAddrPerMwTest) ;
+			long end = ServerProperties.rtuAddrStart + ((i + 1) * ServerProperties.rtuAddrPerMwTest - 1) ;
+			if(end > ServerProperties.rtuAddrEnd){
+				end = ServerProperties.rtuAddrEnd ;
+			}
+			if(end < start){
+				break ;
+			}else{
+				rtuAddrList.add(count++, new Object[]{start, end});
+			}
+		}
+	}
+	
+	public synchronized static String dealRequest(Object obj) throws Exception{
+		RmiResponseVo resVo ;
+		if(obj == null){
+			resVo = new RmiResponseVo() ;
+			resVo.success = false ;
+			resVo.errorInfo = "鏀跺埌鐨勬暟鎹负null" ;
+		}else if(!(obj instanceof String)){
+			resVo = new RmiResponseVo() ;
+			resVo.success = false ;
+			resVo.errorInfo = "鏀跺埌鐨勬暟鎹笉鏄瓧绗︿覆绫诲瀷" ;
+		}else{
+			RmiRequestVo rqVo = RmiRequestVo.jsonToObject((String)obj) ;
+			resVo = doDeal(rqVo) ;
+		}
+		return resVo.toJson() ;
+	}
+	
+	private static RmiResponseVo doDeal(RmiRequestVo rqVo){
+		RmiResponseVo resVo = new RmiResponseVo() ;
+		resVo.code = rqVo.code ;
+		if(rqVo.code.equals(Code.cd1)){
+			if(rqVo.id == null || rqVo.id.trim().equals("")){
+				resVo.success = false ;
+				resVo.errorInfo = "娉ㄥ唽澶辫触锛屽繀椤绘彁渚涘鎴风ID " ;
+			}else{
+				ResRegisterVo vo = doDealRegister(rqVo) ;
+				if(vo != null){
+					resVo.obj = vo ;
+				}else{
+					resVo.success = false ;
+					resVo.errorInfo = "rtuAddr宸茬粡鍒嗛厤瀹屾垚锛屾敞鍐屽け璐�" ;
+				}
+			}
+		}else if(rqVo.code.equals(Code.cd2)){
+			resVo.obj = doDealGetConfig(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd3)){
+			resVo.obj = doDealGetStart(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd4)){
+			resVo.obj = doDealGetReport(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd5)){
+			doDealReportCount(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd6)){
+			doDealReportOver(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd7)){
+			doDealAllOver(rqVo) ;
+		}
+		return resVo ;
+	}
+	
+	private static ResRegisterVo doDealRegister(RmiRequestVo rqVo){
+		ResRegisterVo resVo = null ;
+		String token = id2TokenMap.get(rqVo.id) ;
+		if(token == null){
+			if(clientId <= rtuAddrList.size()){
+				resVo =  new ResRegisterVo() ;
+				resVo.token = "" + clientId ;
+				id2TokenMap.put(rqVo.id, resVo.token) ;
+				clientId++ ;
+			}
+		}else{
+			resVo =  new ResRegisterVo() ;
+			resVo.token = token ;
+		}
+		return resVo ;
+	}
+	
+	private static MwConfigVo doDealGetConfig(RmiRequestVo rqVo){
+		MwConfigVo conVo ;
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			Object[] rtuAddrs = rtuAddrList.get(token-1) ;
+			conVo = new MwConfigVo() ;
+			conVo.rtuAddrStart = (Long)rtuAddrs[0] ;
+			conVo.rtuAddrEnd = (Long)rtuAddrs[1] ;
+			conVo.tcpServerIp = ServerProperties.tcpServerIp ;
+			conVo.tcpServerPort = ServerProperties.tcpServerPort ;
+			conVo.sendInterval = ServerProperties.sendInterval ;
+			conVo.heartbeatTimes = ServerProperties.heartbeatTimes ;
+			conVo.sendTimes = ServerProperties.sendTimes ;
+			conVo.sendOverThenCloseConnect = ServerProperties.sendOverThenCloseConnect ;
+			sta = new MwTestClientStatus() ;
+			sta.confVo = conVo ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			conVo = sta.confVo;
+		}
+		return conVo ;
+	}
+	private static ResStartTcpConnectVo doDealGetStart(RmiRequestVo rqVo){
+		ResStartTcpConnectVo rvo = new ResStartTcpConnectVo() ;
+		rvo.start = enablemwTestStartTcpConnect ;
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			sta.startVo = rvo ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			sta.startVo = rvo ;
+		}
+		return rvo ;
+	}
+	private static ResStartRtuReportVo doDealGetReport(RmiRequestVo rqVo){
+		ResStartRtuReportVo rvo = new ResStartRtuReportVo() ;
+		rvo.report = enablemwTestStartRtuReport ;
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			sta.reportVo = rvo ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			sta.reportVo = rvo ;
+		}
+		return rvo ;
+	}
+
+	
+	private static void doDealReportCount(RmiRequestVo rqVo){
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			sta.count = rqVo.count ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			sta.count = rqVo.count ;
+		}
+	}
+	
+	
+	private static void doDealReportOver(RmiRequestVo rqVo){
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			sta.overCount = rqVo.overCount ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			sta.overCount = rqVo.overCount ;
+		}
+	}
+
+
+	private static void doDealAllOver(RmiRequestVo rqVo){
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			if(rqVo.over != null && rqVo.over){
+				sta.over = true ;
+				sta.seconds = rqVo.seconds ;
+			}
+			token2ClientMap.put("" + token, sta);
+		}else{
+			if(rqVo.over != null && rqVo.over){
+				sta.over = true ;
+				sta.seconds = rqVo.seconds ;
+			}
+		}
+	}
+
+
+
+}

--
Gitblit v1.8.0