userserviceimpl.java
来自「一个基本的图书馆管理系统」· Java 代码 · 共 227 行
JAVA
227 行
package c18.service;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import c18.dao.HibernateSessionFactory;
import c18.dao.UserDao;
import c18.dao.UserDaoImpl;
import c18.entity.User;
import c18.helper.PageBean;
import c18.helper.PageResult;
import c18.struts.action.exception.ActionException;
import c18.session.UserSession;
import c18.struts.action.exception.ExistReferActionException;
import c18.struts.action.exception.InvalidPasswordActionException;
import c18.struts.action.exception.NotFindActionException;
import c18.struts.action.exception.NotLoginActionException;
import c18.struts.action.exception.ExistNameActionException;
public class UserServiceImpl implements UserService {
/**
* 日志操作对象
*/
private static final Log log = LogFactory.getLog(UserServiceImpl.class);
public int login(String loginName, String password,
HttpServletRequest request, HttpServletResponse response)
throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
//查询登陆名用户
List list = userDao.findByLoginName(loginName);
//不存在此登陆名用户
if (list == null || list.size() < 1) {
log.debug("用户登陆名" + loginName + "的用户不存在");
throw new NotFindActionException("用户登陆名" + loginName + "的用户不存在");
}
//存在此登陆名用户,判断密码
User user = (User) list.get(0);
//密码不正确
if (password == null || !password.equals(user.getPassword())) {
log.debug("用户登陆名" + loginName + "的用户密码不正确");
throw new InvalidPasswordActionException("用户登陆名" + loginName + "的用户密码不正确");
}
//在Session中保存登陆信息
UserSession.saveSession(user, request, response);
return user.getUserNo();
}
public int loginOn(HttpServletRequest request, HttpServletResponse response)
throws ActionException {
//取用户登陆信息
UserSession usersession = UserSession.getSession(request, response);
//未登陆或Session已失效
if (usersession == null) {
throw new NotLoginActionException("用户未登陆或登陆已失效");
}
return usersession.getUserNo();
}
public int logout(HttpServletRequest request, HttpServletResponse response)
throws ActionException {
//取用户登陆信息
UserSession usersession = UserSession.getSession(request, response);
//有登陆信息
if (usersession != null) {
//清除用户登陆信息
UserSession.removeSession(request, response);
}
return 0;
}
public int register(User user) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//开始事务
session.beginTransaction();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
//判断是否已存在同一账号
List users = userDao.findByLoginName(user.getLoginName());
if (users != null && users.size() > 0) {
//已存在同一账号
//事务回滚
session.getTransaction().rollback();
throw new ExistNameActionException("已存在此账号的用户");
}
//生成用户
userDao.save(user);
//事务提交
session.getTransaction().commit();
return user.getUserNo();
}
public PageResult searchByLoginName(String loginName, PageBean pageBean) {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
//搜索
return userDao.searchByLoginName(loginName, pageBean);
}
public User getUser(int userNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
return userDao.get(userNo);
}
public PageResult getUsers(PageBean pageBean) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
return userDao.getUsers(pageBean);
}
public void modUser(User user) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//开始事务
session.beginTransaction();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
//得到原用户信息
User moduser = userDao.get(user.getUserNo());
if(moduser == null){//原用户信息不存在
//事务回滚
session.getTransaction().rollback();
log.debug("原始用户信息不存在");
throw new ExistNameActionException("原始用户信息不存在");
}
//判断是否已存在同一登陆名
List users = userDao.findByLoginName(user.getLoginName());
if (users != null && users.size() > 0
&& ((User)users.get(0)).getUserNo() != user.getUserNo()) {
//已存在同一登陆名
//事务回滚
session.getTransaction().rollback();
log.debug("已存在同一账号的其它用户");
throw new ExistNameActionException("已存在同一账号的其它用户");
}
moduser.setBirthday(user.getBirthday());
moduser.setCert(user.getCert());
moduser.setCertType(user.getCertType());
moduser.setEmail(user.getEmail());
moduser.setLoginName(user.getLoginName());
moduser.setPassword(user.getPassword());
moduser.setPhone(user.getPhone());
moduser.setSex(user.getSex());
moduser.setUserName(user.getUserName());
moduser.setUserNo(user.getUserNo());
//更新用户
userDao.update(moduser);
//事务提交
session.getTransaction().commit();
}
public void delUser(int userNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//开始事务
session.beginTransaction();
//组建UserDao对象
UserDao userDao = new UserDaoImpl(session);
//得到原用户信息
User user = userDao.get(userNo);
if(user == null){//原用户信息不存在
//事务回滚
session.getTransaction().rollback();
log.debug("用户信息不存在");
throw new NotFindActionException("用户信息不存在");
}
try {
//删除用户
userDao.remove(user);
} catch (HibernateException e) { //删除错误,回滚
//回滚
session.getTransaction().rollback();
log.debug("可能存在其它引用,delUser()失败");
throw new ExistReferActionException("此用户可能存在引用,请先删除相关引用");
}
//事务提交
session.getTransaction().commit();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?