From 9a49aa0b254e3872124e2ff998cbb2ddfc461ec6 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 24 四月 2024 15:35:07 +0800 Subject: [PATCH] 用户功能完成 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++---- 1 files changed, 70 insertions(+), 9 deletions(-) diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java index 7d55aad..001b1fa 100644 --- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java +++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java @@ -1,8 +1,10 @@ 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; @@ -13,7 +15,10 @@ 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; @@ -22,14 +27,15 @@ 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> @@ -40,6 +46,7 @@ * @since 2024-04-11 */ @Service +@Slf4j public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService, UserDetailsService { @Autowired @@ -50,6 +57,12 @@ @Resource private SysMenuMapper sysMenuMapper; + + @Resource + private SysUserRoleService sysUserRoleService; + + @Autowired + BCryptPasswordEncoder passwordEncoder; @Override public Map<String, String> login(SysUser user) { @@ -82,14 +95,43 @@ 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 @@ -103,9 +145,13 @@ 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"; + } /** @@ -129,4 +175,19 @@ 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); + } + } -- Gitblit v1.8.0