UserManagerImpl.java
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:3k
源码类别:

OA系统

开发平台:

Java

  1. package com.bjsxt.oa.managers.impl;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.List;
  5. import com.bjsxt.oa.managers.SystemException;
  6. import com.bjsxt.oa.managers.UserManager;
  7. import com.bjsxt.oa.model.Person;
  8. import com.bjsxt.oa.model.Role;
  9. import com.bjsxt.oa.model.User;
  10. import com.bjsxt.oa.model.UsersRoles;
  11. public class UserManagerImpl extends AbstractManager implements UserManager {
  12. public void addOrUpdateUserRole(int userId, int roleId, int orderNo) {
  13. //首先根据userId和roleId查找UsersRoles对象
  14. UsersRoles ur = findUsersRoles(userId,roleId);
  15. if(ur == null){
  16. ur = new UsersRoles();
  17. ur.setOrderNo(orderNo);
  18. ur.setRole((Role)getHibernateTemplate().load(Role.class, roleId));
  19. ur.setUser((User)getHibernateTemplate().load(User.class, userId));
  20. getHibernateTemplate().save(ur);
  21. return;
  22. }
  23. //
  24. ur.setOrderNo(orderNo);
  25. getHibernateTemplate().update(ur);
  26. }
  27. public void addUser(User user, int personId) {
  28. if(personId == 0){
  29. throw new SystemException("必须选择相应的人员信息");
  30. }
  31. user.setPerson((Person)getHibernateTemplate().load(Person.class, personId));
  32. //设置创建时间
  33. user.setCreateTime(new Date());
  34. getHibernateTemplate().save(user);
  35. }
  36. public void delUser(int userId) {
  37. getHibernateTemplate().delete(getHibernateTemplate().load(User.class, userId));
  38. }
  39. public void delUserRole(int userId, int roleId) {
  40. getHibernateTemplate().delete(findUsersRoles(userId,roleId));
  41. }
  42. public User findUser(int userId) {
  43. return (User)getHibernateTemplate().load(User.class, userId);
  44. }
  45. public User login(String username, String password) {
  46. /**
  47.  * 因为设置了User的auto-import="false",所以,在这里使用
  48.  * HQL查询的时候,必须使用全路径的类名
  49.  */
  50. User user = (User)getSession().createQuery(
  51. "select u from com.bjsxt.oa.model.User u where u.username = ?")
  52. .setParameter(0, username)
  53. .uniqueResult();
  54. if(user == null){
  55. throw new SystemException("没有这个用户");
  56. }
  57. if(!user.getPassword().equals(password)){
  58. throw new SystemException("密码错误!");
  59. }
  60. if(user.getExpireTime() != null){
  61. //现在时间
  62. Calendar now = Calendar.getInstance();
  63. //失效时间
  64. Calendar expireTime = Calendar.getInstance();
  65. expireTime.setTime(user.getExpireTime());
  66. //如果现在在失效时间之后
  67. if(now.after(expireTime)){
  68. throw new SystemException("用户信息已失效!");
  69. }
  70. }
  71. return user;
  72. }
  73. public List searchUserRoles(int userId) {
  74. return getHibernateTemplate().find("select ur from UsersRoles ur where ur.user.id = ?", userId);
  75. }
  76. public void updateUser(User user, int personId) {
  77. if(personId == 0){
  78. throw new SystemException("必须选择相应的人员信息");
  79. }
  80. user.setPerson((Person)getHibernateTemplate().load(Person.class, personId));
  81. getHibernateTemplate().update(user);
  82. }
  83. private UsersRoles findUsersRoles(int userId,int roleId){
  84. return (UsersRoles)getSession().createQuery(
  85. "select ur from UsersRoles ur where ur.role.id = ? and ur.user.id = ?")
  86. .setParameter(0, roleId)
  87. .setParameter(1, userId)
  88. .uniqueResult();
  89. }
  90. }