SysUserServiceImpl.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package com.fdkankan.sale.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.dynamic.datasource.annotation.DS;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.fdkankan.common.util.Base64Converter;
  7. import com.fdkankan.common.util.SecurityUtil;
  8. import com.fdkankan.redis.util.RedisUtil;
  9. import com.fdkankan.sale.common.PageInfo;
  10. import com.fdkankan.sale.common.ResultCode;
  11. import com.fdkankan.sale.entity.SysRole;
  12. import com.fdkankan.sale.entity.SysUser;
  13. import com.fdkankan.sale.entity.User;
  14. import com.fdkankan.sale.exception.BusinessException;
  15. import com.fdkankan.sale.mapper.ISysUserMapper;
  16. import com.fdkankan.sale.service.ISysMenuService;
  17. import com.fdkankan.sale.service.ISysRoleService;
  18. import com.fdkankan.sale.service.ISysUserService;
  19. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  20. import com.fdkankan.sale.vo.request.SysUserParam;
  21. import com.fdkankan.sale.vo.response.ManageLoginResponse;
  22. import com.fdkankan.sale.vo.response.SysRoleVo;
  23. import com.fdkankan.sale.vo.response.SysUserVo;
  24. import org.apache.commons.lang3.StringUtils;
  25. import org.springframework.beans.BeanUtils;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import java.util.HashMap;
  29. import java.util.List;
  30. import java.util.Set;
  31. /**
  32. * <p>
  33. * 服务实现类
  34. * </p>
  35. *
  36. * @author
  37. * @since 2022-12-09
  38. */
  39. @Service
  40. public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> implements ISysUserService {
  41. @Autowired
  42. private ISysRoleService roleService;
  43. @Autowired
  44. private ISysMenuService sysMenuService;
  45. @Autowired
  46. private RedisUtil redisUtil;
  47. @Override
  48. public SysUser getByUserName(String userName) {
  49. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  50. wrapper.eq(SysUser::getUserName,userName);
  51. List<SysUser> list = this.list(wrapper);
  52. if(list == null || list.size() <=0){
  53. return null;
  54. }
  55. return list.get(0);
  56. }
  57. @DS("db2")
  58. public SysUser getByUserNameDb2(String userName) {
  59. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  60. wrapper.eq(SysUser::getUserName,userName);
  61. List<SysUser> list = this.list(wrapper);
  62. if(list == null || list.size() <=0){
  63. return null;
  64. }
  65. return list.get(0);
  66. }
  67. @Override
  68. public ManageLoginResponse getUserByUserNameAndPassword(String userName, String password) {
  69. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  70. wrapper.eq(SysUser::getUserName,userName)
  71. .eq(SysUser::getPassword,password);
  72. List<SysUser> list = this.list(wrapper);
  73. if(list == null || list.size() <=0){
  74. return null;
  75. }
  76. SysUser sysUser = list.get(0);
  77. SysRole role = roleService.getById(sysUser.getRoleId());
  78. ManageLoginResponse loginVO = new ManageLoginResponse();
  79. BeanUtils.copyProperties(sysUser,loginVO);
  80. loginVO.setRoleId(role.getId());
  81. loginVO.setRoleName(role.getRoleName());
  82. sysMenuService.setRoleAndMenuCache(role,sysUser);
  83. return loginVO;
  84. }
  85. @Override
  86. public void addOrUpdate(SysUserParam param) {
  87. SysUser user = this.getByUserNameDb2(param.getUserName());
  88. if(user ==null){
  89. throw new BusinessException(ResultCode.USER_NOT_EXIST);
  90. }
  91. SysUser user2 = this.getByUserName(param.getUserName());
  92. if(user2 !=null){
  93. throw new BusinessException(ResultCode.USER_EXIST);
  94. }
  95. user.setId(null);
  96. user.setManageId(user.getId());
  97. user.setRoleId(param.getRoleId());
  98. user.setCreateUserId(param.getCreateUserId());
  99. user.setUpdateTime(null);
  100. this.save(user);
  101. }
  102. @Override
  103. public PageInfo pageList(SysUserParam param) {
  104. Page<SysUserVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
  105. return PageInfo.PageInfo(page);
  106. }
  107. @Override
  108. public HashMap<Long, Long> groupByRoleId() {
  109. HashMap<Long, Long> map = new HashMap<>();
  110. List<SysRoleVo> roleVos = this.getBaseMapper().groupByRoleId();
  111. for (SysRoleVo roleVo : roleVos) {
  112. map.put(roleVo.getId(),roleVo.getAdminCount());
  113. }
  114. return map;
  115. }
  116. @Override
  117. public HashMap<Long, SysUser> getByIds(Set<Long> sysUserIds) {
  118. HashMap<Long, SysUser> map = new HashMap<>();
  119. if(sysUserIds.size() >0){
  120. List<SysUser> sysUsers = this.listByIds(sysUserIds);
  121. sysUsers.forEach(entity-> map.put(entity.getId(),entity));
  122. }
  123. return map;
  124. }
  125. @Override
  126. public void saveByRedisKey(String redisKey) {
  127. String value = redisUtil.get(redisKey);
  128. if(StringUtils.isBlank(value)){
  129. return;
  130. }
  131. ManageLoginResponse manageLoginResponse = JSONObject.parseObject(value, ManageLoginResponse.class);
  132. SysUser sysUser = this.getByManageId(manageLoginResponse.getId());
  133. if(sysUser == null){
  134. sysUser= new SysUser();
  135. BeanUtils.copyProperties(manageLoginResponse,sysUser);
  136. sysUser.setId(null);
  137. sysUser.setRoleId(null);
  138. sysUser.setManageId(manageLoginResponse.getId());
  139. this.save(sysUser);
  140. }
  141. }
  142. @Override
  143. public SysUser getByManageId(Long userId) {
  144. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  145. wrapper.eq(SysUser::getManageId,userId);
  146. return this.getOne(wrapper);
  147. }
  148. @Override
  149. public HashMap<Long, SysUser> getMapByIds(Set<Long> userIds) {
  150. HashMap<Long,SysUser> map = new HashMap<>();
  151. if(userIds == null || userIds.size() <= 0){
  152. return map;
  153. }
  154. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  155. wrapper.eq(SysUser::getId,userIds);
  156. List<SysUser> list = this.list(wrapper);
  157. list.forEach(entity -> map.put(entity.getId(),entity));
  158. return map;
  159. }
  160. @Override
  161. @DS("db2")
  162. public Object allList(String userName) {
  163. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  164. if(StringUtils.isNotBlank(userName)){
  165. wrapper.like(SysUser::getUserName,userName);
  166. }
  167. return this.list(wrapper);
  168. }
  169. }