From ae7f04be9321ddbe17c46fae8ab05d34e7493f9f Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 19 二月 2025 13:40:06 +0800 Subject: [PATCH] 管理后台bug修改 --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 158 insertions(+), 11 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java index 15d6c27..7cc76d5 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysUserServiceImpl.java @@ -1,20 +1,16 @@ package com.sinata.system.service.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import javax.validation.Validator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.annotation.DataScope; import com.sinata.common.constant.UserConstants; import com.sinata.common.core.domain.entity.SysRole; import com.sinata.common.core.domain.entity.SysUser; +import com.sinata.common.entity.PageDTO; import com.sinata.common.exception.ServiceException; +import com.sinata.common.utils.BeanUtils; +import com.sinata.common.utils.DateUtils; import com.sinata.common.utils.SecurityUtils; import com.sinata.common.utils.StringUtils; import com.sinata.common.utils.bean.BeanValidators; @@ -22,6 +18,10 @@ import com.sinata.system.domain.SysPost; import com.sinata.system.domain.SysUserPost; import com.sinata.system.domain.SysUserRole; +import com.sinata.system.domain.dto.SysUserDTO; +import com.sinata.system.domain.dto.SysUserStatusDTO; +import com.sinata.system.domain.query.SysUserQuery; +import com.sinata.system.domain.vo.SysUserVO; import com.sinata.system.mapper.SysPostMapper; import com.sinata.system.mapper.SysRoleMapper; import com.sinata.system.mapper.SysUserMapper; @@ -30,6 +30,21 @@ import com.sinata.system.service.ISysConfigService; import com.sinata.system.service.ISysDeptService; import com.sinata.system.service.ISysUserService; +import com.sinata.system.service.SysDepartmentService; +import org.apache.commons.lang3.ArrayUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.validation.Validator; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -37,7 +52,7 @@ * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService +public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @@ -64,6 +79,8 @@ @Autowired protected Validator validator; + @Autowired + private SysDepartmentService sysDepartmentService; /** * 根据条件分页查询用户列表 @@ -547,4 +564,134 @@ } return successMsg.toString(); } + + /** + * 分页查询 + * + * @param query + * @return + */ + @Override + public PageDTO<SysUserVO> pageList(SysUserQuery query) { + String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); + } + Long userId = SecurityUtils.getUserId(); + SysRole sysRole = roleMapper.selectRoleByUserId(userId); + if (Objects.isNull(sysRole)) { + throw new ServiceException("当前用户没有角色"); + } + List<Long> roleIdList = Arrays.stream(sysRole.getManageRoleIdStr().split(",")).map(Long::parseLong).collect(Collectors.toList()); + Page<SysUserVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getNickName(), query.getRoleId(), query.getUserName(), treeCode, roleIdList); + return PageDTO.of(page); + } + + /** + * 新增用户 + * + * @param dto + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void add(SysUserDTO dto) { + SysUser sysUser = BeanUtils.copyBean(dto, SysUser.class); + if (StringUtils.isBlank(dto.getPassword())) { + throw new ServiceException("登录密码不能为空"); + } + if (!checkUserNameUnique(sysUser)) { + throw new ServiceException("新增用户" + dto.getUserName() + "失败,登录账号已存在"); + } + sysUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); + sysUser.setCreateBy(SecurityUtils.getUserId().toString()); + sysUser.setCreateTime(DateUtils.getNowDate()); + save(sysUser); + //添加用户角色关系 + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRole.setRoleId(dto.getRoleId()); + userRoleMapper.insert(sysUserRole); + } + + /** + * 编辑用户 + * + * @param dto + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void edit(SysUserDTO dto) { + SysUser sysUser = BeanUtils.copyBean(dto, SysUser.class); + if (!checkUserNameUnique(sysUser)) { + throw new ServiceException("编辑用户" + dto.getUserName() + "失败,登录账号已存在"); + } + if (StringUtils.isNotBlank(dto.getPassword())) { + sysUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); + } + sysUser.setUpdateBy(SecurityUtils.getUserId().toString()); + sysUser.setUpdateTime(DateUtils.getNowDate()); + updateById(sysUser); + // 删除用户与角色关联 + userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId()); + // 新增用户与角色管理 + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRole.setRoleId(dto.getRoleId()); + userRoleMapper.insert(sysUserRole); + } + + /** + * 查询用户详情 + * + * @param userId + * @return + */ + @Override + public SysUserVO getDetailInfo(Long userId) { + System.out.println("-------------------------------"); + System.out.println(SecurityUtils.getLoginUser().getUser()); + SysUser sysUser = this.getById(userId); + SysUserVO sysUserVO = null; + if (Objects.nonNull(sysUser)) { + sysUserVO = BeanUtils.copyBean(sysUser, SysUserVO.class); + sysUserVO.setPassword(""); + //查询用户角色 + SysUserRole sysUserRole = userRoleMapper.selectOne(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, sysUserVO.getUserId())); + if (Objects.nonNull(sysUserRole)) { + sysUserVO.setRoleId(sysUserRole.getRoleId()); + } + } + return sysUserVO; + } + + /** + * 批量修改账号状态 + * + * @param dto@return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void updStatusBatch(SysUserStatusDTO dto) { + List<SysUser> sysUsers = this.listByIds(dto.getUserIds()); + sysUsers.forEach(user -> user.setStatus(dto.getStatus())); + updateBatchById(sysUsers); + } + + /** + * 批量删除 + * + * @param userIds + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void delBatch(List<Long> userIds) { + Long[] userIdList = userIds.toArray(new Long[0]); + if (ArrayUtils.contains(userIdList, SecurityUtils.getUserId())) { + throw new ServiceException("当前账号不能删除"); + } + // 删除用户与角色关联 + userRoleMapper.deleteUserRole(userIdList); + this.removeBatchByIds(userIds); + } } -- Gitblit v1.7.1