📄 admacessctl.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 + -