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