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

📄 usercommand.java

📁 java实现的可配置的工作流引擎,采用jsp+javabean实现
💻 JAVA
字号:
package com.hongsoft.res.command;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;

import org.hibernate.Session;

import com.hongsoft.agile.Agile;
import com.hongsoft.agile.AgileConnection;
import com.hongsoft.agile.Global;
import com.hongsoft.res.dispatcher.BaseCommand;
import com.hongsoft.res.formbean.FormUtils;
import com.hongsoft.res.formbean.UserFormBean;
import com.hongsoft.res.formbean.UserIteratorFormBean;
import com.hongsoft.res.formbean.UserSessionBean;
import com.hongsoft.res.pojo.ResException;
import com.hongsoft.res.pojo.ResManager;
import com.hongsoft.res.pojo.User;

public class UserCommand extends BaseCommand {
    /**
     * 具体的处理过程
     *
     * @throws com.hongsoft.res.exception.BaseException
     */
    public void command() throws Exception {
        UserFormBean bean = (UserFormBean) request.getAttribute(ResParamName.USER_FORM_BEAN_PARAM);
        String returnView = request.getReturnView();
        StringBuffer sb = new StringBuffer("res.user.");
        String cmdType = request.getCommandType();
        AgileConnection ac = Agile.connectToServer();
        // 实现具体的业务逻辑处理
        if ("create".equals(cmdType)) {
            createUser(ac.getHibernateSession(), bean);
            returnView = "facade";
            request.setAttribute(ResParamName.TIP_PARAM, "成功创建用户!");
        } else if ("modify".equals(cmdType)) {
            modifyUser(ac.getHibernateSession(), bean);
            returnView = "facade"; // 请检查是否返回进入modify的原search页面?
            request.setAttribute(ResParamName.TIP_PARAM, "用户资料修改成功!");
        } else if ("delete".equals(cmdType)) {
            // To do
            ResManager.deleteUser(ac.getHibernateSession(), bean.getUid());
            returnView = "deleteusersucess";
        } else if ("load".equals(cmdType)) {
            // To do
            loadUser(ac.getHibernateSession(), bean);
        } else if ("login".equals(cmdType)) {
            if (loginCheck(ac.getHibernateSession(), bean)) {
                returnView = "main";
                request.setAttribute(ResParamName.TIP_PARAM, "用户登录成功!");
            } else {
                returnView = "loginFail";
                request.setAttribute("errormessage", "密码错误!");
            }
        } else if ("search".equals(cmdType)) {
            UserIteratorFormBean uibean = (UserIteratorFormBean) request
                    .getAttribute(ResParamName.USER_ITERATOR_FORM_BEAN_PARAM);
            searchUser(ac.getHibernateSession(), uibean);
            returnView = "search"; // 返回到原来的查询列表页面
            request.setAttribute(ResParamName.TIP_PARAM, "查询结束!");
        }
        Agile.disConnectServer(ac, true);
        sb.append(returnView);
        // forward页面参见pmes_view.map配置文件
        this.forward(sb.toString(), request, response);
    }

    /**
     * 通过UserFormBean验证用户的有效性
     *
     * @param bean UserFormBean对象
     * @return 布尔值
     * @throws BaseException
     */
    private boolean loginCheck(Session session, UserFormBean bean) throws Exception {
        User user = FormUtils.getUser(bean);
        if (user != null && user.getLoginName() != null && !"".equals(user.getLoginName())) {
            User temp = ResManager.getUser(session, user.getLoginName());
            // 密码匹配返回true
            if (user.getPassword().equals(temp.getPassword())) {
                // 密码匹配则构建UserSessionBean对象,并且写入权限和组织信息
                UserSessionBean sessionUser = new UserSessionBean();
                sessionUser.setUser(ResManager.getUser(session, temp.getId()));
                sessionUser.setPrivileges(ResManager.getPrivileges(session, temp.getId()));
                // 获取用户所在组织
                sessionUser.setOrgUnit(ResManager.getOrgUnit(session, ResManager
                        .gerOrgidByUserid(session, temp.getId())));
                request.setUserSessionBean(sessionUser);
                return true;
            }
        }
        // 默认返回false
        return false;
    }

    // private long getChild(ResObjectElement e){
    // List l= e.getChildren();
    // if(e.getID()==Global.TOP_ORG_UNIT||
    // ((ResObjectElement)e.getChildren().get(0)).getID()==Global.TOP_ORG_UNIT)
    // return e.getID();
    // else
    // return getChild((ResObjectElement)l.get(0));
    // }

    /**
     * 通过用户ID获取用户信息,并写入UserFormBean,设置request
     *
     * @param bean UserFormBean对象,该对象的uid必须已被赋值
     * @throws BaseException
     */
    private void loadUser(Session session, UserFormBean bean) throws Exception {
        // 使用ResManager.getUser();
        bean = FormUtils.getUserFormBean(ResManager.getUser(session, bean.getUid()));
        request.setAttribute(ResParamName.USER_FORM_BEAN_PARAM, bean);
    }

    /**
     * 修改用户信息,同时将用户信息写入UserFormBean中,设置request
     *
     * @param bean UserFormBean
     * @throws BaseException
     */
    private void modifyUser(Session session, UserFormBean bean) throws Exception {
        // 使用ResManager.modifyUser();
        if ("1".equals(request.getParameter("changepwd"))) {
            User user = FormUtils.getUser(bean);
            ResManager.modifyUser(session, user);
        } else {
            modifyUserWithoutPassword(session);
        }
        request.setAttribute(ResParamName.USER_FORM_BEAN_PARAM, bean);
    }

    /**
     * 修改数据库用户信息但不必修改密码,用户登录名不允许修改
     *
     * @param user User
     * @throws ResException
     */
    private void modifyUserWithoutPassword(Session session) throws Exception {
        Connection conn = null;
        PreparedStatement ps = null;
        // boolean abort = true;
        try {
            conn = session.connection();
            // 修改数据库
            StringBuffer sb = new StringBuffer();
            sb.append("UPDATE res_user SET ").append("name=?, ").append("phone=?, ").append("email=? ").append(
                    " WHERE loginName=?");
            ps = conn.prepareStatement(sb.toString());
            ps.setString(1, request.getParameter("name"));
            ps.setString(2, request.getParameter("phone"));
            ps.setString(3, request.getParameter("email"));
            ps.setString(4, request.getParameter("loginName"));
            ps.execute();

            // abort = false;
        } finally {
            try {
                if (ps != null)
                    ps.close();
            } catch (Exception e) {
            }
        }
    }

    /**
     * 搜索用户信息列,将列表信息写入UserIteratorFormBean中,设置request
     *
     * @param bean UserFormBean
     * @throws BaseException
     */
    private void searchUser(Session session, UserIteratorFormBean uibean) throws Exception {
        if (uibean.getCount() == -1) {
            int totalCount = ResManager.searchUserCount(session, uibean.getUserName(), uibean.getLoginName(), true,
                    true);
            uibean.setCount(totalCount);
        }
        uibean.setEndIndex(uibean.getStartIndex() + Global.getPageSize());
        // 只应该查出特定部门的用户,yhb于1月8号修改
        // List
        // list=ResManager.searchUser(uibean.getUserName(),uibean.getLoginName(),true,true,uibean.getStartIndex(),uibean.getEndIndex());
        List list = ResManager.searchUser(session, uibean.getOrgID(), uibean.getUserName(), uibean.getLoginName(),
                true, true, uibean.getStartIndex(), uibean.getEndIndex());
        uibean.setItr(list.iterator());
        request.setAttribute(ResParamName.USER_ITERATOR_FORM_BEAN_PARAM, uibean);
    }

    /**
     * 创建用户信息,同时将用户信息写入UserFormBean中,设置request
     *
     * @param bean UserFormBean
     * @throws BaseException
     */
    private void createUser(Session session, UserFormBean bean) throws Exception {
        User user = FormUtils.getUser(bean);
        System.out.println("***********" + bean.getOrgID());
        // 向特定组织加入用户
        user = ResManager.createUser(session, user, (int) bean.getOrgID());
        bean.setUid(user.getId());
        request.setAttribute(ResParamName.USER_FORM_BEAN_PARAM, bean);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -