package com.conant.ums.lbean;
import java.sql.*;
import java.util.*;
import com.conant.ums.data.*;
import com.conant.ums.db.DbAccess;
import com.conant.ums.util.*;
import com.conant.ums.util.tree.*;
/**
* @date:</p>
* @author:
* @version 1.0
*/
public class FuncLBean extends BaseLBean
{
String datetime = new SysTime().getSysDate();
String loginTime = new SysTime().getSysTimeSemicolon();
public FuncLBean()
{
}
//�õ��û���½��Ϣ
public List loginData(Connection oConn) throws Exception
{
List rootList = new ArrayList();
TreeNode trRoot = null;
List EntiList = new ArrayList();
Map DeptMap = new HashMap();
List entiList = getAllFunc(oConn);
try
{
for (int i = 0; i < entiList.size(); i++)
{
Func_t enti = (Func_t) entiList.get(i);
TreeNode treenode = new TreeNode(enti.getFun_id(),
enti.getParent_funid(),
enti.getFun_name(),
enti.getFun_link());
EntiList.add(treenode);
DeptMap.put(enti.getFun_id(), treenode);
}
trRoot = TreeHelper.makeTree(EntiList, DeptMap, "#");
rootList.add(trRoot);
} catch (Exception e)
{
log.debug("error: " + e.toString());
throw e;
}
return rootList;
}
//�õ��û�������ϵͳ�IJ˵�
public List getAllFunc(Connection oConn) throws Exception
{
List allEntiList = null;
allEntiList = new ArrayList();
DbAccess oDba = new DbAccess();
String sql =
"select * from user_func order by layer_rank,parent_funid,layer_seq";
ResultSet rs = oDba.query(oConn, sql);
int rowscount = 0;
try
{
while (rs.next())
{
rowscount++;
Func_t func = new Func_t();
func.setFun_id(rs.getString("fun_id"));
func.setFun_name(rs.getString("fun_name"));
func.setParent_funid(rs.getString("parent_funid").trim());
func.setFun_type(rs.getString("fun_type"));
func.setFun_link(rs.getString("fun_link"));
allEntiList.add(func);
}
rs.close();
log.debug("select record:" + rowscount);
} catch (Exception e)
{
allEntiList = null;
log.error("get_set:" + e.getMessage());
throw e;
}
return allEntiList;
}
//����û��Ƿ���ڡ������Ƿ���ȷ
public boolean checkUser(Connection oConn, LoginData loginData) throws
Exception
{
boolean bRet = true;
String sPasswd = null;
String sql =
// "select * from user_user where del_flag='0' and user_tag=?";
"select * from user_user where del_flag='0' and is_admin='1' and user_tag=?";
try
{
PreparedStatement pstmt = oConn.prepareStatement(sql);
pstmt.setString(1, loginData.getUserTag().trim());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
loginData.setUserName(rs.getString("user_name"));
sPasswd = rs.getString("user_passwd").trim();
}
else
{
bRet = false;
}
rs.close();
pstmt.close();
//����û�����
if (bRet)
{
if (!sPasswd.equals(loginData.getUserPasswd()))
{
bRet = false;
}
}
} catch (Exception e)
{
log.error("select user info from user_user:" + e.getMessage());
throw e;
}
return bRet;
}
//����û��Ƿ��Ѿ���½
public boolean checkOn(Connection oConn, String usertag) throws
Exception
{
boolean bRet = true;
String sLogin = null;
String sql = "select is_login from user_user where user_tag=?";
try
{
PreparedStatement pstmt = oConn.prepareStatement(sql);
pstmt.setString(1, usertag);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
sLogin = rs.getString("is_login");
}
rs.close();
pstmt.close();
if (!sLogin.equals("0"))
{
bRet = false;
}
} catch (Exception e)
{
log.error("select user info from user_user:" + e.getMessage());
throw e;
}
return bRet;
}
//����û��Ƿ�����
public boolean checkLock(Connection oConn, String usertag) throws
Exception
{
boolean bRet = true;
String sLock = null;
String sql = "select lock_flag from user_user where user_tag=?";
try
{
PreparedStatement pstmt = oConn.prepareStatement(sql);
pstmt.setString(1, usertag);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
sLock = rs.getString("lock_flag");
}
rs.close();
pstmt.close();
if (!sLock.equals("0"))
{
bRet = false;
}
} catch (Exception e)
{
log.error("select user info from user_user:" + e.getMessage());
throw e;
}
return bRet;
}
//����û�ip�Ƿ����
public boolean checkIpFlag(Connection oConn, String usertag, String ip) throws
Exception
{
boolean bRet = true;
String sIpFlag = null;
List iplist = new ArrayList();
String sql = "select limit_ip from user_user where user_tag = '" +
usertag + "'";
log.info("sql is " + sql);
DbAccess oDba = new DbAccess();
ResultSet rs = oDba.query(oConn, sql);
while (rs.next())
{
sIpFlag = rs.getString("limit_ip");
}
//�õ��û�ip�б�
sql =
"select b.ip from user_user a, user_limit_ip b where a.user_tag = '" +
usertag + "' and a.user_id = b.user_id";
log.info("sql is " + sql);
rs = oDba.query(oConn, sql);
int rowscount = 0;
while (rs.next())
{
rowscount++;
iplist.add(rs.getString("ip"));
}
if (iplist.size() != 0 && sIpFlag != null && sIpFlag.equals("01"))
{
for (int i = 0; i < iplist.size(); i++)
{
if (iplist.toArray()[i].equals(ip))
{
bRet = false;
return bRet;
}
}
}
if (iplist.size() != 0 && sIpFlag != null && sIpFlag.equals("02"))
{
for (int i = 0; i < iplist.size(); i++)
{
if (iplist.toArray()[i].equals(ip))
{
bRet = true;
return bRet;
}
}
bRet = false;
return bRet;
}
return bRet;
}
//����û�time�Ƿ����
public boolean checkTimeFlag(Connection oConn, String usertag) throws
Exception
{
boolean bRet = true;
String sTimeFlag = null;
String sql = "select limit_time from user_user where user_tag = '" +
usertag + "'";
log.info("sql is " + sql);
DbAccess oDba = new DbAccess();
ResultSet rs = oDba.query(oConn, sql);
while (rs.next())
{
sTimeFlag = rs.getString("limit_time");
}
//�õ��û�ip�б�
sql = "select b.start_time, b.end_time from user_user a, user_limit_time b where a.user_tag = '" +
usertag + "' and a.user_id = b.user_id";
log.info("sql is " + sql);
rs = oDba.query(oConn, sql);
int rowscount = 0;
while (rs.next())
{
if (sTimeFlag != null && sTimeFlag.equals("01"))
{
if (rs.getString("end_time").compareTo(datetime) > 0 &&
datetime.compareTo(rs.getString("start_time")) > 0)
{
bRet = false;
return bRet;
}
}
if (sTimeFlag != null && sTimeFlag.equals("02"))
{
if (rs.getString("end_time").compareTo(datetime) > 0 &&
datetime.compareTo(rs.getString("start_time")) > 0)
{
bRet = true;
return bRet;
}
bRet = false;
return bRet;
}
rowscount++;
}
return bRet;
}
//ͨ��userTag�õ��û�������Ϣ
public F130_UserMgt updateLogin(Connection oConn, String userTag) throws
Exception
{
F130_UserMgt f130_UserMgt = new F130_UserMgt();
String sql = "select * from user_user where user_tag = '" + userTag +
"'";
log.debug("sql is " + sql);
DbAccess oDba = new DbAccess();
ResultSet rs = oDba.query(oConn, sql);
while (rs.next())
{
f130_UserMgt.setUser_id(rs.getString("user_id").trim());
f130_UserMgt.setUser_name(rs.getString("user_name").trim());
f130_UserMgt.setAdd_date(rs.getString("add_date"));
f130_UserMgt.setEmail(rs.getString("email"));
f130_UserMgt.setAddress(rs.getString("address"));
f130_UserMgt.setMobile(rs.getString("mobile"));
f130_UserMgt.setHome_tel(rs.getString("home_tel"));
if (rs.getString("lock_flag").trim().equals("0"))
{
f130_UserMgt.setLock_flag(ComGlobal.LOCK_No);
}
else
{
f130_UserMgt.setLock_flag(ComGlobal.LOCK_Yes);
}
}
return f130_UserMgt;
}
public String deptName(Connection oConn, String userTag) throws
Exception
{
String deptName = "";
String sql =
"select c.dept_name from user_user a, user_dept_pk b, user_dept c where a.user_tag = '" +
userTag +
"' and a.user_id = b.user_id and b.dept_id = c.dept_id";
log.debug("sql is " + sql);
DbAccess oDba = new DbAccess();
ResultSet rs = oDba.query(oConn, sql);
while (rs.next())
{
deptName = rs.getString("dept_name").trim();
}
return deptName;
}
public String area(Connection oConn, String userTag) throws
Exception
{
String area = "";
String sql =
"select c.area from user_user a, user_dept_pk b, user_dept c where a.user_tag = '" +
userTag +
"' and a.user_id = b.user_id and b.dept_id = c.dept_id";
log.debug("sql is " + sql);
DbAccess oDba = new DbAccess();
ResultSet rs = oDba.query(oConn, sql);
while (rs.next())
{
if (rs.getString("area") != null)
{
area = rs.getString("area").trim();
}
else
{
area = "";
}
}
return area;
}
//����û��Ƿ���ڡ������Ƿ���ȷ
public boolean checkLoing(Connection oConn, String userTag, String passwd) throws
Exception
{
boolean bRet = true;
String sPasswd = null;
String sql =
"select * from user_user where del_flag='0' and user_tag=? and is_admin='0'";
try
{
PreparedStatement pstmt = oConn.prepareStatement(sql);
pstmt.setString(1, userTag.trim());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
sPasswd = Decode.decrypt(rs.getString("user_passwd"));
}
else
{
bRet = false;
}
rs.close();
pstmt.close();
//����û�����
if (bRet)
{
if (!sPasswd.equals(passwd))
{
bRet = false;
}
}
} catch (Exception e)
{
log.error("select user info from user_user:" + e.getMessage());
throw e;
}
return bRet;
}
//����½���û���Ϣ�ŵ��ڴ��У�������һ��5λ�����
public int updateInfo(Connection oConn, String userTag, String sip) throws
Exception
{
Random random = new Random();
int result = random.nextInt(100000);
String loginId = String.valueOf(result);
F130_UserMgt f130_UserMgt = new F130_UserMgt();
F130_UserMgt loginData = updateLogin(oConn, userTag);
f130_UserMgt.setUser_id(loginData.getUser_id());
f130_UserMgt.setUser_tag(userTag);
f130_UserMgt.setUser_name(loginData.getUser_name());
f130_UserMgt.setAdd_date(loginData.getAdd_date());
f130_UserMgt.setLogin_ip(sip);
f130_UserMgt.setLogin_time(loginTime);
f130_UserMgt.setLock_flag(loginData.getLock_flag());
SessionMap.map.put(loginId, f130_UserMgt);
return result;
}
//�ж����û�ʱ�����Ƿ���ȷ
public boolean isRight(Connection oConn, String userTag, String userPasswd) throws
Exception
{
boolean bRet = true;
String sPasswd = null;
String sql = "select * from user_user where user_tag = ?";
try
{
PreparedStatement pstmt = oConn.prepareStatement(sql);
pstmt.setString(1, userTag.trim());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
sPasswd = Decode.decrypt(rs.getString("user_passwd"));
}
else
{
bRet = false;
}
rs.close();
pstmt.close();
//����û�����
if (bRet)
{
if (!sPasswd.equals(userPasswd))
{
bRet = false;
}
}
} catch (Exception e)
{
log.error("select user info from user_user:" + e.getMessage());
throw e;
}
return bRet;
}
}