SysUserServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.fdkankan.manage.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.fdkankan.common.exception.BusinessException;
  7. import com.fdkankan.common.response.PageInfo;
  8. import com.fdkankan.common.util.Base64Converter;
  9. import com.fdkankan.common.util.DateUtil;
  10. import com.fdkankan.common.util.SecurityUtil;
  11. import com.fdkankan.manage.api.dto.ManageLoginResponse;
  12. import com.fdkankan.manage.entity.SysMenu;
  13. import com.fdkankan.manage.entity.SysRole;
  14. import com.fdkankan.manage.entity.SysUser;
  15. import com.fdkankan.manage.mapper.ISysUserMapper;
  16. import com.fdkankan.manage.service.ISysMenuService;
  17. import com.fdkankan.manage.service.ISysRoleService;
  18. import com.fdkankan.manage.service.ISysUserService;
  19. import com.fdkankan.manage.vo.request.SysUserParam;
  20. import com.fdkankan.manage.vo.response.SysRoleVo;
  21. import com.fdkankan.manage.vo.response.SysUserVo;
  22. import com.fdkankan.redis.constant.RedisKey;
  23. import com.fdkankan.redis.util.RedisUtil;
  24. import org.springframework.beans.BeanUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.util.StringUtils;
  28. import java.util.Collections;
  29. import java.util.Date;
  30. import java.util.HashMap;
  31. import java.util.List;
  32. import java.util.stream.Collectors;
  33. /**
  34. * <p>
  35. * 服务实现类
  36. * </p>
  37. *
  38. * @author
  39. * @since 2022-06-09
  40. */
  41. @Service
  42. public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> implements ISysUserService {
  43. @Autowired
  44. private ISysRoleService roleService;
  45. @Autowired
  46. private ISysMenuService menuService;
  47. @Autowired
  48. private RedisUtil redisUtil;
  49. @Override
  50. public SysUser getByUserName(String userName) {
  51. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  52. wrapper.eq(SysUser::getUserName,userName);
  53. List<SysUser> list = this.list(wrapper);
  54. if(list == null || list.size() <=0){
  55. return null;
  56. }
  57. return list.get(0);
  58. }
  59. @Override
  60. public ManageLoginResponse getUserByUserNameAndPassword(String userName, String password) {
  61. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  62. wrapper.eq(SysUser::getUserName,userName)
  63. .eq(SysUser::getPassword,password);
  64. List<SysUser> list = this.list(wrapper);
  65. if(list == null || list.size() <=0){
  66. return null;
  67. }
  68. SysUser sysUser = list.get(0);
  69. SysRole role = roleService.getById(sysUser.getRoleId());
  70. ManageLoginResponse loginVO = new ManageLoginResponse();
  71. BeanUtils.copyProperties(sysUser,loginVO);
  72. loginVO.setRoleId(role.getId());
  73. loginVO.setRoleName(role.getRoleName());
  74. //设置redis role
  75. String roleType = role.getRoleType();
  76. List<String> roleList = Collections.singletonList(roleType);
  77. redisUtil.set(String.format(RedisKey.MANAGE_ROLE_USER,sysUser.getId()), JSONObject.toJSONString(roleList));
  78. //设置redis perm
  79. List<SysMenu> menus = menuService.getListByUserId(sysUser.getId());
  80. List<String> menuList = menus.parallelStream().map(SysMenu::getPerms).collect(Collectors.toList());
  81. redisUtil.set(String.format(RedisKey.MANAGE_PERM_USER,sysUser.getId()), JSONObject.toJSONString(menuList));
  82. return loginVO;
  83. }
  84. @Override
  85. public void addOrUpdate(SysUserParam param) {
  86. if(param.getId() == null){
  87. SysUser user = this.getByUserName(param.getUserName());
  88. if(user !=null){
  89. throw new BusinessException(-1,"用户已存在!");
  90. }
  91. }
  92. SysUser sysUser = new SysUser();
  93. BeanUtils.copyProperties(param,sysUser);
  94. if(!StringUtils.isEmpty(param.getPassword())){
  95. String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(param.getPassword())));
  96. sysUser.setPassword(passwordMd5);
  97. }
  98. sysUser.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
  99. this.saveOrUpdate(sysUser);
  100. }
  101. @Override
  102. public PageInfo pageList(SysUserParam param) {
  103. Page<SysUserVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
  104. return PageInfo.PageInfo(page);
  105. }
  106. @Override
  107. public HashMap<Long, Long> groupByRoleId() {
  108. HashMap<Long, Long> map = new HashMap<>();
  109. List<SysRoleVo> roleVos = this.getBaseMapper().groupByRoleId();
  110. for (SysRoleVo roleVo : roleVos) {
  111. map.put(roleVo.getId(),roleVo.getAdminCount());
  112. }
  113. return map;
  114. }
  115. }