Merge branch 'feature/REQ-2864' into 'master'

feat(REQ-2864): 添加单位、部门、协同关系、部门人员操作日志相关的枚举,扩展接口支持operatorId为空的情况

See merge request universal/infrastructure/backend/tyr!125
This commit is contained in:
周敏 2024-08-14 09:21:23 +00:00
commit 85bfb2ab1b
3 changed files with 26 additions and 7 deletions

View File

@ -29,10 +29,12 @@ public class PermissionOperateLogReq implements Serializable {
@NotBlank(message = "表名不能为空")
private String tableName;
@NotNull(message = "操作人ID不能为空")
@Min(value = 1, message = "操作人ID有误")
// @NotNull(message = "操作人ID不能为空")
// @Min(value = 1, message = "操作人ID有误")
private Long operatorId;
private String operatorName;
@NotBlank(message = "场景不能为空")
private String scene;
@ -41,4 +43,6 @@ public class PermissionOperateLogReq implements Serializable {
private Object requestData;
private Object operateData;
private JSONObject ext;
}

View File

@ -2,7 +2,10 @@ package cn.axzo.tyr.server.repository.entity;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.*;
/**
@ -15,7 +18,7 @@ import lombok.*;
@Builder
@ToString
@EqualsAndHashCode(callSuper = true)
@TableName("saas_pgroup_permission_relation_operate_log")
@TableName(value = "saas_pgroup_permission_relation_operate_log", autoResultMap = true)
public class SaasPgroupPermissionRelationOperateLog extends BaseEntity<SaasPgroupPermissionRelationOperateLog> {
/**
@ -63,4 +66,7 @@ public class SaasPgroupPermissionRelationOperateLog extends BaseEntity<SaasPgrou
* 操作人角色
*/
private String createByRole;
@TableField(typeHandler = FastjsonTypeHandler.class)
private JSONObject ext;
}

View File

@ -23,12 +23,15 @@ import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.MDC;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@ -83,20 +86,26 @@ public class SaasPgroupPermissionRelationOperateLogServiceImpl implements SaasPg
@Override
public void save(PermissionOperateLogReq req) {
List<PersonProfileDto> personProfileDtos = RpcInternalUtil.rpcListProcessor(() -> userProfileServiceApi.getPersonProfiles(Lists.newArrayList(req.getOperatorId())), "查询用户信息", req.getOperatorId()).getData();
PersonProfileDto operator = CollectionUtils.isEmpty(personProfileDtos) ? null : personProfileDtos.get(0);
String realName = req.getOperatorId() == null ? "" : Optional.ofNullable(getPersonProfileDto(req)).map(PersonProfileDto::getRealName).orElse("");
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
.tableName(req.getTableName())
.scene(req.getScene())
.sceneId(req.getSceneId())
.createBy(req.getOperatorId())
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
.createBy(ObjectUtils.firstNonNull(req.getOperatorId(), 0L))
.createByName(StringUtils.firstNonBlank(realName, req.getOperatorName(), ""))
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
.requestData(Objects.nonNull(req.getRequestData()) ? JSONObject.toJSONString(req.getRequestData()) : null)
.operateData(Objects.nonNull(req.getOperateData()) ? JSONObject.toJSONString(req.getOperateData()) : null)
.createByRole(JSONObject.toJSONString(getPersonBasicRoles(req.getOperatorId())))
.ext(req.getExt())
.build();
batchSave(Lists.newArrayList(operateLog));
}
private PersonProfileDto getPersonProfileDto(PermissionOperateLogReq req) {
List<PersonProfileDto> personProfileDtos = RpcInternalUtil.rpcListProcessor(() -> userProfileServiceApi.getPersonProfiles(Lists.newArrayList(req.getOperatorId())), "查询用户信息", req.getOperatorId()).getData();
PersonProfileDto operator = CollectionUtils.isEmpty(personProfileDtos) ? null : personProfileDtos.get(0);
return operator;
}
}