This commit is contained in:
阿沐 2024-02-24 12:24:44 +08:00
parent 14a1e5e7cb
commit df1af787f1
4 changed files with 60 additions and 5 deletions

View File

@ -14,9 +14,11 @@ import net.maku.framework.security.user.UserDetail;
import net.maku.system.convert.SysUserConvert;
import net.maku.system.entity.SysUserEntity;
import net.maku.system.query.SysUserQuery;
import net.maku.system.service.SysPostService;
import net.maku.system.service.SysUserPostService;
import net.maku.system.service.SysUserRoleService;
import net.maku.system.service.SysUserService;
import net.maku.system.vo.SysUserBaseVO;
import net.maku.system.vo.SysUserPasswordVO;
import net.maku.system.vo.SysUserVO;
import org.springdoc.core.annotations.ParameterObject;
@ -42,6 +44,7 @@ public class SysUserController {
private final SysUserService sysUserService;
private final SysUserRoleService sysUserRoleService;
private final SysUserPostService sysUserPostService;
private final SysPostService sysPostService;
private final PasswordEncoder passwordEncoder;
@GetMapping("page")
@ -77,9 +80,26 @@ public class SysUserController {
public Result<SysUserVO> info() {
SysUserVO user = SysUserConvert.INSTANCE.convert(SecurityUser.getUser());
// 用户岗位列表
List<Long> postIdList = sysUserPostService.getPostIdList(user.getId());
user.setPostIdList(postIdList);
// 用户岗位名称列表
List<String> postNameList = sysPostService.getNameList(postIdList);
user.setPostNameList(postNameList);
return Result.ok(user);
}
@PutMapping("info")
@Operation(summary = "修改登录用户信息")
@OperateLog(type = OperateTypeEnum.UPDATE)
public Result<String> loginInfo(@RequestBody @Valid SysUserBaseVO vo) {
sysUserService.updateLoginInfo(vo);
return Result.ok();
}
@PutMapping("password")
@Operation(summary = "修改密码")
@OperateLog(type = OperateTypeEnum.UPDATE)

View File

@ -2,6 +2,7 @@ package net.maku.system.convert;
import net.maku.framework.security.user.UserDetail;
import net.maku.system.entity.SysUserEntity;
import net.maku.system.vo.SysUserBaseVO;
import net.maku.system.vo.SysUserExcelVO;
import net.maku.system.vo.SysUserVO;
import org.mapstruct.Mapper;
@ -18,6 +19,8 @@ public interface SysUserConvert {
SysUserEntity convert(SysUserVO vo);
SysUserEntity convert(SysUserBaseVO vo);
SysUserVO convert(UserDetail userDetail);
UserDetail convertDetail(SysUserEntity entity);

View File

@ -24,4 +24,7 @@ public class SysUserQuery extends Query {
@Schema(description = "性别")
private Integer gender;
@Schema(description = "机构ID")
private Long orgId;
}

View File

@ -12,16 +12,17 @@ import net.maku.framework.common.utils.DateUtils;
import net.maku.framework.common.utils.ExcelUtils;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
import net.maku.framework.security.cache.TokenStoreCache;
import net.maku.framework.security.user.SecurityUser;
import net.maku.framework.security.utils.TokenUtils;
import net.maku.system.convert.SysUserConvert;
import net.maku.system.dao.SysUserDao;
import net.maku.system.entity.SysUserEntity;
import net.maku.system.enums.SuperAdminEnum;
import net.maku.system.query.SysRoleUserQuery;
import net.maku.system.query.SysUserQuery;
import net.maku.system.service.SysUserPostService;
import net.maku.system.service.SysUserRoleService;
import net.maku.system.service.SysUserService;
import net.maku.system.service.SysUserTokenService;
import net.maku.system.service.*;
import net.maku.system.vo.SysUserBaseVO;
import net.maku.system.vo.SysUserExcelVO;
import net.maku.system.vo.SysUserVO;
import org.springframework.stereotype.Service;
@ -45,6 +46,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
private final SysUserRoleService sysUserRoleService;
private final SysUserPostService sysUserPostService;
private final SysUserTokenService sysUserTokenService;
private final SysOrgService sysOrgService;
private final TokenStoreCache tokenStoreCache;
private final TransService transService;
@Override
@ -55,7 +58,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
// 分页查询
IPage<SysUserEntity> page = getPage(query);
params.put(Constant.PAGE, page);
// 数据列表
List<SysUserEntity> list = baseMapper.getList(params);
@ -71,6 +74,13 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
// 数据权限
params.put(Constant.DATA_SCOPE, getDataScope("t1", null));
// 机构过滤
if (query.getOrgId() != null) {
// 查询子机构ID列表包含本机构
List<Long> orgList = sysOrgService.getSubOrgIdList(query.getOrgId());
params.put("orgList", orgList);
}
return params;
}
@ -133,6 +143,25 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
}
@Override
public void updateLoginInfo(SysUserBaseVO vo) {
SysUserEntity entity = SysUserConvert.INSTANCE.convert(vo);
// 设置登录用户ID
entity.setId(SecurityUser.getUserId());
// 判断手机号是否存在
SysUserEntity user = baseMapper.getByMobile(entity.getMobile());
if (user != null && !user.getId().equals(entity.getId())) {
throw new ServerException("手机号已经存在");
}
// 更新用户
updateById(entity);
// 删除用户缓存
tokenStoreCache.deleteUser(TokenUtils.getAccessToken());
}
@Override
public void delete(List<Long> idList) {
// 删除用户
removeByIds(idList);