1. 添加管理员允许修改其他用户密码功能

topo_dev
xueqingkun
parent b86fe16277
commit 3457fa838c

@ -0,0 +1,23 @@
package com.supervision.constant;
public enum RoleEnum {
ADMIN("1820688378166366209", "管理员"),
JINGZHEN_POLICE("1820688265587052546", "经侦民警");
private final String code;
private final String desc;
RoleEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
}

@ -2,12 +2,15 @@ package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.config.BusinessException;
import com.supervision.constant.RoleEnum;
import com.supervision.police.domain.SystemUser;
import com.supervision.police.dto.MenuDTO;
import com.supervision.police.dto.user.*;
@ -182,16 +185,26 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
@Override
public boolean changePassWord(String account, String password) {
UserInfoDTO user = UserUtil.getUser();
// 账号不为空,且当前操作不是账号归属人出发 (需要管理员权限)
if (StrUtil.isNotEmpty(account) && !StrUtil.equals(user.getAccount(), account)){
long count = user.getUserRoleList().stream().filter(userRoleDTO -> StrUtil.equals(userRoleDTO.getRoleId(), RoleEnum.ADMIN.getCode())).count();
if (count == 0){
log.info("账号:{}不是管理员,不能修改其他账号密码", user.getAccount());
throw new BusinessException("您没有权限修改用户密码!");
}
}
Assert.notEmpty(password, "密码不能为空");
Long count = super.lambdaQuery().eq(SystemUser::getId, user.getId()).count();
if (count == 0){
String userCount = StrUtil.isEmpty(account) ? user.getAccount() : account;
SystemUser systemUser = super.lambdaQuery().eq(SystemUser::getAccount, userCount).one();
if (ObjUtil.isNull(systemUser)){
log.info("账号:{}不存在", account);
return false;
}
return super.lambdaUpdate().set(SystemUser::getUserPd, UserUtil.signPassword(password))
.eq(SystemUser::getId, user.getId()).update();
.eq(SystemUser::getId, systemUser.getId()).update();
}
}

Loading…
Cancel
Save