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_PRODUCT_BIND_FEATURE_RESOURCE("OMS_PRODUCT_BIND_FEATURE_RESOURCE", "oms后台更新产品榜的资源"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* oms后台操作API
|
||||||
|
*/
|
||||||
|
OMS_API_UPSERT("OMS_API_UPSERT", "oms后台操作API"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@EnumValue
|
@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;
|
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.model.BasicRoleDO;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
||||||
|
|
||||||
@ -15,4 +16,6 @@ public interface SaasPgroupPermissionRelationOperateLogService {
|
|||||||
void batchSave(List<SaasPgroupPermissionRelationOperateLog> logs);
|
void batchSave(List<SaasPgroupPermissionRelationOperateLog> logs);
|
||||||
|
|
||||||
List<BasicRoleDO> getPersonBasicRoles(Long personId);
|
List<BasicRoleDO> getPersonBasicRoles(Long personId);
|
||||||
|
|
||||||
|
void saveRouteOperateLog(PermissionOperateLogReq req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -494,6 +494,7 @@ public class ProductServiceImpl implements ProductService {
|
|||||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||||
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
||||||
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
||||||
|
.sceneId(productId.toString())
|
||||||
.createBy(req.getOperator())
|
.createBy(req.getOperator())
|
||||||
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
||||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
||||||
@ -520,6 +521,7 @@ public class ProductServiceImpl implements ProductService {
|
|||||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||||
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT)
|
||||||
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
.scene(PermissionRelationOperateLogSceneEnum.OMS_PRODUCT_BIND_FEATURE_RESOURCE.getValue())
|
||||||
|
.sceneId(productId.toString())
|
||||||
.createBy(req.getOperator())
|
.createBy(req.getOperator())
|
||||||
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
||||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
.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.ContextInfo;
|
||||||
import cn.axzo.framework.auth.domain.ContextInfoHolder;
|
import cn.axzo.framework.auth.domain.ContextInfoHolder;
|
||||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
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.BasicRoleDO;
|
||||||
|
import cn.axzo.tyr.server.model.RelationOperateLogProductBindResourceDO;
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationOperateLogDao;
|
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationOperateLogDao;
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
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.SaasPgroupPermissionRelationOperateLog;
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
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.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.slf4j.MDC;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
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()
|
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());
|
.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