UserService.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. package com.huaxu.service;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.huaxu.common.ToolUtil;
  4. import com.huaxu.dao.UserMapper;
  5. import com.huaxu.entity.UserEntity;
  6. import com.huaxu.entity.UserRoleEntity;
  7. import com.huaxu.entity.UserTagEntity;
  8. import com.huaxu.model.LoginUser;
  9. import com.huaxu.model.ProgramItem;
  10. import com.huaxu.util.UserUtil;
  11. import org.springframework.stereotype.Service;
  12. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  15. import javax.annotation.Resource;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. import java.util.Arrays;
  20. /**
  21. *
  22. * 用户Service接口
  23. * @author: WYY
  24. * @date 2020-10-22 17:35
  25. */
  26. @Service
  27. public class UserService extends ServiceImpl<UserMapper,UserEntity> {
  28. @Resource
  29. private UserMapper userMapper;
  30. @Resource
  31. private UserTagService userTagService;
  32. @Resource
  33. private UserRoleService userRoleService;
  34. /**
  35. * 自定义分页查询,含关联实体对像
  36. */
  37. public IPage<UserEntity> findPage(IPage<UserEntity> page, UserEntity userEntity) {
  38. LoginUser currentUser = UserUtil.getCurrentUser();
  39. List<ProgramItem> programItems = new ArrayList<ProgramItem>();
  40. Long[] ids = null;
  41. if (currentUser != null) {
  42. userEntity.setTenantId(currentUser.getTenantId());
  43. programItems = currentUser.getProgramItemList();
  44. if (programItems!=null &&programItems.size() > 0) {
  45. ids = new Long[programItems.size()];
  46. for ( int i=0;i< programItems.size();i++) {
  47. ids[i]= Long.valueOf(programItems.get(i).getOrgId());
  48. }
  49. }
  50. }
  51. Page<UserEntity> userPage = userMapper.findPage(page, userEntity, currentUser.getType(), ids);
  52. return userPage;
  53. }
  54. /**
  55. * 查列表
  56. */
  57. public List<UserEntity> findList(UserEntity userEntity) {
  58. LoginUser currentUser = UserUtil.getCurrentUser();
  59. userEntity.setTenantId(currentUser.getTenantId());
  60. return userMapper.findList(userEntity);
  61. }
  62. /**
  63. * 批量删除
  64. */
  65. @Transactional(rollbackFor = Exception.class)
  66. public boolean delUserByIds(Long[] ids) {
  67. for (Long id : ids) {
  68. //批量删除附件
  69. }
  70. return this.removeByIds(Arrays.asList(ids));
  71. }
  72. public boolean checkMobileUnique(String phone) {
  73. LoginUser currentUser = UserUtil.getCurrentUser();
  74. int count = this.count(new QueryWrapper<UserEntity>().eq("phone", phone).eq("tenant_id",currentUser.getTenantId()));
  75. if (count > 0) {
  76. return true;
  77. }
  78. return false;
  79. }
  80. public boolean checkMobileUnique(UserEntity user) {
  81. LoginUser currentUser = UserUtil.getCurrentUser();
  82. Long userId = ToolUtil.isEmpty(user.getId()) ? -1L : user.getId();
  83. UserEntity info = this.getOne(new QueryWrapper<UserEntity>().eq("phone", user.getPhone()).eq("tenant_id",currentUser.getTenantId()));
  84. if (ToolUtil.isNotEmpty(info) && !info.getId().equals(userId)) {
  85. return true;
  86. }
  87. return false;
  88. }
  89. /**
  90. * 单个删除
  91. */
  92. public boolean delUserById(Long id) {
  93. //todo 移除附件
  94. return this.removeById(id);
  95. }
  96. /**
  97. * 保存
  98. */
  99. public boolean addUser(UserEntity user) {
  100. if (this.save(user)) {
  101. Long pkId = user.getId();
  102. //添加用户标签
  103. if (user.getUserTags() != null) {
  104. for (Long item : user.getUserTags()) {
  105. UserTagEntity userTagEntity = new UserTagEntity();
  106. userTagEntity.setCreateBy(user.getCreateBy());
  107. userTagEntity.setUpdateBy(user.getUpdateBy());
  108. userTagEntity.setDateCreate(user.getDateCreate());
  109. userTagEntity.setDateUpdate(user.getDateUpdate());
  110. userTagEntity.setStatus(1);
  111. userTagEntity.setTagId(Long.valueOf(item));
  112. userTagEntity.setUserId(pkId);
  113. userTagService.addUserTag(userTagEntity);
  114. }
  115. }
  116. //添加角色
  117. if (user.getRoleId() != null) {
  118. UserRoleEntity userRoleEntity = new UserRoleEntity();
  119. userRoleEntity.setCreateBy(user.getCreateBy());
  120. userRoleEntity.setUpdateBy(user.getUpdateBy());
  121. userRoleEntity.setDateCreate(user.getDateCreate());
  122. userRoleEntity.setDateUpdate(user.getDateUpdate());
  123. userRoleEntity.setStatus(1);
  124. userRoleEntity.setRoleId(Long.valueOf(user.getRoleId()));
  125. userRoleEntity.setUserId(pkId);
  126. userRoleService.addUserRole(userRoleEntity);
  127. }
  128. return true;
  129. }
  130. return false;
  131. }
  132. /**
  133. * 修改根居ID
  134. */
  135. public boolean updateUserById(UserEntity user) {
  136. if (this.updateById(user)) {
  137. //更新关联附件信息
  138. Long pkId = user.getId();
  139. //添加用户标签
  140. if (user.getUserTags() != null && user.getUserTags().size() > 0) {
  141. //先删除之前的标签
  142. List<UserTagEntity> userTagEntitys = new ArrayList<>();
  143. UserTagEntity userTagDelete = new UserTagEntity();
  144. userTagDelete.setUserId(pkId);
  145. userTagEntitys = userTagService.findList(userTagDelete);
  146. Long[] ids = new Long[userTagEntitys.size()];
  147. for (int i = 0; i < userTagEntitys.size(); i++) {
  148. ids[i] = userTagEntitys.get(i).getId();
  149. }
  150. userTagService.delUserTagByIds(ids);
  151. //新增标签
  152. for (Long item : user.getUserTags()) {
  153. UserTagEntity userTagEntity = new UserTagEntity();
  154. userTagEntity.setCreateBy(user.getCreateBy());
  155. userTagEntity.setUpdateBy(user.getUpdateBy());
  156. userTagEntity.setDateCreate(user.getDateCreate());
  157. userTagEntity.setDateUpdate(user.getDateUpdate());
  158. userTagEntity.setStatus(1);
  159. userTagEntity.setTagId(Long.valueOf(item));
  160. userTagEntity.setUserId(pkId);
  161. userTagService.addUserTag(userTagEntity);
  162. }
  163. }
  164. //修改角色
  165. if (user.getRoleId() != null) {
  166. List<UserRoleEntity> userRoleEntities = new ArrayList<>();
  167. UserRoleEntity userRoleEntity = new UserRoleEntity();
  168. userRoleEntity.setUserId(pkId);
  169. userRoleEntities = userRoleService.findList(userRoleEntity);
  170. if (userRoleEntities.size() > 0) {
  171. Long userRoleId = userRoleEntities.get(0).getId();
  172. userRoleService.delUserRoleById(userRoleId);
  173. }
  174. //新增角色
  175. UserRoleEntity userRole = new UserRoleEntity();
  176. userRole.setCreateBy(user.getCreateBy());
  177. userRole.setUpdateBy(user.getUpdateBy());
  178. userRole.setDateCreate(user.getDateCreate());
  179. userRole.setDateUpdate(user.getDateUpdate());
  180. userRole.setStatus(1);
  181. userRole.setRoleId(Long.valueOf(user.getRoleId()));
  182. userRole.setUserId(pkId);
  183. userRoleService.addUserRole(userRole);
  184. }
  185. return true;
  186. }
  187. return false;
  188. }
  189. /**
  190. * 根居ID获取对象
  191. */
  192. public UserEntity findUserById(Long id) {
  193. List<UserTagEntity> userTagEntitys = new ArrayList<>();
  194. UserTagEntity userTags = new UserTagEntity();
  195. userTags.setUserId(id);
  196. userTagEntitys = userTagService.findList(userTags);
  197. List<Long> ids = new ArrayList<>();
  198. for (int i = 0; i < userTagEntitys.size(); i++) {
  199. ids.add(userTagEntitys.get(i).getTagId());
  200. }
  201. UserEntity userEntity = userMapper.findUserById(id);
  202. userEntity.setUserTags(ids);
  203. return userEntity;
  204. }
  205. }