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

📄 dbuserfactory.java

📁 基于struct结构的jsp
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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 + -