📄 usermanagement.java~3~
字号:
package com.corp.bisc.ebiz.member;
import org.apache.log4j.*;
import org.w3c.dom.*;
import com.corp.bisc.ebiz.base.*;
import com.corp.bisc.ebiz.exception.*;
import com.sony.common.*;
import java.sql.*;
import java.util.*;
import java.io.*;
/**
* 此处插入类型描述。
* 创建日期:(2002-6-10 16:38:33)
* @author:pangwei
*/
public class UserManagement extends ObjectBase{
//操作类型
public static final int OPERATION_QUERY = 0;
public static final int OPERATION_ADD = 1;
public static final int OPERATION_DELETE = 2;
public static final int OPERATION_EDIT = 3;
public static final int OPERATION_DETAIL = 4;
//目前约定的超级管理员用户代码
public static final int ADMINID=4;
private static Vector vectUsers = new Vector();
private static UserManagement handler=null;
//
String usrLogin ="";
String usrName ="";
String cmpType="";
String cmpCode="";
String deptCode="";
String mailAddress="";
String keyin="";
int status=0;
/**
* UserManagement 构造子注解。
*/
public UserManagement() {
super();
}
//添加 HQ Channel List
private int addHQChannel(String channelList,Connection conn,String userid) throws Exception{
int result =-1;
String sql="";
System.out.println("-------- channelList="+channelList);
//插入HQ MANAGER CHANNEL
//分解字符
String channel[]=null;
//channel=GlbUtil.decomposeContent(channelList,'|');
//如果第1个字符为“|”,则从“|”后面开始分解
if (channelList.substring(0,1).equals("|"))
channelList = channelList.substring(1);
//分解
channel=GlbUtil.splitContent(channelList,'|');
int ilenth=channel.length;
System.out.println("-------- ilenth="+ilenth);
userid="'"+userid+"'";
String channelCod="";
for(int i=0;i<ilenth;i++){
channelCod=channel[i];
System.out.println("-------- channelCod="+channelCod);
channelCod="'"+channelCod+"'";
sql="insert into S_HQCHANNEL(MANAGERCOD, CHANNELCOD) values("+userid+","+channelCod+")";
System.out.println("-------- sql="+sql);
result=operateDB(conn,sql);
System.out.println("-------- result="+result);
}
return result;
}
//添加市场部用户
private int addMarket(RequestContext context,Connection conn,String userid) throws Exception{
int result =-1;
//取得页面参数
//String categorycod[]=null;
String categorycod=null;//category组合
int idlength=0;//category列表长度
categorycod=(String)context.getParameter("categorycod");
System.out.println("user managerment addMarket categorycod="+categorycod);
String cateCode=null;//category代码
//分解category代码
categorycod=categorycod.trim();
//分解记录
String SEPARATOR = "|"; //记录分隔符号
Vector v=decomposeString(categorycod,SEPARATOR);
//分解字段值
//****-----取行数 line,字段的数目
idlength=v.size();
System.out.println("user managerment addMarket categorycod idlength="+idlength);
userid="'"+userid+"'";
for(int i=0;i<idlength;i++){
//cateCode[i]="CTV";
//取一个字段
cateCode= (String) v.elementAt(i);
cateCode="'"+cateCode+"'";
String sql="insert into S_MARKETCAT(MARKETCOD,CATEGORYCOD)values("+userid+","+cateCode+")";
result=operateDB(conn,sql);
}
return result;
}
//添加销售部用户的属性
private int addSales(RequestContext context,Connection conn,String userid) throws Exception{
//addSalesUser-sales table
int result =-1;
//取得页面参数
//String userid ="00123480";
String s_level="1";
int level=0;
String subdeptcod="S001";
s_level=(String)context.getParameter("level");
subdeptcod=(String)context.getParameter("subdeptCode");
//Channel 列表
String channelList="";
if(subdeptcod!=null)
channelList=subdeptcod.trim();
if(s_level!=null){
level=Integer.parseInt(s_level);
}
String HQuserid="";
//level=5,是HQ Manager,部门是HQ
if(level==5){
subdeptcod="HQ";
HQuserid=userid;
}
userid="'"+userid+"'";
subdeptcod="'"+subdeptcod+"'";
String sql="insert into S_SALES(SALESID,LEVEL,SUBDEPTCOD)values("+userid+","+level+","+subdeptcod+")";
result=operateDB(conn,sql);
switch(level){
case 5:
addHQChannel(channelList,conn,HQuserid);
break;
}
return result;
}
//添加用户
public int addUser(RequestContext context,Connection conn,int userType) throws Exception{
int addresult = 0;//添加结果
String userid="";
//从页面取得用户代码 userid
userid=(String)context.getParameter("userid");
System.out.println("user managerment addUser userid="+userid);
//添加用户基本信息
addUserBaseInfo(context,conn,userid);
//添加用户权限
addUserRight(context,conn,userid);
//区分用户类型:0-市场部用户;1-销售部用户
switch(userType){
case 0://市场部用户
//添加市场部用户的属性
addMarket(context,conn,userid);
break;
case 1://销售部用户
//添加销售部用户的属性
addSales(context,conn,userid);
break;
}
return addresult;
}
//添加用户基本信息
private int addUserBaseInfo(RequestContext context,Connection conn,String userid) throws Exception{
int result =-1;
//定义参数
String password="";
String confirm_password="";
String name = "";
String cmpType="";
String cmpCode="";
String deptCode="";
String mailAddress="";
String keyin="Y";
String s_status="";
int status=1;
//取得页面参数
//userid = (String)context.getParameter("userid");
password=(String)context.getParameter("password");
confirm_password=(String)context.getParameter("confirm_password");
name = (String)context.getParameter("name");
cmpType=(String)context.getParameter("cmpType");
cmpCode=(String)context.getParameter("cmpCode");
deptCode=(String)context.getParameter("deptCode");
mailAddress=(String)context.getParameter("mailAddress");
keyin=(String)context.getParameter("keyin");
//判断密码和确认密码是否相等
if(!password.equals(confirm_password)){
//exception
}
s_status=(String)context.getParameter("status");
status=Integer.parseInt(s_status);
//
userid="'"+userid+"'";
password="'"+password+"'";
name="'"+name+"'";
cmpType="'"+cmpType+"'";
cmpCode="'"+deptCode+"'";
deptCode="'"+deptCode+"'";
mailAddress="'"+mailAddress+"'";
keyin="'"+keyin+"'";
String sql="insert into s_user(USERID,PASSWORD,NAME,CMPTYPE,CMPCODE,DEPTCODE,MAILADDRESS,KEYIN,STATUS)values("
+userid+","+password+","+name+","+cmpType+","+cmpCode+","+deptCode+","+mailAddress+","+keyin+","+status+")";
//添加
result=operateDB(conn,sql);
return result;
}
//添加用户权限
private int addUserRight(RequestContext context,Connection conn,String userid) throws Exception{
System.out.println("************* user managerment -addUserRight- ");
int result =-1;
String unitRight[]=null;//---权限单元列表------
String grpRight[]=null;//---权限组列表---
//取得页面参数
//---取权限单元列表------
unitRight=(String[])context.getParameterValues("unitRight");
//---取权限组列表---
grpRight=(String[])context.getParameterValues("grpRight");
int idlength=0;//列表长度
int funcid=0;//权限代码
userid="'"+userid+"'";
//add unit right
if(unitRight!=null){
idlength=unitRight.length;
System.out.println("************* user managerment -adddUserRight- unitRight length="+idlength);
funcid=0;
for(int i=0;i<idlength;i++){
System.out.println("************* user managerment -addUserRight- unitRight[i]="+unitRight[i]);
funcid=Integer.parseInt(unitRight[i]);
System.out.println("************* user managerment -addUserRight- unit funcid="+funcid);
String sql="insert into S_USERPRINCIPAL(USERID,FUNCID)values("+userid+","+funcid+")";
result=operateDB(conn,sql);
}
}
//add grp right
if(grpRight!=null){
idlength=grpRight.length;
System.out.println("************* user managerment -addUserRight- grpRight length="+idlength);
for(int i=0;i<idlength;i++){
System.out.println("************* user managerment -addUserRight- grpRight[i]="+grpRight[i]);
funcid=Integer.parseInt(grpRight[i]);
System.out.println("************* user managerment -addUserRight- group funcid="+funcid);
String sql="insert into S_USERPRINCIPAL(USERID,FUNCID)values("+userid+","+funcid+")";
result=operateDB(conn,sql);
}
}
return result;
}
//
public Vector decomposeString(String content,String SEPARATOR)
throws java.lang.Exception {
//String SEPARATOR = "|"; //记录分隔符号
//String STR_SEPARATOR = ","; //字段分隔符号
//String EQUALS = "="; //字段和值分隔符号
System.out.println("user managerment decomposeString begin");
System.out.println("user managerment decomposeString content="+content);
System.out.println("user managerment decomposeString SEPARATOR="+SEPARATOR);
//分解记录
Vector v = new Vector();
int startPos = 0; //取子字符串的开始位置 0
int separatorPos = content.indexOf(SEPARATOR, startPos); //取第1个分隔符号的位置
System.out.println("user managerment decomposeString separatorPos="+separatorPos);
while (separatorPos >= 0 && separatorPos < content.length()) {
//如果当前字符=分隔符号,则移到下一字符;
if (SEPARATOR.equals(String.valueOf(content.charAt(separatorPos + 1)))) {
System.out.println("user managerment decomposeString separatorPos begin");
separatorPos = content.indexOf(SEPARATOR, separatorPos + 2);
System.out.println("user managerment decomposeString separatorPos="+separatorPos);
}
else {
//取子字符串
v.addElement(content.substring(startPos, separatorPos));
//移到下一字符
startPos = separatorPos + 1;
//取下1个分隔符号的位置
separatorPos = content.indexOf(SEPARATOR, startPos);
}
}
//取最后1个子字符串
v.addElement(content.substring(startPos, content.length()));
return v;
}
private int delHQChannel(String userid,Connection conn) throws Exception{
int result =-1;
userid="'"+userid+"'";
String sql="delete from S_HQCHANNEL where MANAGERCOD="+userid;
result=operateDB(conn,sql);
return result;
}
private int delMarket(String userid,Connection conn) throws Exception{
int result =-1;
userid="'"+userid+"'";
String sql="delete from S_MARKETCAT where MARKETCOD="+userid;
result=operateDB(conn,sql);
return result;
}
private int delSales(String userid,Connection conn) throws Exception{
int result =-1;
userid="'"+userid+"'";
String sql="delete from S_SALES where SALESID="+userid;
result=operateDB(conn,sql);
return result;
}
//
//delete user
public String delUser(Connection conn,int userType,String userid) throws Exception{
String addresult = "";
delUserBaseInfo(userid,conn);
delUserRight(userid,conn);
switch(userType){
case 0:
delMarket(userid,conn);
break;
case 1:
delSales(userid,conn);
break;
}
return addresult;
}
private int delUserBaseInfo(String userid,Connection conn) throws Exception{
int result =-1;
userid="'"+userid+"'";
String sql="delete from s_user where USERID="+userid;
result=operateDB(conn,sql);
return result;
}
private int delUserRight(String userid,Connection conn) throws Exception{
int result =-1;
userid="'"+userid+"'";
String sql="delete from S_USERPRINCIPAL where USERID="+userid;
result=operateDB(conn,sql);
return result;
}
/**
* 判断用户名是否已经存在
* 创建日期:(2002-8-10 14:33:18)
* @return boolean
* @param usrName java.lang.String
*
*/
//蔡楚煌修改
public static boolean existName(String e_usrid, Connection conn) throws SQLException {
Statement stmt = null;
try {
stmt = conn.createStatement();
String eSql = "select USERID from s_user where USERID='" + e_usrid+"'";
ResultSet rs = stmt.executeQuery(eSql);
if (rs.next()) {
stmt.close();
return true;
}
stmt.close();
return false;
} catch (SQLException e) {
e.printStackTrace(System.out);
throw e;
//return true;
}
}
/**
* 从页面取得用户信息,并增加或者修改到数据库
* 创建日期:(2002-7-18 9:50:15)
* 本方法仅为管理员修改用户和增加用户时调用
* @param context RequestContext
* @param dotype int
* @autor Roy_caich
*/
//蔡楚煌,0811
public void fromRequestContext(RequestContext context,int dotype,Connection conn) throws Exception{
try{
//取得页面参数
usrLogin = (String)context.getParameter("loginid");
usrName = (String)context.getParameter("name");
cmpType=(String)context.getParameter("cmpType");
cmpCode=(String)context.getParameter("cmpCode");
deptCode=(String)context.getParameter("deptCode");
mailAddress=(String)context.getParameter("mailAddress");
keyin=(String)context.getParameter("keyin");
String s_status=(String)context.getParameter("status");
status=Integer.parseInt(s_status);
//数据检查
if(usrLogin.length()>32)
throw new InvalidParameterException("LoginID too long");
}catch(Exception usre){
ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
usre.printStackTrace(new PrintStream(out));
//log.error(out.toString());
throw usre;
}
}
/**
* 取得操作类型。
* 创建日期:(2002-7-15 16:33:34)
* @return int
* @param operation java.lang.String
*/
public static int getOperationType(String operation) throws Exception {
int operationtype = 0;
if(operation.equalsIgnoreCase("query"))
operationtype = UserManagement.OPERATION_QUERY;
else if(operation.equalsIgnoreCase("add"))
operationtype = UserManagement.OPERATION_ADD;
else if(operation.equalsIgnoreCase("delete"))
operationtype = UserManagement.OPERATION_DELETE;
else if(operation.equalsIgnoreCase("update"))
operationtype = UserManagement.OPERATION_EDIT;
else if(operation.equalsIgnoreCase("detail"))
operationtype = UserManagement.OPERATION_DETAIL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -