📄 dbuserfactory.java
字号:
Map usrRoleMap = user.getUsrRoleMap();
try {
if(i==1){
if (!usrRoleMap.containsValue(String.valueOf(usrRole))) {
pstm = conn.prepareStatement(UP_USER_ROLES);
pstm.setString(1, usrRole);
pstm.setInt(2, usrId);
pstm.executeUpdate();
logger.info("权限设置成功");
}
}
if(i==2){
if (!usrRoleMap.containsValue(String.valueOf(usrRole))) {
pstm = conn.prepareStatement(UP_USER_ROLES);
pstm.setString(1, user.getUsrRole() + "," + usrRole);
pstm.setInt(2, usrId);
pstm.executeUpdate();
logger.info("权限设置成功");
}
}
}
catch (Exception ex) {
logger.error("更新用户角色失败 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
/**
* 查询用户是否存在判断(返回整个用户)
*/
public User selectUser(String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
ResultSet rs = null;
User user = new DBUser();
try {
pstm = conn.prepareStatement(IS_EXIST_USER);
pstm.setString(1, usrName);
rs = pstm.executeQuery();
//判断是否有用户
if (rs.next()) {
logger.info("成功查找到该用户.....");
user = userInfo(CodeFilter.htmlEncode(usrName));
user.setIsUserExist(true);
}
else {
user.setIsUserExist(false);
}
}
catch (Exception ex) {
logger.error("创建论坛用户发生错误 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
return user;
}
/**
* 查找用户(角色相关)
*/
public List selArrayUser(int usrRole){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
ResultSet rs = null;
List list = new ArrayList();
try {
pstm = conn.prepareStatement(SEL_ROLE_USER);
pstm.setInt(1, usrRole);
rs = pstm.executeQuery();
//判断是否有用户
while (rs.next()) {
User user = userInfo(rs.getInt("usrId"));
list.add(user);
}
}
catch (Exception ex) {
logger.error("创建论坛用户发生错误 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
return list;
}
/**
* 角色处理
*/
private Roles getRoles(String strRoles) {
RolesXML rolesXML = XMLCreator.getInstance().getRolesXML();
StringTokenizer stringTokenizer = new StringTokenizer(strRoles,",");
boolean isLast = false;
String strFirst = "";
String strLast = "";
Roles roles = null;
logger.info("begin get userRoles string ------------------------");
while(stringTokenizer.hasMoreTokens()){
String strTemp = stringTokenizer.nextToken();
logger.info("该用户的角色值有 : " + strTemp);
//将角色里的第一个值个First
if("".equals(strFirst)){
strFirst = strTemp;
if("-1".equals(strFirst)){
//如果第一个值为-1代表为区长就返回
return rolesXML.getSelRolesXML(-1);
}
}
//循环判断用户的角色如果有-1就取-1的最后的值
roles = rolesXML.getSelRolesXML(Integer.parseInt(strTemp));
if(roles.getRoleMin()==-1){
strLast = strTemp;
isLast = true;
}
}
//如果为true
if(isLast){
return rolesXML.getSelRolesXML(Integer.parseInt(strLast));
}
else{
return rolesXML.getSelRolesXML(Integer.parseInt(strFirst));
}
}
/**
* 用户相关属性的更新
*/
public void upUserInfo_AddTopic(String usrName){
upUserWealth(usrName);
upUserTopic(usrName);
}
//添加主题时更新体力值(由体力值增加用户等级)
private void upUserWealth(String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(UP_USER_WEALTH);
pstm.setString(1,usrName);
pstm.executeUpdate();
}
catch (Exception ex) {
logger.error("更新用户体力值 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
//发表主题总和
private void upUserTopic(String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(UP_USER_TOPIC);
pstm.setString(1, usrName);
pstm.executeUpdate();
logger.info("更新用户个人主题");
UserWealth(usrName);
logger.info("更新用户权限");
}
catch (Exception ex) {
logger.error("更新主题总数值 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
//用户体力值
private void UserWealth(String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
ResultSet rs = null;
try {
/**
* 获取用户的角色,如果是系统特殊员一组的就不用更新
*/
Proxy proxy = new UserProxy();
String usrRole = userInfo(usrName).getUsrRole();
if(proxy.isAction(usrRole,35)){
pstm = conn.prepareStatement(USER_WEALTH);
pstm.setString(1, usrName);
rs = pstm.executeQuery();
rs.next();
int usrWealth = Integer.parseInt(rs.getString("usrWealth"));
if (100 < usrWealth && usrWealth <= 200) {
upUserRole(usrRole,1,usrName);
}
if (200 < usrWealth && usrWealth <= 400) {
upUserRole(usrRole,2,usrName);
}
if (400 < usrWealth && usrWealth <= 600) {
upUserRole(usrRole,3,usrName);
}
if (600 < usrWealth && usrWealth <= 900) {
upUserRole(usrRole,4,usrName);
}
if (900 < usrWealth && usrWealth <= 1200) {
upUserRole(usrRole,5,usrName);
}
if (1200 < usrWealth && usrWealth <= 1500) {
upUserRole(usrRole,6,usrName);
}
if (1500 < usrWealth && usrWealth <= 1800) {
upUserRole(usrRole,7,usrName);
}
if (usrWealth > 1800) {
upUserRole(usrRole,8,usrName);
}
}
}
catch (Exception ex) {
logger.error("更新主题总数值 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
private String getNowRoles(String roles,int roleId){
StringTokenizer stringTokenizer = new StringTokenizer(roles,",");
String str = "";
while(stringTokenizer.hasMoreTokens()){
String strTemp = stringTokenizer.nextToken();
int intTemp = Integer.parseInt(strTemp);
//如果角色里包含roleId,更新成新的roleId
if(intTemp == roleId){
strTemp = String.valueOf(intTemp+1);
}
str = strTemp + ","+str;
}
return str;
}
/**
* 更新角色
* @param roles String
* @param roleId int
* @param usrName String
*/
public void upUserRole(String roles,int roleId,String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(UP_ROLES);
pstm.setString(1,getNowRoles(roles,roleId));
pstm.setString(2,usrName);
pstm.executeUpdate();
logger.info("成功更新....");
}
catch (Exception ex) {
logger.error("设置帖子属性错误 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
/**
* 设置帖子属性时,用户的属性
*/
public void upUserState(String state,String usrName){
Connection conn = DBConnectionManager.getInstance().getConnection(
);
PreparedStatement pstm = null;
try {
if("good".equals(state))
pstm = conn.prepareStatement(USER_GOOD);
logger.info("设置用户变量 ! ");
pstm.setString(1,usrName);
pstm.executeUpdate();
logger.info("成功更新....");
}
catch (Exception ex) {
logger.error("设置帖子属性错误 : " + ex.getMessage());
}
finally {
try {
pstm.close();
}
catch (Exception ex) {
logger.error("关闭 pstm 失败 error : " + ex.getMessage());
}
try {
conn.close();
}
catch (Exception ex) {
logger.error("关闭数据库连接失败 error : " + ex.getMessage());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -