fix(REQ-2774): 增加操作日志录入接口
This commit is contained in:
parent
3cd272860d
commit
4784bdcaa3
@ -38,6 +38,11 @@ public enum PermissionRelationOperateLogSceneEnum {
|
||||
*/
|
||||
OMS_PRODUCT_BIND_FEATURE_RESOURCE("OMS_PRODUCT_BIND_FEATURE_RESOURCE", "oms后台更新产品榜的资源"),
|
||||
|
||||
/**
|
||||
* oms后台操作API
|
||||
*/
|
||||
OMS_API_UPSERT("OMS_API_UPSERT", "oms后台操作API"),
|
||||
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package cn.axzo.tyr.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @version 1.0
|
||||
* @date 2024/7/25
|
||||
*/
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
|
||||
public interface PermissionOperateLogApi {
|
||||
|
||||
/** API关联操作日志记录 **/
|
||||
@PostMapping("/api/permissionOperateLog/saveRouteLog")
|
||||
ApiResult<Void> saveRouteOperateLog(@RequestBody @Valid PermissionOperateLogReq req);
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.axzo.tyr.client.model.req;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 创建新路由请求
|
||||
*
|
||||
* @version V1.0
|
||||
* @author: ZhanSiHu
|
||||
* @date: 2023/9/11 10:33
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
public class PermissionOperateLogReq {
|
||||
|
||||
|
||||
@NotBlank(message = "表名不能为空")
|
||||
private String tableName;
|
||||
|
||||
@NotNull(message = "操作人ID不能为空")
|
||||
@Min(value = 1, message = "操作人ID有误")
|
||||
private Long operatorId;
|
||||
|
||||
@NotBlank(message = "操作人名不能为空")
|
||||
private String operatorName;
|
||||
|
||||
@NotBlank(message = "场景不能为空")
|
||||
private String scene;
|
||||
|
||||
private String sceneId;
|
||||
|
||||
private JSONObject operateData;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package cn.axzo.tyr.server.controller.permission;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.PermissionOperateLogApi;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @version 1.0
|
||||
* @date 2024/7/25
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class PermissionOperateLogController implements PermissionOperateLogApi {
|
||||
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> saveRouteOperateLog(PermissionOperateLogReq req) {
|
||||
saasPgroupPermissionRelationOperateLogService.saveRouteOperateLog(req);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.server.model.BasicRoleDO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
||||
|
||||
@ -15,4 +16,6 @@ public interface SaasPgroupPermissionRelationOperateLogService {
|
||||
void batchSave(List<SaasPgroupPermissionRelationOperateLog> logs);
|
||||
|
||||
List<BasicRoleDO> getPersonBasicRoles(Long personId);
|
||||
|
||||
void saveRouteOperateLog(PermissionOperateLogReq req);
|
||||
}
|
||||
|
||||
@ -494,6 +494,7 @@ public class ProductServiceImpl implements ProductService {
|
||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
||||
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
||||
.sceneId(productId.toString())
|
||||
.createBy(req.getOperator())
|
||||
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
||||
@ -520,6 +521,7 @@ public class ProductServiceImpl implements ProductService {
|
||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
||||
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
||||
.sceneId(productId.toString())
|
||||
.createBy(req.getOperator())
|
||||
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
||||
|
||||
@ -3,17 +3,24 @@ package cn.axzo.tyr.server.service.impl;
|
||||
import cn.axzo.framework.auth.domain.ContextInfo;
|
||||
import cn.axzo.framework.auth.domain.ContextInfoHolder;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.server.model.BasicRoleDO;
|
||||
import cn.axzo.tyr.server.model.RelationOperateLogProductBindResourceDO;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationOperateLogDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserService;
|
||||
import cn.azxo.framework.common.constatns.Constants;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
@ -67,4 +74,20 @@ public class SaasPgroupPermissionRelationOperateLogServiceImpl implements SaasPg
|
||||
return saasRoleDao.lambdaQuery().in(BaseEntity::getId, relations.stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList())).list()
|
||||
.stream().map(e -> BasicRoleDO.builder().roleId(e.getId()).roleCode(e.getRoleCode()).roleName(e.getName()).build()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveRouteOperateLog(PermissionOperateLogReq req) {
|
||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||
.tableName(req.getTableName())
|
||||
.scene(PermissionRelationOperateLogSceneEnum.OMS_API_UPSERT.getValue())
|
||||
.sceneId(req.getSceneId())
|
||||
.createBy(req.getOperatorId())
|
||||
.createByName(req.getOperatorName())
|
||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
||||
.requestData(JSONObject.toJSONString(req))
|
||||
.operateData(Objects.nonNull(req.getOperateData()) ? JSONObject.toJSONString(Lists.newArrayList(req.getOperateData())) : null)
|
||||
.createByRole(JSONObject.toJSONString(getPersonBasicRoles(req.getOperatorId())))
|
||||
.build();
|
||||
batchSave(Lists.newArrayList(operateLog));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user