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

📄 admacessctl.java

📁 struts-menu完整例子
💻 JAVA
字号:
package com.oppo.elms.pub;

/**
 * <p>Title: hrsystem</p>
 * <p>Description: 系统登录</p>
 * <p>Copyright: 2005-5-27</p>
 * <p>Company:</p>
 * @author swk
 */

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;

import com.oppo.common.encrypt.MD5;

public class AdmAcessCtl {

	private String sql = "";
	private Hashtable hash = null;

	/**
	 * 函数的说明: 得到用户登陆权限--按钮
	 * 
	 * @param userid
	 *            用户id
	 */

	public int getRoleButton(String userid, String buttontype, String nodename) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;

		int row = 0;

		// 连接数据库
		try {

			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			st = tools.getStatement(conn);

			@SuppressWarnings("unused")
			String moduleid = "";
			sql = "select bb.moduleid,bb.nodename,aa.enname from (";
			sql += "select moduleid,enname from TB_ADM_ROLEBUTTON where roleid in ";
			sql += " (select a.roleid from tb_adm_role a,tb_adm_userrole b where a.roleid=b.roleid and ";
			sql += " b.userid='" + userid
					+ "' ))aa,tb_adm_module bb where aa.moduleid=bb.moduleid ";
			sql += " and aa.enname='" + buttontype + "' and bb.nodename='"
					+ nodename + "'";

			rs = tools.execQuery(st, sql);
			while (rs.next()) {
				moduleid = rs.getString(1);
				row++;
			}

			conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				conn.setAutoCommit(defaultCommit);
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null)
					tools.disconnectDatabase(conn);
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}
		return row;
	}

	/**
	 * 函数的说明: 得到用户登陆权限
	 * 
	 * @param userid
	 *            用户id
	 */
	@SuppressWarnings("unchecked")
	public void getPrivilege(String userid) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;

		// 连接数据库
		try {
			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);

			st = tools.getStatement(conn);
			sql = "select nodename  from  TB_ADM_MODULE_LOGIN where userid=trim('" + userid + "') ";
			sql += " union select nodename from TB_ADM_NOPRIVILEGE_node";
			rs = tools.execQuery(st, sql);
			while (rs.next()) {
				hash.put(rs.getString(1), rs.getString(1));
			}

			conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				conn.setAutoCommit(defaultCommit);
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null)
					tools.disconnectDatabase(conn);
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}

	}

	/**
	 * 函数的说明: 得到角色对应的按钮
	 * 
	 * @return string
	 */

	public String[][] getModuleButton(String moduleid) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;

		String buttonList[][] = null;

		// 连接数据库
		try {
			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			st = tools.getStatement(conn);

			String sql = "";
			sql += "select count(*) from (";
			sql += "select a.enname,b.cnname,1 flag from TB_ADM_MODULE_BUTTON a, tb_adm_button b ";
			sql += " where a.enname=b.enname  and a.moduleid='" + moduleid
					+ "'  ";
			sql += " union ";
			sql += " select enname,cnname, 0 flag from tb_adm_button where enname not in (";
			sql += " select a.enname from TB_ADM_MODULE_BUTTON a, tb_adm_button b ";
			sql += "where a.enname=b.enname  and a.moduleid='" + moduleid
					+ "'  ))";

			rs = tools.execQuery(st, sql);
			int rowcount = 0;

			while (rs.next())
				rowcount = rs.getInt(1);

			sql = "select a.enname,b.cnname,1 flag from TB_ADM_MODULE_BUTTON a, tb_adm_button b ";
			sql += " where a.enname=b.enname  and a.moduleid='" + moduleid
					+ "'  ";
			sql += " union ";
			sql += " select enname,cnname, 0 flag from tb_adm_button where enname not in (";
			sql += " select a.enname from TB_ADM_MODULE_BUTTON a, tb_adm_button b ";
			sql += "where a.enname=b.enname  and a.moduleid='" + moduleid
					+ "'  ";
			sql += " ) order by flag";

			rs = tools.execQuery(st, sql);
			buttonList = new String[rowcount][3];
			int i = 0;

			while (rs.next()) {
				buttonList[i][0] = rs.getString(1);
				buttonList[i][1] = rs.getString(2);
				buttonList[i][2] = rs.getString(3);
				i++;
			}

			conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				conn.setAutoCommit(defaultCommit);
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null)
					tools.disconnectDatabase(conn);
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}
		return buttonList;

	}

	/**
	 * 函数的说明: 得到角色对应的按钮
	 * 
	 * @return string
	 */

	public String[][] getRoleButton(String roleid, String moduleid) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;

		String buttonList[][] = null;

		try {
			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			st = tools.getStatement(conn);

			String sql = "";
			sql += "select count(*) from (";
			sql += "select a.enname,a.roleid,a.moduleid,b.cnname,1 flag from TB_ADM_ROLEBUTTON a,";
			sql += " tb_adm_button b where a.enname=b.enname  and a.roleid='"
					+ roleid + "' and a.moduleid='" + moduleid + "' ";
			sql += " union ";
			sql += "select aa.enname,'" + roleid
					+ "' roleid,aa.moduleid,bb.cnname,0 flag from ";
			sql += "(select enname,moduleid from tb_adm_module_button where enname not in ";
			sql += " (select enname from  TB_ADM_ROLEBUTTON where roleid='"
					+ roleid + "' and moduleid='" + moduleid + "' ";
			sql += ") and moduleid='" + moduleid + "' ";
			sql += " )aa,tb_adm_button bb  where aa.enname=bb.enname order by flag)";

			rs = tools.execQuery(st, sql);
			int rowcount = 0;

			while (rs.next())
				rowcount = rs.getInt(1);

			sql = "select a.enname,a.roleid,a.moduleid,b.cnname,1 flag from TB_ADM_ROLEBUTTON a,";
			sql += " tb_adm_button b where a.enname=b.enname  and a.roleid='"
					+ roleid + "' and a.moduleid='" + moduleid + "' ";
			sql += " union ";
			sql += "select aa.enname,'" + roleid
					+ "' roleid,aa.moduleid,bb.cnname,0 flag from ";
			sql += "(select enname,moduleid from tb_adm_module_button where enname not in ";
			sql += " (select enname from  TB_ADM_ROLEBUTTON where roleid='"
					+ roleid + "' and moduleid='" + moduleid + "' ";
			sql += ") and moduleid='" + moduleid + "' ";
			sql += " )aa,tb_adm_button bb  where aa.enname=bb.enname order by flag";

			rs = tools.execQuery(st, sql);
			buttonList = new String[rowcount][5];
			int i = 0;

			while (rs.next()) {
				buttonList[i][0] = rs.getString(1);
				buttonList[i][1] = rs.getString(2);
				buttonList[i][2] = rs.getString(3);
				buttonList[i][3] = rs.getString(4);
				buttonList[i][4] = rs.getString(5);
				i++;
			}

			conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				conn.setAutoCommit(defaultCommit);
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null)
					tools.disconnectDatabase(conn);
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}
		return buttonList;
	}

	/**
	 * 函数的说明: 返回用户登陆后的各类信息
	 * 
	 * @param 无
	 * @return Hashtable
	 */

	public Hashtable getSysParam() {
		return this.hash;
	}

	/**
	 * 函数的说明: 记录用户模块信息
	 * 
	 * @param userid
	 *            用户id
	 * @param
	 * @param
	 * @param
	 * @return boolean
	 */
	public boolean writeUserModule(String userid) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;

		// 连接数据库
		try {
			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			st = tools.getStatement(conn);

			sql = "DELETE FROM tb_adm_module_login WHERE userid = '"
					+ userid
					+ "';"
					+ " INSERT INTO tb_adm_module_login"
					+ " SELECT DISTINCT '"
					+ userid
					+ "', a.moduleid, modulename,"
					+ " uplevel, selflevel, serialno, menupic1, menupic2, titlepic,"
					+ " filename, isleaf, nodeurltitle, b.sublimit,a.nodename,a.sfdlgn "
					+ " FROM (SELECT DISTINCT '"
					+ userid
					+ "' userid, moduleid,"
					+ " modulename, uplevel, selflevel, serialno,"
					+ " menupic1, menupic2, titlepic, filename, isleaf, nodeurltitle,nodename,sfdlgn"
					+ " FROM tb_adm_module"
					+ " START WITH moduleid IN (SELECT moduleid"
					+ " FROM vi_adm_usermodule"
					+ " WHERE userid = '"
					+ userid
					+ "')"
					+ " CONNECT BY PRIOR uplevel = moduleid) a,"
					+ " vi_adm_usermodule b"
					+ " WHERE a.moduleid = b.moduleid(+) AND a.userid = b.userid(+);commit ";

			tools.execBatchUpdate(st, sql);
			//conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				conn.setAutoCommit(defaultCommit);
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null)
					tools.disconnectDatabase(conn);
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}
		return true;
	}

	/**
	 * 函数的说明: 监察登陆用户的合法性
	 * 
	 * @param userid
	 *            用户id
	 * @param password
	 *            登陆密码
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean checkUser(String userid, String password) {

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		boolean defaultCommit = false;
		// 连接数据库
		try {

			conn = tools.connectDatabase("");
			defaultCommit = conn.getAutoCommit();
			conn.setAutoCommit(false);
			st = tools.getStatement(conn);

			sql = "select userid ,trim(password),username,userdesc  from  tb_adm_user where userid=trim('" + userid + "') ";

			rs = tools.execQuery(st, sql);

			String md5pwd = new MD5().getMD5ofStr(password.trim());
			
			if (rs.next()) {
				if (rs.getString(2).equals(md5pwd)) {

					hash = new Hashtable();
					hash.put("userid", userid);
					hash.put("username", rs.getString(3));
					String tmp = rs.getString(4) == null ? "" : rs.getString(4);
					hash.put("userdesc", tmp);

					getPrivilege(userid);

					return true;
				} else {
					return false;
				}
			}

			conn.commit();

		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				System.out.println("JDBC事务回滚错误!");
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally {
			try {
				if (rs != null)
					tools.closeResultSet(rs);
				if (st != null)
					tools.closeStatement(st);
				if (conn != null) {
					conn.setAutoCommit(defaultCommit);
					tools.disconnectDatabase(conn);
				}
			} catch (Exception e) {
				System.out.println("JDBC关闭错误!");
				e.printStackTrace();
			}
		}
		return false;
	}

}

⌨️ 快捷键说明

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