UserGroupServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package com.huaxu.service.impl;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.huaxu.dao.GroupUserMapper;
  4. import com.huaxu.dao.UserGroupMapper;
  5. import com.huaxu.dao.UserRoleMapper;
  6. import com.huaxu.dto.UserGroupDto;
  7. import com.huaxu.entity.*;
  8. import com.huaxu.model.LoginUser;
  9. import com.huaxu.service.UserGroupService;
  10. import com.huaxu.util.UserUtil;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16. import java.util.List;
  17. /**
  18. * 用户组(UserGroup表)服务实现类
  19. *
  20. * @author makejava
  21. * @since 2020-10-27 09:13:57
  22. */
  23. @Service("userGroupService")
  24. public class UserGroupServiceImpl implements UserGroupService {
  25. @Autowired
  26. private UserGroupMapper userGroupMapper;
  27. @Autowired
  28. private GroupUserMapper groupUserMapper;
  29. /**
  30. * 通过ID查询单条数据
  31. *
  32. * @param id 主键
  33. * @return 实例对象
  34. */
  35. @Override
  36. public UserGroup selectById(Integer id) {
  37. return this.userGroupMapper.selectById(id);
  38. }
  39. /**
  40. * 查询所有
  41. *
  42. * @return 实例对象的集合
  43. */
  44. @Override
  45. public List<UserGroup> selectAll() {
  46. return this.userGroupMapper.selectAll();
  47. }
  48. /**
  49. * 根据条件查询
  50. *
  51. * @return 实例对象的集合
  52. */
  53. @Override
  54. public List<UserGroup> selectList(UserGroup userGroup) {
  55. return this.userGroupMapper.selectList(userGroup);
  56. }
  57. /**
  58. * 新增数据
  59. *
  60. * @param userGroup 实例对象
  61. * @return 实例对象
  62. */
  63. @Override
  64. public int insert(UserGroup userGroup) {
  65. LoginUser currentUser = UserUtil.getCurrentUser();
  66. userGroup.setTenantId(currentUser.getTenantId());
  67. userGroup.setCreateBy(currentUser.getUsername());
  68. return this.userGroupMapper.insert(userGroup);
  69. }
  70. /**
  71. * 批量新增
  72. *
  73. * @param userGroups 实例对象的集合
  74. * @return 生效的条数
  75. */
  76. @Override
  77. public int batchInsert(List<UserGroup> userGroups) {
  78. return this.userGroupMapper.batchInsert(userGroups);
  79. }
  80. /**
  81. * 修改数据
  82. *
  83. * @param userGroup 实例对象
  84. * @return 实例对象
  85. */
  86. @Override
  87. @Transactional
  88. public int update(UserGroup userGroup) {
  89. if(userGroup.getStatus()==-1){
  90. UserGroup hasUserGroupUsers = userGroupMapper.findHasUserGroupUsers(userGroup);
  91. if(hasUserGroupUsers!=null){
  92. return -1;
  93. }
  94. //删除用户与用户组的关系
  95. userGroupMapper.deleteUserGroupRelations(userGroup);
  96. }
  97. LoginUser currentUser = UserUtil.getCurrentUser();
  98. userGroup.setUpdateBy(currentUser.getUsername());
  99. return this.userGroupMapper.update(userGroup);
  100. }
  101. /**
  102. * 通过主键删除数据
  103. *
  104. * @param id 主键
  105. * @return 是否成功
  106. */
  107. @Override
  108. public int deleteById(Integer id) {
  109. return this.userGroupMapper.deleteById(id);
  110. }
  111. /**
  112. * 查询总数据数
  113. *
  114. * @return 数据总数
  115. */
  116. @Override
  117. public int count() {
  118. return this.userGroupMapper.count();
  119. }
  120. /**
  121. * 分页查询
  122. *
  123. * @return 对象列表
  124. */
  125. @Override
  126. public IPage<UserGroup> selectPage(UserGroup userGroup, IPage<UserGroup> page) {
  127. LoginUser currentUser = UserUtil.getCurrentUser();
  128. userGroup.setTenantId(currentUser.getTenantId());
  129. return this.userGroupMapper.selectPage(page, userGroup);
  130. }
  131. @Override
  132. public List<UserEntity> findUsersByUserGroup(UserGroup userGroup) {
  133. return userGroupMapper.findUsersByUserGroup( userGroup);
  134. }
  135. @Override
  136. @Transactional
  137. public int updateRolesByUserGroup(UserGroupDto userGroupDto) {
  138. UserGroup userGroup=new UserGroup();
  139. Integer groupId=userGroupDto.getGroupId();
  140. userGroup.setId(groupId);
  141. userGroupMapper.deleteUserGroupRelations(userGroup);
  142. List<Long> userIds = userGroupDto.getUserIds();
  143. List<GroupUser>groupUsers=new ArrayList<>();
  144. List<UserRoleEntity>userRoleEntities=new ArrayList<>();
  145. userIds.forEach(id->{
  146. GroupUser user=new GroupUser();
  147. user.setUserId(id);
  148. user.setGroupId(groupId);
  149. UserRoleEntity userRoleEntity=new UserRoleEntity();
  150. userRoleEntity.setRoleId(userGroupDto.getRoleId());
  151. userRoleEntity.setUserId(id);
  152. groupUsers.add(user);
  153. userRoleEntities.add(userRoleEntity);
  154. });
  155. userGroupMapper.deleteUserRoles(userGroupDto);
  156. userGroupMapper.batchInsertRoles(userRoleEntities);
  157. groupUserMapper.batchInsert(groupUsers);
  158. return 0;
  159. }
  160. }