This commit is contained in:
attiya 2025-09-03 12:22:15 +08:00
parent 58c89daa19
commit 805244052a
4 changed files with 38 additions and 8 deletions

View File

@ -1,10 +1,14 @@
package com.cdzy.staff.component;
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.staff.model.dto.StaffInfo;
import com.cdzy.staff.model.entity.EbikeRole;
import com.mybatisflex.core.tenant.TenantFactory;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List;
public class EbikeTenantFactory implements TenantFactory {
public Object[] getTenantIds() {
@ -12,9 +16,18 @@ public class EbikeTenantFactory implements TenantFactory {
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
Object attribute = attributes.getAttribute("tenantId", RequestAttributes.SCOPE_REQUEST);
if (attribute != null) {
Long tenantId = Long.valueOf(attribute.toString());
String id = (String) StpUtil.getLoginId();
StaffInfo staffInfo = (StaffInfo) StpUtil.getSessionByLoginId(id).get(id);
List<EbikeRole> roles = staffInfo.getRoles();
for (EbikeRole role:roles){
if (role.getSysAdmin()) {
return new Object[]{};
}
}
long tenantId = Long.parseLong(attribute.toString());
return new Object[]{tenantId};
}
}
return null;
}

View File

@ -43,7 +43,7 @@ public class EbikeOperatorController {
.operatorName(ebikeOperator.getOperatorName())
.address(ebikeOperator.getAddress())
.contactPhone(ebikeOperator.getContactPhone())
.createBy(Long.valueOf((String) StpUtil.getLoginId()))
.createBy(StpUtil.getLoginIdAsLong())
.build();
ebikeOperatorService.save(operator);
return JsonResult.success();

View File

@ -1,5 +1,6 @@
package com.cdzy.staff.model.dto;
import com.cdzy.staff.model.entity.EbikeRole;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -39,7 +40,9 @@ public class StaffInfo implements Serializable {
// private List<EbikeRole> roles;
private List<String> roles;
private List<String> roleCodes;
private List<EbikeRole> roles;
/**
*权限码集合

View File

@ -6,8 +6,10 @@ import com.cdzy.common.utils.SHA256WithSaltUtil;
import com.cdzy.staff.model.dto.StaffInfo;
import com.cdzy.staff.model.entity.EbikeOperatorStaff;
import com.cdzy.staff.mapper.EbikeOperatorStaffMapper;
import com.cdzy.staff.model.entity.EbikeRole;
import com.cdzy.staff.service.EbikeOperatorStaffService;
import com.cdzy.staff.model.vo.StaffVo;
import com.cdzy.staff.service.EbikeRoleService;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
@ -17,6 +19,8 @@ import java.util.ArrayList;
import java.util.List;
import static com.cdzy.staff.model.entity.table.EbikeOperatorStaffTableDef.EBIKE_OPERATOR_STAFF;
import static com.cdzy.staff.model.entity.table.EbikeRoleTableDef.EBIKE_ROLE;
import static com.cdzy.staff.model.entity.table.EbikeStaffRoleTableDef.EBIKE_STAFF_ROLE;
/**
* 运营商员工账户表 服务层实现
@ -30,6 +34,9 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl<EbikeOperatorStaf
@Resource
private EbikeOperatorStaffMapper staffMapper;
@Resource
private EbikeRoleService roleService;
@Override
public String login(StaffVo staffVo) {
QueryWrapper queryWrapper = QueryWrapper.create()
@ -57,13 +64,19 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl<EbikeOperatorStaf
Long loginId = StpUtil.getLoginIdAsLong();
QueryWrapper queryWrapper = QueryWrapper.create()
.select(
EBIKE_OPERATOR_STAFF.STAFF_ID,EBIKE_OPERATOR_STAFF.OPERATOR_ID,
EBIKE_OPERATOR_STAFF.USERNAME,EBIKE_OPERATOR_STAFF.CREATE_BY,EBIKE_OPERATOR_STAFF.CREATE_TIME,
EBIKE_OPERATOR_STAFF.UPDATE_BY,EBIKE_OPERATOR_STAFF.UPDATE_TIME,
EBIKE_OPERATOR_STAFF.LAST_LOGIN,EBIKE_OPERATOR_STAFF.STATUS
EBIKE_OPERATOR_STAFF.STAFF_ID, EBIKE_OPERATOR_STAFF.OPERATOR_ID,
EBIKE_OPERATOR_STAFF.USERNAME, EBIKE_OPERATOR_STAFF.CREATE_BY, EBIKE_OPERATOR_STAFF.CREATE_TIME,
EBIKE_OPERATOR_STAFF.UPDATE_BY, EBIKE_OPERATOR_STAFF.UPDATE_TIME,
EBIKE_OPERATOR_STAFF.LAST_LOGIN, EBIKE_OPERATOR_STAFF.STATUS
)
.where(EBIKE_OPERATOR_STAFF.STAFF_ID.eq(loginId));
StaffInfo info = staffMapper.selectOneByQueryAs(queryWrapper,StaffInfo.class);
StaffInfo info = staffMapper.selectOneByQueryAs(queryWrapper, StaffInfo.class);
queryWrapper.clear();
queryWrapper
.from(EBIKE_ROLE)
.leftJoin(EBIKE_STAFF_ROLE).on(EBIKE_STAFF_ROLE.ROLE_ID.eq(EBIKE_ROLE.ROLE_ID))
.where(EBIKE_STAFF_ROLE.STAFF_ID.eq(loginId));
List<EbikeRole> list = roleService.list(queryWrapper);
List<String> permissions = new ArrayList<>();
permissions.add("common:btn:add");
permissions.add("common:btn:edit");
@ -71,6 +84,7 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl<EbikeOperatorStaf
List<String> roles = new ArrayList<>();
permissions.add("common");
info.setPermissions(permissions);
info.setRoles(list);
return info;
}