鉴权修改
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package com.czg.handler;
|
||||
|
||||
import cn.dev33.satoken.annotation.handler.SaAnnotationHandlerInterface;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.annotation.SaAdminCheckRole;
|
||||
import com.czg.annotation.SaStaffCheckPermission;
|
||||
import com.czg.sa.StpKit;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* 员工权限校验
|
||||
* @author Administrator
|
||||
*/
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import org.springframework.stereotype.Component;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class SaAdminCheckRoleHandler implements SaAnnotationHandlerInterface<SaAdminCheckRole> {
|
||||
|
||||
@Override
|
||||
public Class<SaAdminCheckRole> getHandlerAnnotationClass() {
|
||||
return SaAdminCheckRole.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkMethod(SaAdminCheckRole annotation, Method method) {
|
||||
|
||||
if (StpKit.USER.isAdmin()) {
|
||||
log.debug("[SaAdminCheckRoleHandler] 管理员免校验: userId={}", StpUtil.getLoginId());
|
||||
return;
|
||||
}
|
||||
|
||||
// 3️⃣ 非管理员,执行原本注解校验逻辑
|
||||
String[] roles = annotation.value();
|
||||
SaMode mode = annotation.mode();
|
||||
|
||||
if (roles != null && roles.length > 0) {
|
||||
if (mode == SaMode.AND) {
|
||||
StpKit.USER.checkRoleAnd(roles);
|
||||
} else {
|
||||
// 有一个角色即可
|
||||
StpKit.USER.checkRoleOr(roles);
|
||||
}
|
||||
} else {
|
||||
// 如果注解没有指定角色,默认使用注解上 type 的值
|
||||
// 你 @SaCheckRole(type = "admin") 默认角色
|
||||
String typeRole = "admin";
|
||||
StpKit.USER.checkRole(typeRole);
|
||||
}
|
||||
|
||||
log.debug("[SaAdminCheckRoleHandler] 非管理员执行角色校验: userId={}", StpKit.USER.getLoginId());
|
||||
}
|
||||
}
|
||||
@@ -135,13 +135,10 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
||||
shopInfo = shopInfoService.getById(user.getId());
|
||||
}
|
||||
|
||||
// if (shopInfo == null) {
|
||||
// throw new ApiNotPrintException("商户不存在");
|
||||
// }
|
||||
// 过期时间校验
|
||||
if (shopInfo == null) {
|
||||
shopInfo = new ShopInfo().setId(-1L).setShopName(user.getNickName()).setPhone(user.getPhone());
|
||||
throw new ApiNotPrintException("商户不存在");
|
||||
}
|
||||
// 过期时间校验
|
||||
if (shopInfo.getExpireTime() != null) {
|
||||
if ((DateUtil.date().toLocalDateTime().isAfter(shopInfo.getExpireTime()))) {
|
||||
throw new ApiNotPrintException("店铺已到期,请联系区域经理续费");
|
||||
|
||||
Reference in New Issue
Block a user