UserServiceImpl.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.hssx.cloudmodel.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.github.pagehelper.PageHelper;
  4. import com.github.pagehelper.PageInfo;
  5. import com.hssx.cloudmodel.constant.Constant;
  6. import com.hssx.cloudmodel.entity.*;
  7. import com.hssx.cloudmodel.entity.vo.UserVO;
  8. import com.hssx.cloudmodel.mapper.*;
  9. import com.hssx.cloudmodel.service.UserService;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import com.hssx.cloudmodel.util.HttpRespMsg;
  12. import com.hssx.cloudmodel.util.MD5Util;
  13. import com.hssx.cloudmodel.util.PageUtil;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import javax.servlet.http.HttpServletRequest;
  17. import java.util.List;
  18. import java.util.UUID;
  19. /**
  20. * <p>
  21. * 服务实现类
  22. * </p>
  23. *
  24. * @author 吴涛涛
  25. * @since 2019-07-26
  26. */
  27. @Service
  28. public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
  29. @Autowired
  30. UserMapper userMapper;
  31. @Autowired
  32. CompanyMapper companyMapper;
  33. @Autowired
  34. UserCompanyMapper userCompanyMapper;
  35. @Autowired
  36. ProjectUserMapper projectUserMapper;
  37. @Autowired
  38. ProjectMapper projectMapper;
  39. @Override
  40. public HttpRespMsg login(User user, HttpServletRequest request) {
  41. System.out.println("user" + user);
  42. HttpRespMsg msg = new HttpRespMsg();
  43. //验证用户名是否存在
  44. QueryWrapper<User> qw = new QueryWrapper<>();
  45. qw.eq("account", user.getAccount());
  46. Integer count = userMapper.selectCount(qw);
  47. //验证用户名是否正确
  48. if (count > 0) {
  49. User newUser = userMapper.selectOne(qw);
  50. //验证密码是否正确
  51. if (MD5Util.getPassword(user.getPassword()).equals(newUser.getPassword())) {
  52. newUser.setPassword("");
  53. msg.data = newUser;
  54. } else {
  55. msg.setError("密码错误");
  56. }
  57. } else {
  58. msg.setError("账号不存在");
  59. }
  60. return msg;
  61. }
  62. @Override
  63. public HttpRespMsg pageList(PageUtil page, Integer companyId, Integer flag, String keyName, User user, Integer roleType) {
  64. HttpRespMsg msg = new HttpRespMsg();
  65. PageHelper.startPage(page.getPageNum(), page.getPageSize());
  66. List<UserVO> users = userMapper.selectListByCondition(roleType, companyId, flag, user, keyName);
  67. PageInfo<UserVO> pageInfos = new PageInfo<>(users);
  68. msg.data = pageInfos;
  69. return msg;
  70. }
  71. @Override
  72. public HttpRespMsg deleteUser(User user) {
  73. HttpRespMsg msg = new HttpRespMsg();
  74. QueryWrapper<ProjectUser> qw = new QueryWrapper<>();
  75. qw.eq("user_id", user.getId());
  76. //普通用户应用到项目不能删除
  77. Integer count = projectUserMapper.selectCount(qw);
  78. if (count > 0) {
  79. msg.setError("该用户已被应用到项目,暂不提供删除操作");
  80. return msg;
  81. }
  82. //是项目经理不能删除
  83. Integer countProject = projectMapper.selectCount(new QueryWrapper<Project>().eq("manager_id", user.getId()));
  84. if(countProject>0){
  85. msg.setError("该用户已被应用到项目,暂不提供删除操作");
  86. return msg;
  87. }
  88. //删除用户
  89. userMapper.deleteById(user.getId());
  90. //删除合作的公司
  91. userCompanyMapper.delete(new QueryWrapper<UserCompany>().eq("user_id",user.getId()));
  92. return msg;
  93. }
  94. @Override
  95. public HttpRespMsg addAndUpdateUser(User user, Integer flag) {
  96. //获取该账号的创建者
  97. User parentUser = userMapper.selectById(user.getParentId());
  98. //获取admin的用户信息
  99. User proParentUser = userMapper.selectById(parentUser.getParentId());
  100. HttpRespMsg msg = new HttpRespMsg();
  101. if (flag == 0) {
  102. //添加角色
  103. QueryWrapper<User> qw = new QueryWrapper<>();
  104. qw.eq("account", user.getAccount());
  105. int count = userMapper.selectCount(qw);
  106. if (count > 0) {
  107. User existingUser = userMapper.selectOne(qw);
  108. //此时用户已经有了,则建立一条合作公司的关系
  109. UserCompany userCompany = new UserCompany();
  110. userCompany.setUserId(existingUser.getId());
  111. userCompany.setBelongCompanyId(existingUser.getCompanyId());
  112. userCompany.setCooperationCompanyId(proParentUser.getCompanyId());
  113. QueryWrapper<UserCompany> qWra = new QueryWrapper<>(userCompany);
  114. int userCompanyCount = userCompanyMapper.selectCount(qWra);
  115. if (count == 0) {
  116. userCompanyMapper.insert(userCompany);
  117. }
  118. } else {
  119. //创建账号默认密码"000000"
  120. user.setPassword(MD5Util.getPassword(Constant.DEFAULT_PWD));
  121. user.setHeadImgurl(UUID.randomUUID().toString().replaceAll("-", ""));
  122. //获取角色所属的团体
  123. Company company = companyMapper.selectById(user.getCompanyId());
  124. if (Constant.ASSETS_COMPANY == company.getCompanyType()) {
  125. user.setSubordinateType(Constant.ASSETS_COMPANY);
  126. user.setTeamName("资产方");
  127. } else if (Constant.PRODUCER_COMPANY == company.getCompanyType()) {
  128. user.setSubordinateType(Constant.PRODUCER_COMPANY);
  129. user.setTeamName("生产方");
  130. }
  131. userMapper.insert(user);
  132. UserCompany userCompany = new UserCompany();
  133. userCompany.setUserId(user.getId());
  134. userCompany.setBelongCompanyId(user.getCompanyId());
  135. userCompany.setCooperationCompanyId(proParentUser.getCompanyId());
  136. QueryWrapper<UserCompany> qWra = new QueryWrapper<>(userCompany);
  137. int userCompanyCount = userCompanyMapper.selectCount(qWra);
  138. if (count == 0) {
  139. userCompanyMapper.insert(userCompany);
  140. }
  141. }
  142. } else if (flag == 1) {
  143. //更新角色信息
  144. userMapper.updateById(user);
  145. }
  146. return msg;
  147. }
  148. }