📄 usercommand.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 + -