REQ-2821: 添加一些日志
This commit is contained in:
parent
02452cf587
commit
b21d2971eb
@ -28,6 +28,11 @@ public enum PermissionRelationOperateLogSceneEnum {
|
||||
*/
|
||||
OMS_ROLE_BIND_FEATURE_RESOURCE("OMS_ROLE_BIND_FEATURE_RESOURCE", "oms后台更新角色绑定的资源"),
|
||||
|
||||
/**
|
||||
* [老]oms后台更新角色绑定资源绑定的
|
||||
*/
|
||||
OLD_OMS_ROLE_BIND_FEATURE("OLD_OMS_ROLE_BIND_FEATURE", "[老]oms后台更新角色绑定的资源"),
|
||||
|
||||
/**
|
||||
* oms后台更新资源绑定的页面元素
|
||||
*/
|
||||
@ -38,6 +43,31 @@ public enum PermissionRelationOperateLogSceneEnum {
|
||||
*/
|
||||
OMS_PRODUCT_BIND_FEATURE_RESOURCE("OMS_PRODUCT_BIND_FEATURE_RESOURCE", "oms后台更新产品榜的资源"),
|
||||
|
||||
/**
|
||||
* [老]oms后台更新产品权限点
|
||||
*/
|
||||
OLD_OMS_PRODUCT__UPDATE("OLD_OMS_PRODUCT__UPDATE", "[老]oms后台更新产品"),
|
||||
|
||||
/**
|
||||
* [老]oms后台更新产品权限点
|
||||
*/
|
||||
OLD_OMS_PRODUCT_PERMISSION_POINT__UPDATE("OLD_OMS_PRODUCT_PERMISSION_POINT__UPDATE", "[老]oms后台更新产品权限点"),
|
||||
|
||||
/**
|
||||
* [老]角色分组
|
||||
*/
|
||||
OLD_OMS_ROLE_GROUP__SAVE_OR_UPDATE("OLD_OMS_ROLE_GROUP__SAVE_OR_UPDATE", "[老]角色分组新增/更新"),
|
||||
|
||||
/**
|
||||
* [老]权限点删除
|
||||
*/
|
||||
OLD_OMS_SAAS_FEATURE__DELETE("OLD_OMS_SAAS_FEATURE__DELETE", "[老]权限点删除"),
|
||||
|
||||
/**
|
||||
* [老]权限点新增/更新
|
||||
*/
|
||||
OLD_OMS_SAAS_FEATURE__INSERT_OR_UPDATE("OLD_OMS_SAAS_FEATURE__INSERT_OR_UPDATE", "[老]权限点新增/更新"),
|
||||
|
||||
/**
|
||||
* oms后台添加API
|
||||
*/
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.tyr.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.permission.DeletePermissionPointRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointListQueryRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
|
||||
@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -48,6 +50,10 @@ public interface PermissionPointApi {
|
||||
@PostMapping(value = "/api/v1/permissionPoint/delete/{permissionId}")
|
||||
ApiResult<List<String>> deletePermissionPoint(@PathVariable Long permissionId);
|
||||
|
||||
/** 删除权限点 **/
|
||||
@PostMapping(value = "/api/v1/permissionPoint/delete/v2/deletePermissionPoint")
|
||||
ApiResult<List<String>> deletePermissionPointV2(@Valid @RequestBody DeletePermissionPointRequest request);
|
||||
|
||||
|
||||
/** 位置移动 **/
|
||||
@PostMapping(value = "/api/v1/permissionPoint/move")
|
||||
|
||||
@ -2,7 +2,16 @@ package cn.axzo.tyr.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.product.*;
|
||||
import cn.axzo.tyr.client.model.product.OldUpdateFeatureRelationRequestV2;
|
||||
import cn.axzo.tyr.client.model.product.ProductAddReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductDetailReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchListReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchPageReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductVO;
|
||||
import cn.axzo.tyr.client.model.req.ProductSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.UpdateProductStatusReq;
|
||||
import cn.axzo.tyr.client.model.res.GovernmentTerminalResp;
|
||||
@ -102,6 +111,16 @@ public interface ProductApi {
|
||||
@PostMapping("api/auth/product/feature/relation/update")
|
||||
ApiResult<Boolean> updateFeatureRelation(@Validated @RequestBody List<ProductFeatureRelationUpdateReq> req);
|
||||
|
||||
/**
|
||||
* 更新产品与权限点的关联关系
|
||||
* <p/>携带操作人员信息
|
||||
*
|
||||
* @param req {@link ProductFeatureRelationUpdateReq}
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("api/auth/product/feature/relation/v2/update")
|
||||
ApiResult<Boolean> updateFeatureRelationV2(@Validated @RequestBody OldUpdateFeatureRelationRequestV2 req);
|
||||
|
||||
/**
|
||||
* 查询指定工作台关联的服务包下的产品权限点
|
||||
*
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package cn.axzo.tyr.client.model.permission;
|
||||
|
||||
import cn.axzo.tyr.client.model.vo.OperatorRequest;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class DeletePermissionPointRequest extends OperatorRequest {
|
||||
|
||||
@NotNull
|
||||
private Long permissionId;
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.client.model.permission;
|
||||
|
||||
import cn.axzo.tyr.client.model.vo.Operator;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
@ -160,6 +161,12 @@ public class PermissionPointDTO {
|
||||
/** 业务编码 **/
|
||||
private String businessNo;
|
||||
|
||||
private Operator operator;
|
||||
|
||||
public Operator determineOperator() {
|
||||
return operator == null ? Operator.absent() : operator;
|
||||
}
|
||||
|
||||
public Long mergeFitOuTypeBit() {
|
||||
if (this.fitOuTypeList == null || this.fitOuTypeList.isEmpty()) {
|
||||
return null;
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package cn.axzo.tyr.client.model.product;
|
||||
|
||||
import cn.axzo.tyr.client.model.vo.OperatorRequest;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class OldUpdateFeatureRelationRequestV2 extends OperatorRequest {
|
||||
|
||||
private List<ProductFeatureRelationUpdateReq> relations;
|
||||
private Map<String, Object> externalLogs = new ConcurrentHashMap<>();
|
||||
|
||||
public void addExternalLogThreadSafe(String key, Object value) {
|
||||
externalLogs.put(key, value);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.client.model.product;
|
||||
|
||||
import cn.axzo.tyr.client.model.vo.Operator;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -69,4 +70,9 @@ public class ProductUpdateReq {
|
||||
*/
|
||||
private List<Integer> ouTypes;
|
||||
|
||||
private Operator operator;
|
||||
|
||||
public Operator determineOperator() {
|
||||
return operator == null ? Operator.absent() : operator;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package cn.axzo.tyr.client.model.req;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -10,7 +9,6 @@ import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 创建新路由请求
|
||||
@ -36,6 +34,8 @@ public class PermissionOperateLogReq implements Serializable {
|
||||
@NotBlank(message = "场景不能为空")
|
||||
private String scene;
|
||||
|
||||
private String operatorName;
|
||||
|
||||
private String sceneId;
|
||||
|
||||
private Object requestData;
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import cn.axzo.framework.auth.domain.ContextInfo;
|
||||
import cn.axzo.framework.auth.domain.ContextInfoHolder;
|
||||
import cn.axzo.framework.auth.domain.UserInfo;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Data
|
||||
public class Operator {
|
||||
|
||||
private String realName;
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* For a gateway like yoke
|
||||
*/
|
||||
public static Operator fromAuthContext() {
|
||||
ContextInfo ctx = ContextInfoHolder.get();
|
||||
if (ctx == null) {
|
||||
return absent();
|
||||
}
|
||||
UserInfo userInfo = ctx.getUserInfo();
|
||||
if (userInfo == null) {
|
||||
return absent();
|
||||
}
|
||||
Operator operator = new Operator();
|
||||
operator.setRealName(userInfo.getRealName());
|
||||
operator.setPersonId(userInfo.getPersonId());
|
||||
return operator;
|
||||
}
|
||||
|
||||
public static Operator absent() {
|
||||
Operator operator = new Operator();
|
||||
operator.setRealName("");
|
||||
operator.setPersonId(0L);
|
||||
return operator;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class OperatorRequest {
|
||||
|
||||
private Operator operator;
|
||||
|
||||
public Operator determineOperator() {
|
||||
return operator == null ? Operator.absent() : operator;
|
||||
}
|
||||
}
|
||||
@ -70,4 +70,10 @@ public class SaasRoleGroupVO {
|
||||
* 上级分组id
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
private Operator operator;
|
||||
|
||||
public Operator determineOperator() {
|
||||
return operator == null ? Operator.absent() : operator;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.tyr.server.controller.permission;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.PermissionPointApi;
|
||||
import cn.axzo.tyr.client.model.permission.DeletePermissionPointRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointListQueryRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
|
||||
@ -59,6 +60,9 @@ public class PermissionPointController implements PermissionPointApi {
|
||||
return ApiResult.ok(permissionPointService.delete(permissionId));
|
||||
}
|
||||
|
||||
@Override public ApiResult<List<String>> deletePermissionPointV2(DeletePermissionPointRequest request) {
|
||||
return ApiResult.ok(permissionPointService.deleteV2(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> move(PermissionPointMoveRequest request) {
|
||||
|
||||
@ -3,7 +3,16 @@ package cn.axzo.tyr.server.controller.product;
|
||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.ProductApi;
|
||||
import cn.axzo.tyr.client.model.product.*;
|
||||
import cn.axzo.tyr.client.model.product.OldUpdateFeatureRelationRequestV2;
|
||||
import cn.axzo.tyr.client.model.product.ProductAddReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductDetailReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchListReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchPageReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductVO;
|
||||
import cn.axzo.tyr.client.model.req.ProductSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.UpdateProductStatusReq;
|
||||
import cn.axzo.tyr.client.model.res.GovernmentTerminalResp;
|
||||
@ -127,6 +136,14 @@ public class ProductController implements ProductApi {
|
||||
return productFeatureRelationService.updateFeatureRelation(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Boolean> updateFeatureRelationV2(OldUpdateFeatureRelationRequestV2 req) {
|
||||
if(CollectionUtils.isEmpty(req.getRelations())) {
|
||||
return ApiResult.ok(false);
|
||||
}
|
||||
permissionCacheService.markTempDisable(PermissionCacheKey.builder().disableAll(true).build());
|
||||
return productFeatureRelationService.updateFeatureRelationV2(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Map<Long, List<ProductFeatureRelationVO>>> queryProductFeatureRelationByWorkspace(Set<Long> workspaceIds) {
|
||||
|
||||
@ -2,6 +2,8 @@ package cn.axzo.tyr.server.repository.mapper;
|
||||
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
@ -19,4 +21,6 @@ public interface SaasFeatureMapper extends BaseMapper<SaasFeature> {
|
||||
"WHERE path LIKE CONCAT(#{pathPrefix},'%') ")
|
||||
void updateChildrenPath(Long updater, String pathPrefix, String newPathPrefix);
|
||||
|
||||
@Select("SELECT * FROM saas_feature WHERE id = #{id}")
|
||||
SaasFeature getByIdDeleteAware(@Param("id") Long id);
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.permission.DeletePermissionPointRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointListQueryRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
|
||||
@ -42,6 +43,9 @@ public interface PermissionPointService {
|
||||
/** 删除权限点 返回business_no **/
|
||||
List<String> delete(Long permissionId);
|
||||
|
||||
/** 删除权限点 返回business_no **/
|
||||
List<String> deleteV2(DeletePermissionPointRequest request);
|
||||
|
||||
/** 位置移动-父级和排序 **/
|
||||
void move(PermissionPointMoveRequest request);
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.product.OldUpdateFeatureRelationRequestV2;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
@ -25,6 +26,8 @@ public interface ProductFeatureRelationService extends IService<SaasProductModul
|
||||
|
||||
ApiResult<Boolean> updateFeatureRelation(List<ProductFeatureRelationUpdateReq> req);
|
||||
|
||||
ApiResult<Boolean> updateFeatureRelationV2(OldUpdateFeatureRelationRequestV2 request);
|
||||
|
||||
/**
|
||||
* 更新产品功能权限关系,仅支持saas_feature_resource功能点
|
||||
*
|
||||
|
||||
@ -1,49 +1,65 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import static cn.axzo.tyr.client.model.enums.FeatureType.BUTTON;
|
||||
import static cn.axzo.tyr.client.model.enums.FeatureType.MODULE;
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.axzo.tyr.client.model.enums.FeatureDataType;
|
||||
import cn.axzo.tyr.client.model.req.QueryPermissionByIdsReq;
|
||||
import cn.axzo.tyr.client.model.res.SimplePermissionPointResp;
|
||||
import cn.hutool.core.date.StopWatch;
|
||||
import cn.hutool.core.lang.Opt;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.util.StopWatchUtil;
|
||||
import cn.axzo.basics.common.util.TreeUtil;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictNodeReq;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
|
||||
import cn.axzo.tyr.client.model.enums.DictTypeFiledEnum;
|
||||
import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum;
|
||||
import cn.axzo.tyr.client.model.enums.FeatureDataType;
|
||||
import cn.axzo.tyr.client.model.enums.FeatureType;
|
||||
import cn.axzo.tyr.client.model.permission.*;
|
||||
import cn.axzo.tyr.client.model.permission.DeletePermissionPointRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointListQueryRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.QueryPermissionByIdsReq;
|
||||
import cn.axzo.tyr.client.model.res.SimplePermissionPointResp;
|
||||
import cn.axzo.tyr.server.common.util.Throws;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasProductModuleFeatureRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasFeatureMapper;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.SaasBasicDictService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
|
||||
import static cn.axzo.tyr.server.util.RpcInternalUtil.checkAndGetData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.tyr.client.model.enums.FeatureType.BUTTON;
|
||||
import static cn.axzo.tyr.client.model.enums.FeatureType.MODULE;
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.FEATURE_BIZ_NO_PREFIX;
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.FEATURE_PATH_DELIMITER;
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.FEATURE_TOP_BIZ_NO;
|
||||
import static cn.axzo.tyr.server.common.constants.PermissionConstant.FEATURE_TOP_PATH;
|
||||
|
||||
/**
|
||||
* 权限点服务实现
|
||||
@ -57,10 +73,13 @@ import static cn.axzo.tyr.server.util.RpcInternalUtil.checkAndGetData;
|
||||
@Service
|
||||
public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
|
||||
private final SaasFeatureMapper saasFeatureMapper;
|
||||
private final SaasFeatureDao saasFeatureDao;
|
||||
private final SaasBasicDictService saasBasicDictService;
|
||||
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
|
||||
private final SaasProductModuleFeatureRelationDao saasProductModuleFeatureRelationDao;
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
private final TransactionTemplate transactionTemplate;
|
||||
|
||||
@Override
|
||||
public List<PermissionPointTreeNode> listTreeNodes(PermissionPointTreeQueryReq request) {
|
||||
@ -333,6 +352,11 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
this.saasFeatureDao.updateById(saasFeature);
|
||||
//返回一些要用的数据
|
||||
dto.setBusinessNo(feature.getBusinessNo());
|
||||
try {
|
||||
saveOperateLogForInsertOrUpdate(dto, feature.getId());
|
||||
} catch (Exception e) {
|
||||
log.warn("error save operate log", e);
|
||||
}
|
||||
return dto;
|
||||
}
|
||||
|
||||
@ -367,9 +391,27 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
dto.setBusinessNo(saasFeature.getBusinessNo());
|
||||
//调整排序 - 兼容处理老数据,数据规范化
|
||||
changeSort(saasFeature, saasFeature.getSort());
|
||||
try {
|
||||
saveOperateLogForInsertOrUpdate(dto, saasFeature.getId());
|
||||
} catch (Exception e) {
|
||||
log.warn("error save operate log", e);
|
||||
}
|
||||
return dto;
|
||||
}
|
||||
|
||||
private void saveOperateLogForInsertOrUpdate(PermissionPointDTO request, Long permissionId) {
|
||||
SaasFeature feature = saasFeatureDao.getById(permissionId);
|
||||
PermissionOperateLogReq log = new PermissionOperateLogReq();
|
||||
log.setTableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_SAAS_FEATURE);
|
||||
log.setScene(PermissionRelationOperateLogSceneEnum.OLD_OMS_SAAS_FEATURE__INSERT_OR_UPDATE.getValue());
|
||||
log.setSceneId(permissionId + "");
|
||||
log.setOperatorId(request.determineOperator().getPersonId());
|
||||
log.setOperatorName(request.determineOperator().getRealName());
|
||||
log.setRequestData(request);
|
||||
log.setOperateData(feature);
|
||||
saasPgroupPermissionRelationOperateLogService.save(log);
|
||||
}
|
||||
|
||||
private void checkParentType(FeatureType featureType, SaasFeature parent) {
|
||||
//检查父级元素类型
|
||||
switch (featureType) {
|
||||
@ -398,9 +440,21 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Throwable.class)
|
||||
@Override
|
||||
public List<String> delete(Long permissionPointId) {
|
||||
@SuppressWarnings({
|
||||
"SpringTransactionalMethodCallsInspection",
|
||||
"It's good, we use transaction template"
|
||||
})
|
||||
public List<String> delete(Long permissionId) {
|
||||
DeletePermissionPointRequest request = new DeletePermissionPointRequest();
|
||||
request.setPermissionId(permissionId);
|
||||
return transactionTemplate.execute(unused -> deleteV2(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Throwable.class)
|
||||
public List<String> deleteV2(DeletePermissionPointRequest request) {
|
||||
Long permissionPointId = request.getPermissionId();
|
||||
List<Long> delIds = new ArrayList<>();
|
||||
List<String> bizNoList = new ArrayList<>();
|
||||
SaasFeature feature = getAndCheck(permissionPointId);
|
||||
@ -426,9 +480,27 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
//删除关联数据
|
||||
this.saasPgroupPermissionRelationDao.removeByPermissionPointIds(delIds);
|
||||
this.saasProductModuleFeatureRelationDao.removeByPermissionPointIds(delIds);
|
||||
try {
|
||||
// 记这条主记录的日志就够了
|
||||
saveOperateLogForDelete(request);
|
||||
} catch (Exception e) {
|
||||
log.warn("error save operate log", e);
|
||||
}
|
||||
return bizNoList;
|
||||
}
|
||||
|
||||
private void saveOperateLogForDelete(DeletePermissionPointRequest request) {
|
||||
SaasFeature deletedFeature = saasFeatureMapper.getByIdDeleteAware(request.getPermissionId());
|
||||
PermissionOperateLogReq log = new PermissionOperateLogReq();
|
||||
log.setTableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_SAAS_FEATURE);
|
||||
log.setScene(PermissionRelationOperateLogSceneEnum.OLD_OMS_SAAS_FEATURE__DELETE.getValue());
|
||||
log.setSceneId(request.getPermissionId() + "");
|
||||
log.setOperatorId(request.determineOperator().getPersonId());
|
||||
log.setOperatorName(request.determineOperator().getRealName());
|
||||
log.setRequestData(request);
|
||||
log.setOperateData(deletedFeature);
|
||||
saasPgroupPermissionRelationOperateLogService.save(log);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void move(PermissionPointMoveRequest request) {
|
||||
|
||||
@ -10,11 +10,14 @@ import cn.axzo.thrones.client.saas.ServicePkgClient;
|
||||
import cn.axzo.thrones.client.saas.entity.serivicepgkproduct.ServicePkgProduct;
|
||||
import cn.axzo.thrones.client.saas.entity.servicepkg.ServicePkgDetailRes;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.product.OldUpdateFeatureRelationRequestV2;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
import cn.axzo.tyr.client.model.req.FeatureIdPair;
|
||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
@ -25,6 +28,7 @@ import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasProductModuleFeatureRelationMapper;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.StopWatch;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@ -51,6 +55,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.tyr.server.util.RpcInternalUtil.checkAndGetData;
|
||||
import static java.util.stream.Collectors.joining;
|
||||
|
||||
/**
|
||||
* 产品与权限点的 Service 接口实现
|
||||
@ -68,6 +73,7 @@ public class ProductFeatureRelationServiceImpl extends ServiceImpl<SaasProductMo
|
||||
private final SaasFeatureDao saasFeatureDao;
|
||||
private final ProductModuleDao productModuleDao;
|
||||
private final SaasFeatureResourceDao saasFeatureResourceDao;
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
|
||||
@Override
|
||||
public ApiResult<List<ProductFeatureRelationVO>> featureList(ProductFeatureRelationSearchReq req) {
|
||||
@ -83,6 +89,19 @@ public class ProductFeatureRelationServiceImpl extends ServiceImpl<SaasProductMo
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ApiResult<Boolean> updateFeatureRelation(List<ProductFeatureRelationUpdateReq> req) {
|
||||
OldUpdateFeatureRelationRequestV2 requestV2 = new OldUpdateFeatureRelationRequestV2();
|
||||
requestV2.setRelations(req);
|
||||
requestV2.setOperator(null);
|
||||
return updateFeatureRelationV2(requestV2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ApiResult<Boolean> updateFeatureRelationV2(OldUpdateFeatureRelationRequestV2 request) {
|
||||
if (CollectionUtils.isEmpty(request.getRelations())) {
|
||||
return ApiResult.ok(false);
|
||||
}
|
||||
List<ProductFeatureRelationUpdateReq> req = request.getRelations();
|
||||
List<Long> productIds = req.stream().map(ProductFeatureRelationUpdateReq::getProductModuleId).distinct().collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(productIds)) {
|
||||
saasProductModuleFeatureRelationDao.remove(new LambdaQueryWrapper<SaasProductModuleFeatureRelation>()
|
||||
@ -99,9 +118,38 @@ public class ProductFeatureRelationServiceImpl extends ServiceImpl<SaasProductMo
|
||||
saveList.add(relation);
|
||||
}));
|
||||
saasProductModuleFeatureRelationDao.saveBatch(saveList);
|
||||
|
||||
// !! save logs
|
||||
try {
|
||||
saveOperateLogForUpdateFeatureRelationV2(request, req, saveList);
|
||||
} catch (Exception e) {
|
||||
log.warn("保存审计日志失败", e);
|
||||
}
|
||||
|
||||
return ApiResult.ok(true);
|
||||
}
|
||||
|
||||
private void saveOperateLogForUpdateFeatureRelationV2(
|
||||
OldUpdateFeatureRelationRequestV2 request,
|
||||
List<ProductFeatureRelationUpdateReq> req,
|
||||
List<SaasProductModuleFeatureRelation> saveList) {
|
||||
String productModuleIds = saveList.stream()
|
||||
.map(BaseEntity::getId)
|
||||
.distinct()
|
||||
.map(String::valueOf)
|
||||
.collect(joining(","));
|
||||
productModuleIds = org.apache.commons.lang3.StringUtils.truncate(productModuleIds, 254);
|
||||
PermissionOperateLogReq log = new PermissionOperateLogReq();
|
||||
log.setTableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT_MODULE_FEATURE_RELATION);
|
||||
log.setScene(PermissionRelationOperateLogSceneEnum.OLD_OMS_PRODUCT_PERMISSION_POINT__UPDATE.getValue());
|
||||
log.setSceneId(productModuleIds);
|
||||
log.setOperatorId(request.determineOperator().getPersonId());
|
||||
log.setOperatorName(request.determineOperator().getRealName());
|
||||
log.setRequestData(request);
|
||||
log.setOperateData(saveList);
|
||||
saasPgroupPermissionRelationOperateLogService.save(log);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateFeatureResourceRelation(List<ProductFeatureRelationUpdateReq> req, int relationType) {
|
||||
|
||||
@ -15,20 +15,31 @@ import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
|
||||
import cn.axzo.tyr.client.model.enums.ProductModuleCategoryEnum;
|
||||
import cn.axzo.tyr.client.model.enums.WorkspaceTypeCodeEnum;
|
||||
import cn.axzo.tyr.client.model.product.*;
|
||||
import cn.axzo.tyr.client.model.product.ProductAddReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationSearchReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchListReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductSearchPageReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductUpdateReq;
|
||||
import cn.axzo.tyr.client.model.product.ProductVO;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.ProductSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.UpdateProductStatusReq;
|
||||
import cn.axzo.tyr.client.model.res.GovernmentTerminalResp;
|
||||
import cn.axzo.tyr.client.model.res.WorkspaceProductResp;
|
||||
import cn.axzo.tyr.server.model.RelationOperateLogProductBindResourceDO;
|
||||
import cn.axzo.tyr.server.model.RelationOperateLogResourceBindElementDO;
|
||||
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.entity.ProductModule;
|
||||
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.service.*;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
import cn.axzo.tyr.server.service.ProductService;
|
||||
import cn.axzo.tyr.server.service.SaasBasicDictService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.axzo.tyr.server.util.RpcInternalUtil;
|
||||
import cn.azxo.framework.common.constatns.Constants;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
@ -46,7 +57,14 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -181,9 +199,26 @@ public class ProductServiceImpl implements ProductService {
|
||||
productModule.setOuType(org.apache.commons.lang3.StringUtils.join(req.getOuTypes(),","));
|
||||
}
|
||||
productModuleDao.updateById(productModule);
|
||||
try {
|
||||
saveOperateLogForUpdateProduct(req, productModule);
|
||||
} catch (Exception e) {
|
||||
log.warn("保存更新产品日志失败", e);
|
||||
}
|
||||
return ApiResult.ok(BeanMapper.copyBeanIgnoreNull(productModule, ProductVO.class));
|
||||
}
|
||||
|
||||
private void saveOperateLogForUpdateProduct(ProductUpdateReq req, ProductModule productModule) {
|
||||
PermissionOperateLogReq log = new PermissionOperateLogReq();
|
||||
log.setTableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_PRODUCT);
|
||||
log.setScene(PermissionRelationOperateLogSceneEnum.OLD_OMS_PRODUCT__UPDATE.getValue());
|
||||
log.setSceneId(productModule.getId() + "");
|
||||
log.setOperatorId(req.determineOperator().getPersonId());
|
||||
log.setOperatorName(req.determineOperator().getRealName());
|
||||
log.setRequestData(req);
|
||||
log.setOperateData(productModule);
|
||||
saasPgroupPermissionRelationOperateLogService.save(log);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<ProductVO> delete(Long id) {
|
||||
ProductModule productModule = productModuleDao.getById(id);
|
||||
|
||||
@ -399,6 +399,37 @@ public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
|
||||
.type(OLD_FEATURE)
|
||||
.build();
|
||||
saasPgroupPermissionRelationService.saveOrUpdate(upsertPermissionRelationParam);
|
||||
try {
|
||||
saveOperateLog4RoleBindFeature(saveOrUpdateRole);
|
||||
} catch (Exception e) {
|
||||
log.warn("save operate log error", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOperateLog4RoleBindFeature(SaveOrUpdateRoleVO saveOrUpdateRole) {
|
||||
SaasRole saasRole = saasRoleDao.getById(saveOrUpdateRole.getId());
|
||||
List<String> uniCodes = null;
|
||||
if (CollectionUtils.isNotEmpty(saveOrUpdateRole.getPermissionIds())) {
|
||||
uniCodes = saasFeatureResourceDao.lambdaQuery().in(BaseEntity::getId, saveOrUpdateRole.getPermissionIds()).list().stream().map(SaasFeatureResource::getUniCode).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
RelationOperateLogRoleBindResourceDO operateAfter = RelationOperateLogRoleBindResourceDO.builder()
|
||||
.uniCodes(uniCodes)
|
||||
.roleCode(saasRole.getRoleCode())
|
||||
.build();
|
||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||
.tableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_ROLE)
|
||||
.scene(PermissionRelationOperateLogSceneEnum.OLD_OMS_ROLE_BIND_FEATURE.getValue())
|
||||
.sceneId(saasRole.getRoleCode())
|
||||
.createBy(saveOrUpdateRole.getOperatorId())
|
||||
.createByName(saveOrUpdateRole.getOperatorName())
|
||||
.traceId(MDC.get(Constants.CTX_LOG_ID_MDC))
|
||||
.requestData(Objects.isNull(saveOrUpdateRole) ? null : JSONObject.toJSONString(saveOrUpdateRole))
|
||||
.operateData(JSONObject.toJSONString(Lists.newArrayList(operateAfter)))
|
||||
.createByRole(JSONObject.toJSONString(saasPgroupPermissionRelationOperateLogService.getPersonBasicRoles(saveOrUpdateRole.getOperatorId())))
|
||||
.build();
|
||||
|
||||
saasPgroupPermissionRelationOperateLogService.batchSave(Lists.newArrayList(operateLog));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -5,14 +5,11 @@ import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
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;
|
||||
@ -23,6 +20,7 @@ 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.StringUtils;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -45,6 +43,9 @@ public class SaasPgroupPermissionRelationOperateLogServiceImpl implements SaasPg
|
||||
public static final String TABLE_NAME_ROLE = "saas_role";
|
||||
public static final String TABLE_NAME_PAGE_ELEMENT = "saas_page_element";
|
||||
public static final String TABLE_NAME_PRODUCT = "product_module";
|
||||
public static final String TABLE_NAME_PRODUCT_MODULE_FEATURE_RELATION = "saas_product_module_feature_relation";
|
||||
public static final String TABLE_NAME_SAAS_ROLE_GROUP = "saas_role_group";
|
||||
public static final String TABLE_NAME_SAAS_FEATURE = "saas_feature";
|
||||
|
||||
private final SaasPgroupPermissionRelationOperateLogDao saasPgroupPermissionRelationOperateLogDao;
|
||||
private final SaasRoleUserRelationDao roleUserRelationDao;
|
||||
@ -80,15 +81,25 @@ 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 operatorName = req.getOperatorName();
|
||||
// 如果没有传操作人姓名,查询用户信息
|
||||
if (StringUtils.isBlank(operatorName) && req.getOperatorId() != 0 && req.getOperatorId() > 0) {
|
||||
List<PersonProfileDto> personProfileDtos = RpcInternalUtil.rpcListProcessor(() -> userProfileServiceApi.getPersonProfiles(Lists.newArrayList(req.getOperatorId())), "查询用户信息", req.getOperatorId()).getData();
|
||||
PersonProfileDto operator = CollectionUtils.isEmpty(personProfileDtos) ? null : personProfileDtos.get(0);
|
||||
if (operator != null) {
|
||||
operatorName = operator.getRealName();
|
||||
}
|
||||
}
|
||||
if (StringUtils.isBlank(operatorName)) {
|
||||
operatorName = "unknown";
|
||||
}
|
||||
|
||||
SaasPgroupPermissionRelationOperateLog operateLog = SaasPgroupPermissionRelationOperateLog.builder()
|
||||
.tableName(req.getTableName())
|
||||
.scene(req.getScene())
|
||||
.sceneId(req.getSceneId())
|
||||
.createBy(req.getOperatorId())
|
||||
.createByName(Objects.isNull(operator) ? "" : operator.getRealName())
|
||||
.createByName(operatorName)
|
||||
.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)
|
||||
|
||||
@ -2,12 +2,14 @@ package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.basics.common.exception.ServiceException;
|
||||
import cn.axzo.foundation.exception.Axssert;
|
||||
import cn.axzo.foundation.dao.support.converter.PageConverter;
|
||||
import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper;
|
||||
import cn.axzo.foundation.exception.Axssert;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.req.ListSaasRoleGroupParam;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasRoleGroupParam;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleGroupDTO;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
@ -18,6 +20,7 @@ import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
@ -58,6 +61,7 @@ public class SaasRoleGroupServiceImpl extends ServiceImpl<SaasRoleGroupMapper, S
|
||||
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||
private final SaasRoleGroupRelationService saasRoleGroupRelationService;
|
||||
private final RoleService roleService;
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
|
||||
@Override
|
||||
public List<SaasRoleGroupVO> getList(QuerySaasRoleGroupReq req) {
|
||||
@ -129,9 +133,27 @@ public class SaasRoleGroupServiceImpl extends ServiceImpl<SaasRoleGroupMapper, S
|
||||
public Long saveOrUpdate(SaasRoleGroupVO req) {
|
||||
SaasRoleGroup saasRoleGroup = validAndBuildGroup(req);
|
||||
saasRoleGroupDao.saveOrUpdate(saasRoleGroup);
|
||||
try {
|
||||
saveOperateLogForRoleGroup(req);
|
||||
} catch (Exception e) {
|
||||
log.warn("error save operate log", e);
|
||||
}
|
||||
return saasRoleGroup.getId();
|
||||
}
|
||||
|
||||
private void saveOperateLogForRoleGroup(SaasRoleGroupVO req) {
|
||||
PermissionOperateLogReq log = new PermissionOperateLogReq();
|
||||
log.setTableName(SaasPgroupPermissionRelationOperateLogServiceImpl.TABLE_NAME_SAAS_ROLE_GROUP);
|
||||
log.setScene(PermissionRelationOperateLogSceneEnum.OLD_OMS_ROLE_GROUP__SAVE_OR_UPDATE.getValue());
|
||||
log.setSceneId(req.getId() + "");
|
||||
log.setOperatorId(req.determineOperator().getPersonId());
|
||||
log.setOperatorName(req.determineOperator().getRealName());
|
||||
log.setRequestData(req);
|
||||
SaasRoleGroup updateToDateRoleGroup = saasRoleGroupDao.getById(req.getId());
|
||||
log.setOperateData(updateToDateRoleGroup);
|
||||
saasPgroupPermissionRelationOperateLogService.save(log);
|
||||
}
|
||||
|
||||
/**
|
||||
* 只有当分组下面角色为空合分组下没有其他分组时才能删除
|
||||
* @param ids
|
||||
|
||||
Loading…
Reference in New Issue
Block a user