鉴权修改
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());
|
shopInfo = shopInfoService.getById(user.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (shopInfo == null) {
|
|
||||||
// throw new ApiNotPrintException("商户不存在");
|
|
||||||
// }
|
|
||||||
// 过期时间校验
|
|
||||||
if (shopInfo == null) {
|
if (shopInfo == null) {
|
||||||
shopInfo = new ShopInfo().setId(-1L).setShopName(user.getNickName()).setPhone(user.getPhone());
|
throw new ApiNotPrintException("商户不存在");
|
||||||
}
|
}
|
||||||
|
// 过期时间校验
|
||||||
if (shopInfo.getExpireTime() != null) {
|
if (shopInfo.getExpireTime() != null) {
|
||||||
if ((DateUtil.date().toLocalDateTime().isAfter(shopInfo.getExpireTime()))) {
|
if ((DateUtil.date().toLocalDateTime().isAfter(shopInfo.getExpireTime()))) {
|
||||||
throw new ApiNotPrintException("店铺已到期,请联系区域经理续费");
|
throw new ApiNotPrintException("店铺已到期,请联系区域经理续费");
|
||||||
|
|||||||
Reference in New Issue
Block a user