⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user.java

📁 银行项目为后台socket通信写的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				pstmt.setString(4, String.valueOf(port));
				pstmt.setString(5, userId);
				pstmt.execute();
				pstmt = conn.prepareStatement(insertM1Sql);
				pstmt.setInt(1, sessionId);
				pstmt.setString(2, localMachineName);
				pstmt.setString(3, String.valueOf(port));
				pstmt.setString(4, clientMachineName.trim());
				pstmt.setString(5, userId);
				pstmt.setInt(6, pid);
				pstmt.execute();
			} else {
				pstmt = conn.prepareStatement(insertSql);
				pstmt.setInt(1, 9999);
				pstmt.setInt(2, 3000);
				pstmt.setString(3, localMachineName);
				pstmt.setString(4, "5000");
				pstmt.setString(5, userId);
				pstmt.execute();
				pstmt.setInt(1, 3000);
				pstmt.setInt(2, 3000);
				pstmt.setString(3, localMachineName);
				pstmt.setString(4, "5000");
				pstmt.setString(5, userId);
				pstmt.execute();
				pstmt = conn.prepareStatement(insertM1Sql);
				pstmt.setInt(1, 3000);
				pstmt.setString(2, localMachineName);
				pstmt.setString(3, "5000");
				pstmt.setString(4, clientMachineName.trim());
				pstmt.setString(5, userId);
				pstmt.setInt(6, 3000);
				pstmt.execute();
			}

		} catch (SQLException ex) {
			ex.printStackTrace();
			log.error(ex.toString());
			// add another ERROR CODE future
			throw new UserLoginFailException("TAM0074");
		} finally {
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
				}
				rs = null;
			}
			if (pstmt != null) {
				try {
					pstmt.close();
				} catch (SQLException e) {
				}
				pstmt = null;
			}
			// if (conn != null) {
			// try {
			// conn.close();
			// } catch (SQLException e) {
			// }
			// conn = null;
			// }
		}
		setSessionId(String.valueOf(sessionId));

	}

	// public static void insertPid(User ul, Connection connection, int pid,
	// int sessionId) throws SQLException {
	//
	// PreparedStatement preparedStatement = connection
	// .prepareStatement("INSERT INTO TAUSRMAS(SESSID,PID,LOCHOST,COMPORT)
	// values(?,?,?,?)");
	// preparedStatement.setInt(1, sessionId);
	// preparedStatement.setInt(2, pid);
	// preparedStatement.setString(3, ul.clientMachineName());
	// preparedStatement.setString(4, "5000");
	// preparedStatement.execute();
	// preparedStatement.close();
	// }

	// public static void updatePid(int pid, Connection connection)
	// throws SQLException {
	// PreparedStatement preparedStatement = connection
	// .prepareStatement("UPDATE TAUSRMAS set pid = ? where pid = ?");
	// preparedStatement.setLong(1, pid);
	// preparedStatement.setLong(2, pid);
	// preparedStatement.execute();
	// preparedStatement.close();
	//
	// }

	public void createWorkStationRecord(Connection conn) throws UserLoginFailException {
		int wid = getWorkStationNo(conn);
		try {
			insertToCTBW(conn, wid);
			insertToGXXX(conn, wid);
		} catch (SQLException e) {
			log.error("insert Work Station SQL Exception" + e);
			throw new UserLoginFailException("insert Work Station SQL Exception");
		}

	}

	public int getWorkStationNo(Connection conn) throws UserLoginFailException {
		int pro = 0;
		String sql = "select PRODSER from T23M0XXX where PRODUCT =?";
		String updatesql = "UPDATE T23M0XXX set PRODSER = ? where PRODSER = ? and PRODUCT =?";
		String insertsql = "INSERT INTO T23M0XXX(PRODUCT,PRODSER,PRODKEY) values(?,?,?)";
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, "CTBW1M00");
			rs = pstmt.executeQuery();
			if (rs.next()) {
				int prodser = rs.getInt("PRODSER");
				pstmt = conn.prepareStatement(updatesql);
				pstmt.setInt(1, prodser + 1);
				pstmt.setInt(2, prodser);
				pstmt.setString(3, "CTBW1M00");
				pstmt.execute();
				pro = prodser + 1;
			} else {
				pstmt = conn.prepareStatement(insertsql);
				pstmt.setString(1, "CTBW1M00");
				pstmt.setInt(2, 1);
				pstmt.setString(3, " ");
				pro = 1;
			}
		} catch (SQLException e) {
			log.error("user login query exception:" + e.toString());
			throw new UserLoginFailException("check Client Machine query exception");
		} finally {
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
				}
				rs = null;
			}
			if (pstmt != null) {
				try {
					pstmt.close();
				} catch (SQLException e) {
				}
				pstmt = null;
			}

		}
		return pro;
	}

	public void insertToCTBW(Connection conn, int workstationNo) throws SQLException {
		PreparedStatement pstmt = conn.prepareStatement("select CW1WSID from CTBW1M00 where CW1WSID=?");
		pstmt.setString(1, clientMachineName);
		ResultSet rs = pstmt.executeQuery();
		if (rs.next()) {
			pstmt = conn.prepareStatement("UPDATE CTBW1M00 set CW1NUMR = ? where CW1WSID=?");
			pstmt.setString(1, StringUtil.stringAddZero(String.valueOf(workstationNo), 4));
			pstmt.setString(2, clientMachineName);
		} else {
			pstmt = conn.prepareStatement("INSERT INTO CTBW1M00(CW1WSID,CW1LOCA,CW1NUMR,CW1IUSR,CW1IDAT,CW1IFUN,CW1BCHC) values(?,?,?,?,?,?,?)");
			pstmt.setString(1, clientMachineName);
			pstmt.setString(2, clientMachineName);
			pstmt.setString(3, StringUtil.stringAddZero(String.valueOf(workstationNo), 4));
			pstmt.setString(4, " ");
			pstmt.setInt(5, 0);
			pstmt.setString(6, " ");
			pstmt.setString(7, " ");
		}
		pstmt.execute();
		pstmt.close();
	}

	public void insertToGXXX(Connection conn, int workstationNo) throws SQLException {
		PreparedStatement preparedStatement = conn
				.prepareStatement("INSERT INTO GXXX9M00(GX9NUMR,GX9LPRD,GX9LWSN,GX9LUID,GX9LPID,GX9LRMK) values(?,?,?,?,?,?)");
		preparedStatement.setInt(1, workstationNo);
		preparedStatement.setInt(2, 0);
		preparedStatement.setString(3, clientMachineName);
		preparedStatement.setString(4, userId);
		preparedStatement.setString(5, " ");
		preparedStatement.setString(6, " ");
		preparedStatement.execute();
		preparedStatement.close();
	}

	public void updateT57(Connection conn) {
		PreparedStatement pstmt;
		try {
			pstmt = conn.prepareStatement("select PWDTCNT from T57M0XXX where FLUSRID=?");
			pstmt.setString(1, userId);
			ResultSet rs = pstmt.executeQuery();
			if (rs.next()) {
				pstmt = conn.prepareStatement("update T57M0XXX set FLSTSCD = ? where FLUSRID=?");
				pstmt.setString(1, "A");
				pstmt.setString(2,userId);
				pstmt.execute();
			} else {
				pstmt = conn.prepareStatement("INSERT INTO T57M0XXX(FLUSRID,PWDTCNT,FLSTSCD) values(?,?,?)");
				pstmt.setString(1, userId);
				pstmt.setInt(2, 0);
				pstmt.setString(3, "A");
				pstmt.execute();
			}
			pstmt.close();
		} catch (SQLException e) {
			log.error("update T57M0XXX sql exception " + e);
		}

	}

	public void insertToT60(Connection conn, String type) {

		PreparedStatement preparedStatement = null;
		try {
			preparedStatement = conn
					.prepareStatement("INSERT INTO T60M0XXX(FLUSRID,ACTDATE,ACTTIME,ACTTYPE,INPUSER,APPUSER,INPDATE,INPTIME,APPDATE,APPTIME,REMARK,WRKSTAN) values(?,?,?,?,?,?,?,?,?,?,?,?)");
			if(userId.length()>=10){
				userId=userId.substring(0,10);
			}
			preparedStatement.setString(1, userId);
			Date currentdate = new Date();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
			String dt = sdf.format(currentdate);
			Time time = new Time(currentdate.getTime());
			SimpleDateFormat timedf = new SimpleDateFormat("HHmmss");
			String timedt = timedf.format(time);
			preparedStatement.setInt(2, Integer.parseInt(dt));
			preparedStatement.setInt(3, Integer.parseInt(timedt));
			preparedStatement.setString(4, type);
			preparedStatement.setString(5, " ");
			preparedStatement.setString(6, " ");
			preparedStatement.setInt(7, Integer.parseInt(dt));
			preparedStatement.setInt(8, Integer.parseInt(timedt));
			preparedStatement.setInt(9, Integer.parseInt(dt));
			preparedStatement.setInt(10, Integer.parseInt(timedt));
			preparedStatement.setString(11, " ");
			preparedStatement.setString(12, clientMachineName);
			preparedStatement.execute();
		} catch (SQLException e) {
			log.error("INSERT INTO T60M0XXX sql exception " + e);
		} finally {
			if (preparedStatement != null) {
				try {
					preparedStatement.close();
				} catch (SQLException e) {
				}
				preparedStatement = null;
			}
		}
	}

	public void createUserWorkArea(String sessionID) throws UserLoginFailException {
		preProcessDirectory(sessionID);
		try {
			createOnlineFile(sessionID);
			createLADMAPFile(sessionID);
		} catch (IOException e) {
			log.error("Create User Working Area ERROR!......." + e);
			throw new UserLoginFailException("EA01621");
			// e.printStackTrace();
		}
	}

	private static boolean preProcessDirectory(String sessionId) {

		if (!new File("TTY").isDirectory())

			new File("TTY").mkdirs();
		if (!new File("TTY/" + sessionId).isDirectory())
			new File("TTY/" + sessionId).mkdirs();

		return true;
	}

	private static void createOnlineFile(String sessionId) throws IOException {
		String source = "Y\n";
		byte buf[] = source.getBytes();
		FileOutputStream f = new FileOutputStream("TTY/" + sessionId + "/ONLINE.DAT");
		f.write(buf);
		f.close();

	}

	private void createLADMAPFile(String sessionId) throws IOException {
		T00M0 tm = readTMFile();
		tm.setT00CURRDAT(date);
		LDAMAP ldp = setLDAMAP(tm);
		FileOutputStream f = new FileOutputStream("TTY/" + sessionId + "/LDAMAP.DAT");
		String ldvalue = getLDAMP(ldp);
		byte buf[] = ldvalue.getBytes();
		f.write(buf);
		f.close();
	}

	private static String getLDAMP(LDAMAP ldp) {
		StringBuffer ldpsb = new StringBuffer();
		ldpsb.append(StringUtil.stringFitToLength(ldp.getProcessDateCC(), 2)).append(StringUtil.stringFitToLength(ldp.getProcessDateYY(), 2)).append(
				StringUtil.stringFitToLength(ldp.getProcessDateMM(), 2)).append(StringUtil.stringFitToLength(ldp.getProcessDateDD(), 2)).append(
				StringUtil.stringFitToLength(ldp.getUserId(), 10)).append(StringUtil.stringFitToLength(ldp.getLcyCode(), 3)).append(
				StringUtil.stringFitToLength(ldp.getWorkstationId(), 10)).append(StringUtil.stringFitToLength(ldp.getJobNumber(), 6))
		// not set
				.append(StringUtil.stringFitToLength(ldp.getDecimalNotation(), 1)).append(StringUtil.stringFitToLength(ldp.getQdateSep(), 1)).append(
						StringUtil.stringFitToLength(ldp.getQdataFmt(), 3)).append(StringUtil.stringFitToLength(ldp.getOutputMonth(), 3)).append(
						StringUtil.stringFitToLength(ldp.getBankName(), 35)).append(StringUtil.stringFitToLength(ldp.getCorpCcy(), 3)).append(
						StringUtil.stringFitToLength(ldp.getSwiftAdd(), 11)).append(StringUtil.stringFitToLength(ldp.getHoBchCode(), 4)).append(
						StringUtil.stringFitToLength(ldp.getHoIrrCcy(), 15)).append(StringUtil.stringFitToLength(ldp.getHoFxAdjGl(), 20)).append(
						StringUtil.stringFitToLength(ldp.getBankId(), 1))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getBranchId(), 1))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getExAmtTol(), 3)).append(StringUtil.stringFitToLength(ldp.getFcyCode(), 3))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getDeptCode(), 3)).append(StringUtil.stringFitToLength(ldp.getDayEndFlag(), 1)).append(
						StringUtil.stringFitToLength(ldp.getTempFunctionName(), 8))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getProductId(), 4))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getProductName(), 8))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getFnctionName(), 8))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getTxBch(), 10)).append(StringUtil.stringFitToLength(ldp.getOvrUserId(), 10)).append(
						StringUtil.stringFitToLength(ldp.getNextProcessDate(), 8)).append(StringUtil.stringFitToLength(ldp.getPrexProcessDate(), 8))
				.append(StringUtil.stringFitToLength(ldp.getDayEndFlagInd(), 1)).append(StringUtil.stringFitToLength(ldp.getWeekEndFlag(), 1))
				.append(StringUtil.stringFitToLength(ldp.getBiWeekEndFlag(), 1)).append(StringUtil.stringFitToLength(ldp.getMonthEndFlag(), 1))
				.append(StringUtil.stringFitToLength(ldp.getQuarYearEndFlag(), 1)).append(StringUtil.stringFitToLength(ldp.getHalfYearEndFlag(), 1))
				.append(StringUtil.stringFitToLength(ldp.getYearEndFlag(), 1)).append(StringUtil.stringFitToLength(ldp.getSpecialFlag1(), 1)).append(
						StringUtil.stringFitToLength(ldp.getSpecialFlag2(), 1)).append(StringUtil.stringFitToLength(ldp.getSpecialFlag3(), 1))
				.append(StringUtil.stringFitToLength(ldp.getDateFmt(), 1)).append(StringUtil.stringFitToLength(ldp.getProcessBch(), 8))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getSfStatus(), 1))
				// not set
				.append(StringUtil.stringFitToLength(ldp.getDummyRunInd(), 1)).append(StringUtil.stringFitToLength(ldp.getBatchApprFlag(), 1))// not
				// set
				.append(StringUtil.stringFitToLength("", 248)).append(StringUtil.stringFitToLength(ldp.getFiller(), 1))// notset
				.append(StringUtil.stringFitToLength(ldp.getAcudBui(), 1))// not
				.append(StringUtil.stringFitToLength("", 510)).append("\n"); // set

		return ldpsb.toString();
	}

	private static T00M0 readTMFile() throws IOException {
		T00M0 tm = null;

		try {
			Configuration config = PropertiesConfiguration.getInstance();
			String addTM = config.getString("addressT00M0", "T00M0.DAT");
			RandomAccessFile inFile = new RandomAccessFile(addTM, "r");

			// RandomAccessFile inFile = new RandomAccessFile("c:/T00M0.DAT", "r");
			FileChannel in = inFile.getChannel();

			MappedByteBuffer mappedBuffer = in.map(FileChannel.MapMode.READ_ONLY, 0, inFile.length());
			String charBuffer = Charset.forName("ISO-8859-1").decode(mappedBuffer).toString();
			System.out.println("charBuffer: " + charBuffer);
			tm = new T00M0(StringUtil.stringFitToLength(charBuffer, 177));
		} catch (ecAppServerConfigException e) {
			log.error("reading config file failure...");
			e.printStackTrace();
		} catch (IOException e) {
			throw e;
		}

		return tm;

	}

	private LDAMAP setLDAMAP(T00M0 tm) {

		LDAMAP ldp = new LDAMAP();
		String currentDate = tm.getT00CURRDAT();
		ldp.setProcessDateCC(currentDate.substring(0, 2));
		ldp.setProcessDateYY(currentDate.substring(2, 4));
		ldp.setProcessDateMM(currentDate.substring(4, 6));
		ldp.setProcessDateDD(currentDate.substring(6, 8));
		ldp.setUserId(setNotNull(userId));
		ldp.setWorkstationId(setNotNull(clientMachineName));
		ldp.setBankName(setNotNull(tm.getT00BANKNAME()));
		ldp.setLcyCode(setNotNull(tm.getT00LCYCODE()));
		ldp.setCorpCcy(setNotNull(tm.getT00CORPCCY()));
		ldp.setDecimalNotation(".");
		ldp.setOutputMonth(setNotNull(tm.getT00MONCHAR()));
		ldp.setQdateSep(setNotNull(tm.getT00DATESEP()));
		ldp.setHoBchCode(setNotNull(tm.getT00HEADBRH()));
		if (tm.getT00DATEFMT().equals("M") || tm.getT00DATEFMT().equals("3") || tm.getT00DATEFMT().equals("6") || tm.getT00DATEFMT().equals("9")) {
			ldp.setQdataFmt("MDY");
		} else if (tm.getT00DATEFMT().equals("D") || tm.getT00DATEFMT().equals("2") || tm.getT00DATEFMT().equals("5")
				|| tm.getT00DATEFMT().equals("8")) {
			ldp.setQdataFmt("DMY");
		} else if (tm.getT00DATEFMT().equals("Y") || tm.getT00DATEFMT().equals("1") || tm.getT00DATEFMT().equals("4")
				|| tm.getT00DATEFMT().equals("7")) {
			ldp.setQdataFmt("YMD");
		}
		ldp.setDateFmt(setNotNull(tm.getT00DATEFMT()));
		ldp.setSwiftAdd(setNotNull(tm.getT00SWIFTAD()));
		ldp.setHoIrrCcy(setNotNull(tm.getT00IRRECCY()));
		ldp.setHoFxAdjGl(setNotNull(tm.getT00FXADJGL()));
		ldp.setExAmtTol(setNotNull(tm.getT00AMTTOLE()));

		ldp.setDeptCode(setNotNull(tm.getT00DEPTCOD()));
		ldp.setDayEndFlag(setNotNull(tm.getT00DAYENDF()));
		ldp.setDayEndFlagInd(setNotNull(tm.getT00DAYEFGI()));
		ldp.setWeekEndFlag(setNotNull(tm.getT00WEEKEFG()));
		ldp.setBiWeekEndFlag(setNotNull(tm.getT00BIWKEFG()));
		ldp.setMonthEndFlag(setNotNull(tm.getT00MONTEFG()));
		ldp.setQuarYearEndFlag(setNotNull(tm.getT00QYREFGI()));
		ldp.setHalfYearEndFlag(setNotNull(tm.getT00HYREFGI()));
		ldp.setYearEndFlag(setNotNull(tm.getT00YEAREFG()));
		ldp.setSpecialFlag1(setNotNull(tm.getT00SPECFG1()));
		ldp.setSpecialFlag2(setNotNull(tm.getT00SPECFG2()));
		ldp.setSpecialFlag3(setNotNull(tm.getT00SPECFG3()));
		ldp.setNextProcessDate(tm.getT00NEXTDAT().trim());
		ldp.setPrexProcessDate(tm.getT00LASTDAT().trim());
		ldp.setDummyRunInd(setNotNull(tm.getT00DUMRUNI()));
		ldp.setHoFxAdjGl(setNotNull(tm.getT00FXADJGL()));
		return ldp;
	}

	public void setcurrentdate(String dt) {
		date = dt;
	}

	private static String setNotNull(String value) {
		return (value == null) ? "" : value;
	}

	public String getPort() {
		return String.valueOf(port);
	}

	/**
	 * 
	 * @return
	 * @author
	 */
	public String toString() {
		StringBuffer buffer = new StringBuffer();
		buffer.append("User[");
		buffer.append("localMachineName = ").append(localMachineName);
		buffer.append(" messageSize = ").append(messageSize);
		buffer.append(" messageType = ").append(messageType);
		buffer.append(" password = ").append(password);
		buffer.append(" userId = ").append(userId);
		buffer.append(" clientMachineName = ").append(clientMachineName);
		buffer.append("]");
		return buffer.toString();
	}

	public String getSessionId() {
		return sessionId;
	}

	public void setSessionId(String sessionId) {
		this.sessionId = sessionId;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -