UserServiceImpl.java 6.5 KB

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