Merge branch 'prod' into test

This commit is contained in:
张松
2025-11-11 09:30:19 +08:00
21 changed files with 227 additions and 59 deletions

View File

@@ -16,8 +16,8 @@ public class MybatisFlexConfig {
//设置 SQL 审计收集器
AuditManager.setMessageCollector(auditMessage ->
log.info("{},{}ms", auditMessage.getFullSql()
, auditMessage.getElapsedTime())
log.info("[sql] time: {}, size: {},\n sql:{}",
auditMessage.getQueryTime(), auditMessage.getQueryCount(), auditMessage.getFullSql())
);
}

View File

@@ -15,7 +15,6 @@ import java.lang.annotation.Target;
* @author click33
*
*/
@SaCheckPermission(type = "admin")
//@SaCheckPermission(type = "user")
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE})
@@ -25,7 +24,6 @@ public @interface SaAdminCheckPermission {
* 需要校验的权限码
* @return 需要校验的权限码
*/
@AliasFor(annotation = SaCheckPermission.class)
String [] value() default {};
String name() default "";
@@ -34,7 +32,6 @@ public @interface SaAdminCheckPermission {
* 验证模式AND | OR默认AND
* @return 验证模式
*/
@AliasFor(annotation = SaCheckPermission.class)
SaMode mode() default SaMode.AND;
/**
@@ -52,7 +49,6 @@ public @interface SaAdminCheckPermission {
*
* @return /
*/
@AliasFor(annotation = SaCheckPermission.class)
String[] orRole() default {};
}

View File

@@ -16,7 +16,7 @@ import java.lang.annotation.Target;
*
*/
//@SaCheckRole(type = "user")
@SaCheckRole(type = "admin")
//@SaCheckRole(type = "admin")
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE})
public @interface SaAdminCheckRole {
@@ -25,14 +25,12 @@ public @interface SaAdminCheckRole {
* 需要校验的角色标识
* @return 需要校验的角色标识
*/
@AliasFor(annotation = SaCheckRole.class)
String [] value() default {};
/**
* 验证模式AND | OR默认AND
* @return 验证模式
*/
@AliasFor(annotation = SaCheckRole.class)
SaMode mode() default SaMode.AND;
}

View File

@@ -0,0 +1,47 @@
package com.czg.handler;
import cn.dev33.satoken.annotation.handler.SaAnnotationHandlerInterface;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.sa.StpKit;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import cn.dev33.satoken.annotation.SaMode;
/**
* 员工权限校验
* @author Administrator
*/
@Component
@Slf4j
public class SaAdminCheckPermissionHandler implements SaAnnotationHandlerInterface<SaAdminCheckPermission> {
@Override
public Class<SaAdminCheckPermission> getHandlerAnnotationClass() {
return SaAdminCheckPermission.class;
}
@Override
public void checkMethod(SaAdminCheckPermission annotation, Method method) {
// 2⃣ 如果是管理员,直接放行
if (StpKit.USER.isAdmin()) {
log.debug("[SaAdminCheckPermissionHandler] 管理员免校验权限: userId={}", StpKit.USER.getLoginId());
return;
}
// 3⃣ 非管理员执行权限校验
String[] permissions = annotation.value();
SaMode mode = annotation.mode();
if (permissions != null && permissions.length > 0) {
if (mode == SaMode.AND) {
StpKit.USER.checkPermissionAnd(permissions);
} else {
StpKit.USER.checkPermissionOr(permissions);
}
}
log.debug("[SaAdminCheckPermissionHandler] 非管理员执行权限校验: userId={}", StpKit.USER.getLoginId());
}
}

View File

@@ -0,0 +1,62 @@
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={}", StpKit.USER.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);
}
}
}

View File

@@ -0,0 +1,36 @@
package com.czg.account.dto.table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 台桌配置 实体类。
*
* @author zs
* @since 2025-02-13
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ShopTableEditBatchDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自动清台 0手动 1自动
*/
private Integer autoClear;
/**
* 自动清台时间 单位分钟 默认10
*/
private Integer clearTime;
}

View File

@@ -126,6 +126,8 @@ public class ShopTable implements Serializable {
*/
private Integer useNum;
private Integer autoClear;
public boolean canUseByStatus() {
return !ShopTableStatusEnum.UNBOUND.equalsVal(status)
&& !ShopTableStatusEnum.SETTLED.equalsVal(status)