| | |
| | | package com.mes.userinfo.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.common.utils.JwtUtil; |
| | | import com.mes.common.utils.RedisUtil; |
| | | import com.mes.menu.mapper.SysMenuMapper; |
| | |
| | | import com.mes.userinfo.entity.request.UserRequest; |
| | | import com.mes.userinfo.entity.vo.SysUserVO; |
| | | import com.mes.userinfo.mapper.SysUserMapper; |
| | | import com.mes.userinfo.service.SysUserRoleService; |
| | | import com.mes.userinfo.service.SysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.authentication.AuthenticationManager; |
| | | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
| | |
| | | import org.springframework.security.core.userdetails.UserDetails; |
| | | import org.springframework.security.core.userdetails.UserDetailsService; |
| | | import org.springframework.security.core.userdetails.UsernameNotFoundException; |
| | | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2024-04-11 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService, UserDetailsService { |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Resource |
| | | private SysMenuMapper sysMenuMapper; |
| | | |
| | | @Resource |
| | | private SysUserRoleService sysUserRoleService; |
| | | |
| | | @Autowired |
| | | BCryptPasswordEncoder passwordEncoder; |
| | | |
| | | @Override |
| | | public Map<String, String> login(SysUser user) { |
| | |
| | | return "注销成功"; |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public SysUserVO saveUser(SysUserVO user) { |
| | | public String saveUser(SysUserVO user) { |
| | | log.info("保存用户信息"); |
| | | // 默认密码 |
| | | String password = passwordEncoder.encode(Const.DEFULT_PASSWORD); |
| | | user.setPassword(password); |
| | | SysUser sysUser = new SysUser(); |
| | | BeanUtils.copyProperties(user, sysUser); |
| | | this.save(sysUser); |
| | | saveUserRole(user.getRoleList(), sysUser.getId()); |
| | | return "success"; |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public SysUserVO updateUser(SysUserVO user) { |
| | | log.info("更新用户信息"); |
| | | SysUser sysUser = new SysUser(); |
| | | BeanUtils.copyProperties(user, sysUser); |
| | | this.updateById(sysUser); |
| | | log.info("删除用户角色信息"); |
| | | sysUserRoleService.removeByIds(user.getRoleList()); |
| | | log.info("保存用户角色信息"); |
| | | saveUserRole(user.getRoleList(), sysUser.getId()); |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public SysUserVO updateUser(SysUserVO sysUser) { |
| | | return null; |
| | | public String resetPassword(Long userId) { |
| | | log.info("重置密码为{}", Const.DEFULT_PASSWORD); |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.setId(userId); |
| | | String password = passwordEncoder.encode(Const.DEFULT_PASSWORD); |
| | | sysUser.setPassword(password); |
| | | this.updateById(sysUser); |
| | | return "success"; |
| | | } |
| | | |
| | | @Override |
| | |
| | | return baseMapper.selectJoinList(SysUserVO.class, wrapper); |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public String deleteUser(SysUserVO user) { |
| | | return null; |
| | | public String deleteUser(List<Long> ids) { |
| | | this.removeByIds(ids); |
| | | sysUserRoleService.remove(new QueryWrapper<SysUserRole>().in("user_id", ids)); |
| | | return "success"; |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | return new LoginUser(user, perms); |
| | | } |
| | | |
| | | |
| | | private void saveUserRole(List<SysRole> roles, Long userId) { |
| | | log.info("保存用户角色信息"); |
| | | List<SysUserRole> userRoles = new ArrayList<>(); |
| | | if (CollectionUtils.isEmpty(roles)) { |
| | | log.info("保存用户角色信息为空,给默认普通用户角色"); |
| | | userRoles.add(new SysUserRole(userId, Const.DEFULT_ROLE)); |
| | | } else { |
| | | log.info("保存用户角色信息"); |
| | | userRoles = roles.stream().map(e -> new SysUserRole(userId, e.getId())).collect(Collectors.toList()); |
| | | } |
| | | sysUserRoleService.saveBatch(userRoles); |
| | | } |
| | | |
| | | } |