开启登陆校验、角色管理功能修改(不可修改运营商
This commit is contained in:
parent
ad6c13ac99
commit
57e799b27c
@ -31,7 +31,7 @@ public class SaTokenConfigure {
|
||||
.setAuth(obj -> {
|
||||
if (isCheck) {
|
||||
// 登录校验 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
|
||||
SaRouter.match("/**", "/user/auth/loginByPwd", r -> StpUtil.checkLogin());
|
||||
SaRouter.match("/**", "/staff/ebikeOperatorStaff/login", r -> StpUtil.checkLogin());
|
||||
}
|
||||
|
||||
// 权限认证 -- 不同模块, 校验不同权限
|
||||
|
||||
@ -97,7 +97,7 @@ sa-token:
|
||||
# 是否输出操作日志
|
||||
is-log: true
|
||||
# 开启检查的登陆状态的开关
|
||||
is-check: false
|
||||
is-check: true
|
||||
|
||||
# 自定义加解密配置
|
||||
cdzy:
|
||||
|
||||
@ -19,14 +19,21 @@ public class EbikeTenantFactory implements TenantFactory {
|
||||
String id = (String) StpUtil.getLoginId();
|
||||
StaffInfo staffInfo = (StaffInfo) StpUtil.getSessionByLoginId(id).get(id);
|
||||
List<EbikeRole> roles = staffInfo.getRoles();
|
||||
for (EbikeRole role:roles){
|
||||
boolean isSysAdmin = false;
|
||||
for (EbikeRole role : roles) {
|
||||
if (role.getSysAdmin()) {
|
||||
return new Object[]{};
|
||||
isSysAdmin = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
long tenantId = Long.parseLong(attribute.toString());
|
||||
//系统管理员
|
||||
if (isSysAdmin) {
|
||||
return null;
|
||||
} else {
|
||||
return new Object[]{tenantId};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
|
||||
@ -49,6 +49,7 @@ public class MyBatisFlexConfiguration {
|
||||
|
||||
//设置数据已被删除时的值
|
||||
globalConfig.setDeletedValueOfLogicDelete(Boolean.TRUE);
|
||||
globalConfig.setTenantColumn("operator_id");
|
||||
return globalConfig;
|
||||
}
|
||||
}
|
||||
@ -47,6 +47,7 @@ public class EbikeRoleController {
|
||||
*/
|
||||
@GetMapping("remove")
|
||||
public JsonResult<?> remove(@RequestParam("roleId") Long roleId) {
|
||||
ebikeRoleService.checkRoleCode(roleId);
|
||||
ebikeRoleService.removeById(roleId);
|
||||
return JsonResult.success();
|
||||
}
|
||||
|
||||
@ -29,7 +29,6 @@ public class EbikeOperator implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@Column(tenantId = true)
|
||||
private Long operatorId;
|
||||
|
||||
private String operatorName;
|
||||
|
||||
@ -37,7 +37,6 @@ public class EbikeOperatorStaff implements Serializable {
|
||||
|
||||
private String salt;
|
||||
|
||||
@Column(tenantId = true)
|
||||
private Long operatorId;
|
||||
|
||||
private Integer status;
|
||||
|
||||
@ -44,7 +44,6 @@ public class EbikeRole implements Serializable {
|
||||
/**
|
||||
* 所属运营商
|
||||
*/
|
||||
@Column(tenantId = true)
|
||||
private Long operatorId;
|
||||
|
||||
/**
|
||||
@ -65,4 +64,10 @@ public class EbikeRole implements Serializable {
|
||||
@Column(onInsertValue = "false")
|
||||
private Boolean sysAdmin;
|
||||
|
||||
/**
|
||||
* 是否系统角色
|
||||
*/
|
||||
@Column(onInsertValue = "false")
|
||||
private Boolean sysRole;
|
||||
|
||||
}
|
||||
|
||||
@ -15,4 +15,6 @@ public interface EbikeRoleService extends IService<EbikeRole> {
|
||||
void saveRole(EbikeRoleVo ebikeRole);
|
||||
|
||||
void updateRole(EbikeRoleVo ebikeRole);
|
||||
|
||||
void checkRoleCode(Long roleId);
|
||||
}
|
||||
|
||||
@ -38,14 +38,10 @@ public class EbikeOperatorServiceImpl extends ServiceImpl<EbikeOperatorMapper, E
|
||||
throw new EbikeException("该运营商不存在");
|
||||
}else {
|
||||
checkOperatorName(ebikeOperator);
|
||||
EbikeOperator operator = EbikeOperator.builder()
|
||||
.operatorId(operatorId)
|
||||
.operatorName(ebikeOperator.getOperatorName())
|
||||
.address(ebikeOperator.getAddress())
|
||||
.contactPhone(ebikeOperator.getContactPhone())
|
||||
.createBy(StpUtil.getLoginIdAsLong())
|
||||
.build();
|
||||
ebikeOperatorMapper.update(operator);
|
||||
operatorOld.setOperatorName(ebikeOperator.getOperatorName());
|
||||
operatorOld.setAddress(ebikeOperator.getAddress());
|
||||
operatorOld.setContactPhone(ebikeOperator.getContactPhone());
|
||||
ebikeOperatorMapper.update(operatorOld);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,11 +61,16 @@ public class EbikeOperatorServiceImpl extends ServiceImpl<EbikeOperatorMapper, E
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(EBIKE_OPERATOR.OPERATOR_NAME.eq(ebikeOperator.getOperatorName()));
|
||||
EbikeOperator operator = ebikeOperatorMapper.selectOneByQuery(queryWrapper);
|
||||
if (operator != null){
|
||||
Long operatorId = ebikeOperator.getOperatorId();
|
||||
if (operatorId != null && !Objects.equals(operator.getOperatorId(), operatorId)){
|
||||
//更新逻辑
|
||||
if (operator != null && operatorId != null ){
|
||||
if (!Objects.equals(operator.getOperatorId(), operatorId)){
|
||||
throw new EbikeException("该运营商名称已被占用");
|
||||
}
|
||||
}
|
||||
//添加逻辑
|
||||
if (operator != null && operatorId == null) {
|
||||
throw new EbikeException("该运营商名称已被占用");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,16 +2,19 @@ package com.cdzy.staff.service.impl;
|
||||
|
||||
import com.cdzy.common.ex.EbikeException;
|
||||
import com.cdzy.staff.mapper.EbikeOperatorMapper;
|
||||
import com.cdzy.staff.mapper.EbikeRoleMapper;
|
||||
import com.cdzy.staff.mapper.EbikeStaffRoleMapper;
|
||||
import com.cdzy.staff.model.entity.EbikeOperator;
|
||||
import com.cdzy.staff.model.entity.EbikeRole;
|
||||
import com.cdzy.staff.model.vo.EbikeRoleVo;
|
||||
import com.cdzy.staff.service.EbikeRoleService;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.cdzy.staff.model.entity.EbikeRole;
|
||||
import com.cdzy.staff.mapper.EbikeRoleMapper;
|
||||
import com.cdzy.staff.service.EbikeRoleService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 员工角色表 服务层实现。
|
||||
*
|
||||
@ -24,6 +27,9 @@ public class EbikeRoleServiceImpl extends ServiceImpl<EbikeRoleMapper, EbikeRole
|
||||
@Resource
|
||||
private EbikeRoleMapper ebikeRoleMapper;
|
||||
|
||||
@Resource
|
||||
private EbikeStaffRoleMapper staffRoleMapper;
|
||||
|
||||
@Resource
|
||||
private EbikeOperatorMapper ebikeOperatorMapper;
|
||||
|
||||
@ -31,7 +37,7 @@ public class EbikeRoleServiceImpl extends ServiceImpl<EbikeRoleMapper, EbikeRole
|
||||
public void saveRole(EbikeRoleVo ebikeRole) {
|
||||
Long operatorId = ebikeRole.getOperatorId();
|
||||
checkOperator(operatorId);
|
||||
checkRoleCode(ebikeRole.getRoleCode());
|
||||
checkRoleCode(ebikeRole);
|
||||
EbikeRole role = EbikeRole.builder()
|
||||
.roleName(ebikeRole.getRoleName())
|
||||
.operatorId(operatorId)
|
||||
@ -46,37 +52,55 @@ public class EbikeRoleServiceImpl extends ServiceImpl<EbikeRoleMapper, EbikeRole
|
||||
Long operatorId = ebikeRole.getOperatorId();
|
||||
checkRole(ebikeRole.getRoleId());
|
||||
checkOperator(operatorId);
|
||||
checkRoleCode(ebikeRole.getRoleCode());
|
||||
EbikeRole role = EbikeRole.builder()
|
||||
.roleId(ebikeRole.getRoleId())
|
||||
.roleName(ebikeRole.getRoleName())
|
||||
.operatorId(operatorId)
|
||||
.roleCode(ebikeRole.getRoleCode())
|
||||
.description(ebikeRole.getDescription())
|
||||
.build();
|
||||
checkRoleCode(ebikeRole);
|
||||
EbikeRole role = ebikeRoleMapper.selectOneById(ebikeRole.getRoleId());
|
||||
role.setRoleName(ebikeRole.getRoleName());
|
||||
role.setRoleCode(ebikeRole.getRoleCode());
|
||||
role.setDescription(ebikeRole.getDescription());
|
||||
ebikeRoleMapper.update(role);
|
||||
}
|
||||
|
||||
public void checkOperator(Long operatorId){
|
||||
@Override
|
||||
public void checkRoleCode(Long roleId) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.eq(EbikeRole::getRoleId, roleId);
|
||||
EbikeRole selected = ebikeRoleMapper.selectOneByQuery(queryWrapper);
|
||||
//更新逻辑
|
||||
if (selected.getSysRole()) {
|
||||
throw new EbikeException("该角色为系统默认角色不可修改/删除");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkOperator(Long operatorId) {
|
||||
EbikeOperator ebikeOperator = ebikeOperatorMapper.selectOneById(operatorId);
|
||||
if (ebikeOperator == null) {
|
||||
throw new EbikeException("该运营商不存在");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkRole(Long roleId){
|
||||
public void checkRole(Long roleId) {
|
||||
EbikeRole ebikeRole = ebikeRoleMapper.selectOneById(roleId);
|
||||
if (ebikeRole == null) {
|
||||
throw new EbikeException("该角色不存在");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkRoleCode(String roleCode){
|
||||
public void checkRoleCode(EbikeRoleVo ebikeRole) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.eq(EbikeRole::getRoleCode, roleCode);
|
||||
.eq(EbikeRole::getRoleCode, ebikeRole.getRoleCode());
|
||||
EbikeRole selected = ebikeRoleMapper.selectOneByQuery(queryWrapper);
|
||||
if (selected != null) {
|
||||
throw new EbikeException("该权限标识已被占用");
|
||||
Long roleId = ebikeRole.getRoleId();
|
||||
//更新逻辑
|
||||
if (selected != null && roleId != null) {
|
||||
if (!Objects.equals(selected.getRoleId(), roleId)) {
|
||||
throw new EbikeException("该角色名称已被占用");
|
||||
} else if (Objects.equals(selected.getRoleId(), roleId) && selected.getSysRole()) {
|
||||
throw new EbikeException("该角色为系统默认角色不可修改/删除");
|
||||
}
|
||||
}
|
||||
//添加逻辑
|
||||
if (selected != null && roleId == null) {
|
||||
throw new EbikeException("该角色名称已被占用");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
pom.xml
2
pom.xml
@ -28,7 +28,7 @@
|
||||
<jackson.version>2.18.0</jackson.version>
|
||||
<hutool.version>5.8.26</hutool.version>
|
||||
<org.projectlombok.version>1.18.30</org.projectlombok.version>
|
||||
<mybatis-flex.version>1.11.1</mybatis-flex.version>
|
||||
<mybatis-flex.version>1.11.0</mybatis-flex.version>
|
||||
<mybatis.version>3.0.4</mybatis.version>
|
||||
<satoken.version>1.40.0</satoken.version>
|
||||
<mysql.version>8.0.32</mysql.version>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user