feat: 子卷送到待检区任务

This commit is contained in:
2026-08-13 15:04:14 +08:00
parent e20c0f2168
commit 6db59d422d
13 changed files with 148 additions and 33 deletions

View File

@@ -15,7 +15,8 @@ import java.util.Arrays;
public enum UserTypeEnum implements ArrayValuable<Integer> {
MEMBER(1, "会员"), // 面向 c 端,普通用户
ADMIN(2, "管理员"); // 面向 b 端,管理后台
ADMIN(2, "管理员"), // 面向 b 端,管理后台
;
public static final Integer[] ARRAYS = Arrays.stream(values()).map(UserTypeEnum::getValue).toArray(Integer[]::new);

View File

@@ -2,6 +2,7 @@ package cn.code.nl.framework.mybatis.core.handler;
import cn.code.nl.framework.mybatis.core.dataobject.BaseDO;
import cn.code.nl.framework.security.core.util.SecurityFrameworkUtils;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
@@ -37,27 +38,33 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
// 当前登录用户不为空,创建人为空,则当前登录用户为创建人
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) {
baseDO.setCreator(userId.toString());
} else {
baseDO.setCreator("0");
}
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) {
baseDO.setUpdater(userId.toString());
} else {
baseDO.setUpdater("0");
}
}
}
@Override
public void updateFill(MetaObject metaObject) {
// 更新时间为空,则以当前时间为更新时间
Object modifyTime = getFieldValByName("updateTime", metaObject);
if (Objects.isNull(modifyTime)) {
setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
// 以当前时间为更新时间
setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人
Object modifier = getFieldValByName("updater", metaObject);
Long userId = SecurityFrameworkUtils.getLoginUserId();
if (Objects.nonNull(userId) && Objects.isNull(modifier)) {
setFieldValByName("updater", userId.toString(), metaObject);
Object updater = getFieldValByName("updater", metaObject);
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
if (Objects.nonNull(loginUserId)) {
// 优先使用当前登录用户
setFieldValByName("updater", loginUserId.toString(), metaObject);
} else if (ObjectUtil.isEmpty(updater)) {
// 没有登录用户,并且实体也未设置更新人时,使用系统默认值
setFieldValByName("updater", "0", metaObject);
}
}
}

View File

@@ -1,11 +1,13 @@
package cn.code.nl.framework.operatelog.core.service;
import cn.code.nl.framework.common.biz.system.logger.OperateLogCommonApi;
import cn.code.nl.framework.common.enums.UserTypeEnum;
import cn.code.nl.framework.common.util.monitor.TracerUtils;
import cn.code.nl.framework.common.util.servlet.ServletUtils;
import cn.code.nl.framework.security.core.LoginUser;
import cn.code.nl.framework.security.core.util.SecurityFrameworkUtils;
import cn.code.nl.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
import cn.hutool.core.util.ObjectUtil;
import com.mzt.logapi.beans.LogRecord;
import com.mzt.logapi.service.ILogRecordService;
import jakarta.annotation.Resource;
@@ -34,7 +36,7 @@ public class LogRecordServiceImpl implements ILogRecordService {
try {
reqDTO.setTraceId(TracerUtils.getTraceId());
// 补充用户信息
fillUserFields(reqDTO);
fillUserFields(reqDTO, logRecord);
// 补全模块信息
fillModuleFields(reqDTO, logRecord);
// 补全请求信息
@@ -48,10 +50,14 @@ public class LogRecordServiceImpl implements ILogRecordService {
}
}
private static void fillUserFields(OperateLogCreateReqDTO reqDTO) {
private static void fillUserFields(OperateLogCreateReqDTO reqDTO, LogRecord logRecord) {
// 使用 SecurityFrameworkUtils。因为要考虑rpc、mq、job它其实不是 web
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
if (loginUser == null) {
if (ObjectUtil.isNotEmpty(logRecord.getOperator())) {
reqDTO.setUserId(Long.valueOf(logRecord.getOperator()));
reqDTO.setUserType(UserTypeEnum.ADMIN.getValue());
}
return;
}
reqDTO.setUserId(loginUser.getId());