123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- package com.fdkankan.manage.service.impl;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.manage.common.ResultCode;
- import com.fdkankan.manage.exception.BusinessException;
- import com.fdkankan.manage.common.PageInfo;
- import com.fdkankan.common.util.Base64Converter;
- import com.fdkankan.common.util.DateUtil;
- import com.fdkankan.common.util.SecurityUtil;
- import com.fdkankan.manage.entity.SysMenu;
- import com.fdkankan.manage.entity.SysRole;
- import com.fdkankan.manage.entity.SysUser;
- import com.fdkankan.manage.mapper.ISysUserMapper;
- import com.fdkankan.manage.service.ISysMenuService;
- import com.fdkankan.manage.service.ISysRoleService;
- import com.fdkankan.manage.service.ISysUserService;
- import com.fdkankan.manage.vo.request.SysUserParam;
- import com.fdkankan.manage.vo.response.ManageLoginResponse;
- import com.fdkankan.manage.vo.response.SysRoleVo;
- import com.fdkankan.manage.vo.response.SysUserVo;
- import com.fdkankan.redis.constant.RedisKey;
- import com.fdkankan.redis.util.RedisUtil;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.util.StringUtils;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2022-06-09
- */
- @Service
- public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> implements ISysUserService {
- @Autowired
- private ISysRoleService roleService;
- @Autowired
- private ISysMenuService menuService;
- @Autowired
- private RedisUtil redisUtil;
- @Autowired
- private ISysMenuService sysMenuService;
- @Override
- public SysUser getByUserName(String userName) {
- LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(SysUser::getUserName,userName);
- List<SysUser> list = this.list(wrapper);
- if(list == null || list.size() <=0){
- return null;
- }
- return list.get(0);
- }
- @Override
- public ManageLoginResponse getUserByUserNameAndPassword(String userName, String password) {
- LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(SysUser::getUserName,userName)
- .eq(SysUser::getPassword,password);
- List<SysUser> list = this.list(wrapper);
- if(list == null || list.size() <=0){
- return null;
- }
- SysUser sysUser = list.get(0);
- SysRole role = roleService.getById(sysUser.getRoleId());
- ManageLoginResponse loginVO = new ManageLoginResponse();
- BeanUtils.copyProperties(sysUser,loginVO);
- loginVO.setRoleId(role.getId());
- loginVO.setRoleName(role.getRoleName());
- sysMenuService.setRoleAndMenuCache(role,sysUser);
- return loginVO;
- }
- @Override
- public void addOrUpdate(SysUserParam param) {
- if(param.getId() == null){
- SysUser user = this.getByUserName(param.getUserName());
- if(user !=null){
- throw new BusinessException(ResultCode.USER_EXIST);
- }
- }
- SysUser sysUser = new SysUser();
- BeanUtils.copyProperties(param,sysUser);
- if(!StringUtils.isEmpty(param.getPassword())){
- String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(param.getPassword())));
- sysUser.setPassword(passwordMd5);
- }
- if(!StringUtils.isEmpty(param.getNewPassword())){
- String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(param.getNewPassword())));
- sysUser.setPassword(passwordMd5);
- }
- if(!StringUtils.isEmpty(param.getOldPassword()) && param.getId() != null){
- String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(param.getOldPassword())));
- SysUser byId = this.getById(param.getId());
- if(!byId.getPassword().equals(passwordMd5)){
- throw new BusinessException(ResultCode.OLD_PASSWORD_ERROR);
- }
- }
- this.saveOrUpdate(sysUser);
- }
- @Override
- public PageInfo pageList(SysUserParam param) {
- Page<SysUserVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
- return PageInfo.PageInfo(page);
- }
- @Override
- public HashMap<Long, Long> groupByRoleId() {
- HashMap<Long, Long> map = new HashMap<>();
- List<SysRoleVo> roleVos = this.getBaseMapper().groupByRoleId();
- for (SysRoleVo roleVo : roleVos) {
- map.put(roleVo.getId(),roleVo.getAdminCount());
- }
- return map;
- }
- @Override
- public HashMap<Long, SysUser> getByIds(Set<Long> sysUserIds) {
- HashMap<Long, SysUser> map = new HashMap<>();
- if(sysUserIds.size() >0){
- List<SysUser> sysUsers = this.listByIds(sysUserIds);
- sysUsers.forEach(entity-> map.put(entity.getId(),entity));
- }
- return map;
- }
- @Override
- public void updateRoleId(Long sysUserId, Integer roleId) {
- LambdaUpdateWrapper<SysUser> wrapper = new LambdaUpdateWrapper<>();
- wrapper.eq(SysUser::getId,sysUserId);
- wrapper.set(SysUser::getRoleId,roleId);
- this.update(wrapper);
- }
- @Override
- public void del(Long sysUserId) {
- LambdaUpdateWrapper<SysUser> wrapper = new LambdaUpdateWrapper<>();
- wrapper.eq(SysUser::getId,sysUserId);
- wrapper.set(SysUser::getRecStatus,sysUserId);
- this.update(wrapper);
- }
- }
|