REQ-2284 基础待完成

This commit is contained in:
yangheng 2024-04-19 18:39:35 +08:00
parent 447ad084d8
commit 12caa4a41e
15 changed files with 386 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.client.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.req.CreateDataPermissionReq;
import cn.axzo.tyr.client.model.req.GetWorkflowQueryAndUpdatePermissionReq;
import cn.axzo.tyr.client.model.res.GetWorkflowQueryAndUpdatePermissionRes;
import org.springframework.cloud.openfeign.FeignClient;
@ -8,6 +9,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
/**
* 数据权限API接口
*/
@ -18,4 +21,8 @@ public interface DataPermissionApi {
@PostMapping(value = "/api/v1/dataPermission/getWorkflowQueryAndUpdatePermission")
ApiResult<GetWorkflowQueryAndUpdatePermissionRes> getWorkflowQueryAndUpdatePermission(@RequestBody @Validated GetWorkflowQueryAndUpdatePermissionReq req);
// ******************************************************************
// 数据权限
@PostMapping("/api/dataPermission/create")
ApiResult<Long> createDataPermission(@RequestBody @Valid CreateDataPermissionReq req);
}

View File

@ -0,0 +1,20 @@
package cn.axzo.tyr.client.model.data.permission;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class Attribute {
Integer sort; // 序号
String attrName; //字段名
String attrCode;
Integer unmaskSupport; // 是否支持脱敏 1-支持 0-不支持
Integer editSupport; // 是否支持编辑 1-支持 0-不支持
}

View File

@ -0,0 +1,21 @@
package cn.axzo.tyr.client.model.data.permission;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class AttributePermission {
Integer sort; // 序号
String attrName; //字段名
String attrCode;
Integer visibilityScope; // 字段值查看范围 0:同行级数据权限 1:仅本人数据 2:本人及下属数据 3:仅本部门数据 4:本部门及以下数据 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目部数据
Integer isUnmaskable; // 是否可脱敏 1-可操作脱敏 0-不可操作脱敏
Integer isEditable; // 是否可编辑 1-可编辑 0-不可编辑
}

View File

@ -0,0 +1,52 @@
package cn.axzo.tyr.client.model.req;
import cn.axzo.tyr.client.model.data.permission.Attribute;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CreateDataPermissionReq {
/**
* 数据权限code
*/
@NotEmpty(message = "请输入数据权限code")
private String dataPermissionCode;
/**
* 数据权限名 全局唯一
*/
@NotNull(message = "请输入数据权限名")
@Size(min = 1, max = 10,message = "请输入数据权限名")
private String dataPermissionName;
/**
* 备注
*/
private String memo;
/**
* 字段
*/
private List<Attribute> attrs;
/**
* 排序 从小到大
*/
private Integer sort;
/**
* 创建人自然人id
*/
private Long createBy;
/**
* 修改人自然人id
*/
private Long updateBy;
}

View File

@ -3,8 +3,10 @@ package cn.axzo.tyr.server.controller.dataPermission;
import cn.axzo.framework.domain.web.ApiException;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.feign.DataPermissionApi;
import cn.axzo.tyr.client.model.req.CreateDataPermissionReq;
import cn.axzo.tyr.client.model.req.GetWorkflowQueryAndUpdatePermissionReq;
import cn.axzo.tyr.client.model.res.GetWorkflowQueryAndUpdatePermissionRes;
import cn.axzo.tyr.server.service.DataPermissionService;
import cn.axzo.tyr.server.utils.RpcExternalUtil;
import cn.axzo.workflow.client.feign.bpmn.ProcessInstanceApi;
import cn.axzo.workflow.client.feign.bpmn.ProcessTaskApi;
@ -32,6 +34,10 @@ public class DataPermissionController implements DataPermissionApi {
private final ProcessTaskApi processTaskApi;
private final ProcessInstanceApi processInstanceApi;
// ******************************************************************
// 数据权限
private final DataPermissionService dataPermissionService;
@Override
public ApiResult<GetWorkflowQueryAndUpdatePermissionRes> getWorkflowQueryAndUpdatePermission(GetWorkflowQueryAndUpdatePermissionReq req) {
@ -65,4 +71,12 @@ public class DataPermissionController implements DataPermissionApi {
}
return ApiResult.ok(result);
}
// ******************************************************************
// 数据权限
@Override
public ApiResult<Long> createDataPermission(CreateDataPermissionReq req) {
return ApiResult.ok(dataPermissionService.createDataPermission(req));
}
}

View File

@ -0,0 +1,10 @@
package cn.axzo.tyr.server.repository.dao;
import cn.axzo.tyr.server.repository.entity.DataPermission;
import cn.axzo.tyr.server.repository.mapper.DataPermissionMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
@Repository
public class DataPermissionDao extends ServiceImpl<DataPermissionMapper, DataPermission> {
}

View File

@ -0,0 +1,11 @@
package cn.axzo.tyr.server.repository.dao;
import cn.axzo.tyr.server.repository.entity.DataPermission;
import cn.axzo.tyr.server.repository.entity.DataObjectRule;
import cn.axzo.tyr.server.repository.mapper.DataPermissionRuleMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
@Repository
public class DataPermissionRuleDao extends ServiceImpl<DataPermissionRuleMapper, DataObjectRule> {
}

View File

@ -0,0 +1,46 @@
package cn.axzo.tyr.server.repository.entity;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "data_object", autoResultMap = true)
public class DataObject extends BaseEntity<DataObject> implements Serializable {
/**
* 数据权限code
*/
private String dataObjectCode;
/**
* 数据权限名 全局唯一
*/
private String dataObjectName;
/**
* 备注
*/
private String memo;
/**
* 租户范围插入后不可编辑 1项目租户 2单位租户 3:OMS 4:政务监管平台
*/
private Integer tenantScope;
/**
* 排序 从小到大
*/
private Integer sort;
/**
* 创建人自然人id
*/
private Long createBy;
/**
* 修改人自然人id
*/
private Long updateBy;
}

View File

@ -0,0 +1,43 @@
package cn.axzo.tyr.server.repository.entity;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "data_object_attr", autoResultMap = true)
public class DataObjectAttr extends BaseEntity<DataObjectAttr> implements Serializable {
/**
* 序号
*/
private Integer sort;
/**
* 字段名
*/
private String attrName;
private String attrCode;
/**
* 是否支持脱敏 1-支持 0-不支持
*/
private Integer unmaskSupport;
/**
* 是否支持编辑 1-支持 0-不支持
*/
private Integer editSupport;
/**
* 创建人自然人id
*/
private Long createBy;
/**
* 修改人自然人id
*/
private Long updateBy;
}

View File

@ -0,0 +1,63 @@
package cn.axzo.tyr.server.repository.entity;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "data_object_rule", autoResultMap = true)
public class DataObjectRule extends BaseEntity<DataObjectRule> implements Serializable {
/**
* 数据权限id
*/
private String dataObjectId;
/**
* 数据权限code
*/
private String dataObjectCode;
/**
* 规则名
*/
private String name;
/**
* 行级数据权限单选 1:仅本人数据 2:本人及下属数据 3:仅本部门数据 4:本部门及以下数据
* 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目部数据
*/
private Integer rowPermission;
/**
* 规则范围 1岗位 2角色
*/
private Integer ruleScope;
/**
* 岗位id
*/
private Long jobId;
/**
* 角色id
*/
private Long roleId;
/**
* 是否为默认规则 0-不是 1-
*/
private Integer isDefault;
/**
* 排序 从小到大
*/
private Integer sort;
/**
* 创建人自然人id
*/
private Long createBy;
/**
* 修改人自然人id
*/
private Long updateBy;
}

View File

@ -0,0 +1,52 @@
package cn.axzo.tyr.server.repository.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "data_object_rule_attr_relation", autoResultMap = true)
public class DataObjectRuleAttrRelation {
/**
* 数据对象id
*/
private Long dataObjectId;
/**
* 数据对象code
*/
private Long dataObjectName;
/**
* 数据对象字段id
*/
private Long dataObjectAttrId;
/**
* 序号
*/
private Integer sort;
/**
* 字段值查看范围 0:同行级数据权限 1:仅本人数据 2:本人及下属数据 3:仅本部门数据 4:本部门及以下数据
* 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目部数据
*/
private Integer visibilityScope;
/**
* 是否可脱敏 1-可操作脱敏 0-不可操作脱敏
*/
private Integer isUnmaskable;
/**
* 是否可编辑 1-可编辑 0-不可编辑
*/
private Integer isEditable;
/**
* 创建人自然人id
*/
private Long createBy;
/**
* 修改人自然人id
*/
private Long updateBy;
}

View File

@ -0,0 +1,9 @@
package cn.axzo.tyr.server.repository.mapper;
import cn.axzo.tyr.server.repository.entity.DataPermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DataPermissionMapper extends BaseMapper<DataPermission> {
}

View File

@ -0,0 +1,9 @@
package cn.axzo.tyr.server.repository.mapper;
import cn.axzo.tyr.server.repository.entity.DataObjectRule;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DataPermissionRuleMapper extends BaseMapper<DataObjectRule> {
}

View File

@ -0,0 +1,7 @@
package cn.axzo.tyr.server.service;
import cn.axzo.tyr.client.model.req.CreateDataPermissionReq;
public interface DataPermissionService {
Long createDataPermission(CreateDataPermissionReq req);
}

View File

@ -0,0 +1,22 @@
package cn.axzo.tyr.server.service.impl;
import cn.axzo.tyr.client.model.req.CreateDataPermissionReq;
import cn.axzo.tyr.server.repository.dao.DataPermissionDao;
import cn.axzo.tyr.server.repository.dao.DataPermissionRuleDao;
import cn.axzo.tyr.server.service.DataPermissionService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@RequiredArgsConstructor
@Service
public class DataPermissionServiceImpl implements DataPermissionService {
private final DataPermissionDao dataPermissionDao;
private final DataPermissionRuleDao dataPermissionRuleDao;
@Override
public Long createDataPermission(CreateDataPermissionReq req) {
}
}