feat:(REQ-3282) 重构项目权限查询接口,支持每个项目查询不同的权限条件
This commit is contained in:
parent
19f16a5d7f
commit
50350b8cd7
@ -18,8 +18,6 @@ import cn.axzo.tyr.client.model.req.ListRoleReq;
|
|||||||
import cn.axzo.tyr.client.model.req.ListSaasRoleGroupParam;
|
import cn.axzo.tyr.client.model.req.ListSaasRoleGroupParam;
|
||||||
import cn.axzo.tyr.client.model.req.PagePgroupPermissionRelationReq;
|
import cn.axzo.tyr.client.model.req.PagePgroupPermissionRelationReq;
|
||||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||||
import cn.axzo.tyr.client.model.req.PageRoleReq;
|
|
||||||
import cn.axzo.tyr.client.model.req.PermissionCheckReq;
|
|
||||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||||
import cn.axzo.tyr.client.model.res.CommonDictResp;
|
import cn.axzo.tyr.client.model.res.CommonDictResp;
|
||||||
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
|
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
|
||||||
@ -69,7 +67,6 @@ import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
|||||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
||||||
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||||
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
|
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
|
||||||
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
|
||||||
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
||||||
import cn.axzo.tyr.server.service.impl.SaasFeatureResourceCacheService;
|
import cn.axzo.tyr.server.service.impl.SaasFeatureResourceCacheService;
|
||||||
import cn.axzo.tyr.server.util.FeatureCodeUtil;
|
import cn.axzo.tyr.server.util.FeatureCodeUtil;
|
||||||
@ -86,7 +83,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@ -615,11 +611,6 @@ public class PrivateController {
|
|||||||
return "ok";
|
return "ok";
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/api/private/workspaceProduct/list")
|
|
||||||
public Object listWorkspaceProduct(@RequestBody WorkspaceProductService.WorkspaceProductParam request) {
|
|
||||||
return workspaceProductService.listWorkspaceProductCached(request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/api/private/cacheWorkspaceProductHandler/process")
|
@PostMapping("/api/private/cacheWorkspaceProductHandler/process")
|
||||||
public Object processCacheWorkspaceProductHandler(@RequestBody ServicePkgProductCreatedPayload request) {
|
public Object processCacheWorkspaceProductHandler(@RequestBody ServicePkgProductCreatedPayload request) {
|
||||||
Event event = Event.builder()
|
Event event = Event.builder()
|
||||||
@ -678,8 +669,8 @@ public class PrivateController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/api/private/workspaceProductCached/list")
|
@PostMapping("/api/private/workspaceProductCached/list")
|
||||||
public Object workspaceProductCached(@RequestBody WorkspaceProductService.ListWorkspaceProductPermissionCacheParam request) {
|
public Object workspaceProductCached(@RequestBody WorkspaceProductService.ListWorkspacePermissionCacheParam request) {
|
||||||
return workspaceProductService.listWorkspaceProductPermissionCached(request);
|
return workspaceProductService.listWorkspacePermissionCached(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1297,11 +1288,13 @@ public class PrivateController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<WorkspaceProductService.ProductPermission> listWorkspaceProductPermission(CheckPermissionParam request) {
|
private List<WorkspaceProductService.ProductPermission> listWorkspaceProductPermission(CheckPermissionParam request) {
|
||||||
WorkspaceProductService.ListWorkspaceProductPermissionCacheParam listWorkspaceProductPermissionCacheParam = WorkspaceProductService.ListWorkspaceProductPermissionCacheParam
|
WorkspaceProductService.ListWorkspacePermissionCacheParam listWorkspaceProductPermissionCacheParam = WorkspaceProductService.ListWorkspacePermissionCacheParam
|
||||||
.builder()
|
.builder()
|
||||||
.workspaceIds(Sets.newHashSet(request.getWorkspaceId()))
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(request.getWorkspaceId())
|
||||||
|
.build()))
|
||||||
.build();
|
.build();
|
||||||
return workspaceProductService.listWorkspaceProductPermissionCached(listWorkspaceProductPermissionCacheParam).stream()
|
return workspaceProductService.listWorkspacePermissionCached(listWorkspaceProductPermissionCacheParam).stream()
|
||||||
.map(WorkspaceProductService.WorkspaceProductPermission::getProductPermissions)
|
.map(WorkspaceProductService.WorkspaceProductPermission::getProductPermissions)
|
||||||
.flatMap(Collection::stream)
|
.flatMap(Collection::stream)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package cn.axzo.tyr.server.service;
|
|||||||
|
|
||||||
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
||||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||||
|
import cn.axzo.tyr.feign.req.ListPermissionUserReq;
|
||||||
|
import cn.axzo.tyr.feign.resp.PermissionUserResp;
|
||||||
import cn.axzo.tyr.feign.resp.UserPermissionResp;
|
import cn.axzo.tyr.feign.resp.UserPermissionResp;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
@ -14,8 +16,20 @@ import java.util.Set;
|
|||||||
|
|
||||||
public interface PermissionService {
|
public interface PermissionService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户的权限
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
List<UserPermissionResp> listUserPermission(ListUserPermissionParam param);
|
List<UserPermissionResp> listUserPermission(ListUserPermissionParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询有权限的用户
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PermissionUserResp> listPermissionUser(ListPermissionUserReq param);
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
|||||||
@ -109,10 +109,5 @@ public interface ProductPermissionCacheService {
|
|||||||
* 项目code(H5会拉取项目下所有的元素)
|
* 项目code(H5会拉取项目下所有的元素)
|
||||||
*/
|
*/
|
||||||
private String itemCode;
|
private String itemCode;
|
||||||
|
|
||||||
/**
|
|
||||||
* 客户端版本号
|
|
||||||
*/
|
|
||||||
private Integer version;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -14,13 +14,6 @@ import java.util.Set;
|
|||||||
|
|
||||||
public interface WorkspaceProductService {
|
public interface WorkspaceProductService {
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存中查询项目的产品
|
|
||||||
* @param param
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<WorkspaceProduct> listWorkspaceProductCached(WorkspaceProductParam param);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存项目的产品
|
* 缓存项目的产品
|
||||||
* @param param
|
* @param param
|
||||||
@ -28,11 +21,11 @@ public interface WorkspaceProductService {
|
|||||||
void storeWorkspaceProduct(StoreWorkspaceProductParam param);
|
void storeWorkspaceProduct(StoreWorkspaceProductParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从缓存中查询项目的产品及产品的权限
|
* 从缓存中查询项目的权限
|
||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<WorkspaceProductPermission> listWorkspaceProductPermissionCached(ListWorkspaceProductPermissionCacheParam param);
|
List<WorkspaceProductPermission> listWorkspacePermissionCached(ListWorkspacePermissionCacheParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从缓存中查询项目的产品及产品的菜单信息
|
* 从缓存中查询项目的产品及产品的菜单信息
|
||||||
@ -60,12 +53,24 @@ public interface WorkspaceProductService {
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
class ListWorkspaceProductPermissionCacheParam {
|
class ListWorkspacePermissionCacheParam {
|
||||||
|
private List<WorkspacePermission> workspacePermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
class WorkspacePermission {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目id
|
* 项目id
|
||||||
*/
|
*/
|
||||||
private Set<Long> workspaceIds;
|
private Long workspaceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限code
|
||||||
|
*/
|
||||||
private Set<String> featureCodes;
|
private Set<String> featureCodes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -3,7 +3,9 @@ package cn.axzo.tyr.server.service.impl;
|
|||||||
import cn.axzo.tyr.feign.enums.IdentityTypeEnum;
|
import cn.axzo.tyr.feign.enums.IdentityTypeEnum;
|
||||||
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
||||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||||
|
import cn.axzo.tyr.feign.req.ListPermissionUserReq;
|
||||||
import cn.axzo.tyr.feign.resp.PermissionResp;
|
import cn.axzo.tyr.feign.resp.PermissionResp;
|
||||||
|
import cn.axzo.tyr.feign.resp.PermissionUserResp;
|
||||||
import cn.axzo.tyr.feign.resp.UserPermissionResp;
|
import cn.axzo.tyr.feign.resp.UserPermissionResp;
|
||||||
import cn.axzo.tyr.server.service.PermissionService;
|
import cn.axzo.tyr.server.service.PermissionService;
|
||||||
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
||||||
@ -134,6 +136,25 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1、根据权限code及相关条件查询项目的权限
|
||||||
|
* 2、查询单位、项目的所有role
|
||||||
|
* 3、根据所有role查询角色信息
|
||||||
|
* 4、根据项目的权限和role查询角色的权限信息
|
||||||
|
* 5、解析有权限的admin role
|
||||||
|
* 6、解析有权限的非admin role
|
||||||
|
* 7、解析有离场权限的admin role
|
||||||
|
* 8、聚合6,7,8的角色,根据角色查询用户
|
||||||
|
* 9、根据用户查询用户的tags
|
||||||
|
* 10、
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PermissionUserResp> listPermissionUser(ListPermissionUserReq param) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 只有查询在职权限时才能直接根据管理员角色和产品去匹配
|
* 只有查询在职权限时才能直接根据管理员角色和产品去匹配
|
||||||
* 因为离场权限,管理员角色会配置管理员角色对应的离场权限
|
* 因为离场权限,管理员角色会配置管理员角色对应的离场权限
|
||||||
@ -300,14 +321,19 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkspaceProductService.ListWorkspaceProductPermissionCacheParam listWorkspaceProductPermission = WorkspaceProductService.ListWorkspaceProductPermissionCacheParam.builder()
|
WorkspaceProductService.ListWorkspacePermissionCacheParam listWorkspacePermissionCacheParam = WorkspaceProductService.ListWorkspacePermissionCacheParam
|
||||||
.workspaceIds(workspaceIds)
|
.builder()
|
||||||
|
.workspacePermissions(workspaceIds.stream()
|
||||||
|
.map(workspaceId -> WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(workspaceId)
|
||||||
.featureCodes(param.getFeatureCodes())
|
.featureCodes(param.getFeatureCodes())
|
||||||
.appType(param.getAppType())
|
.appType(param.getAppType())
|
||||||
.itemCode(param.getItemCode())
|
.itemCode(param.getItemCode())
|
||||||
.terminal(param.getTerminal())
|
.terminal(param.getTerminal())
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList()))
|
||||||
.build();
|
.build();
|
||||||
return workspaceProductService.listWorkspaceProductPermissionCached(listWorkspaceProductPermission)
|
return workspaceProductService.listWorkspacePermissionCached(listWorkspacePermissionCacheParam)
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
||||||
e -> Optional.ofNullable(e.getProductPermissions())
|
e -> Optional.ofNullable(e.getProductPermissions())
|
||||||
|
|||||||
@ -469,11 +469,14 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
|||||||
// 查询的featureCodes有可能已经被删除,但是saas_feature_code效率比较低,两个表的id不会重复,所以解析成id去过滤权限
|
// 查询的featureCodes有可能已经被删除,但是saas_feature_code效率比较低,两个表的id不会重复,所以解析成id去过滤权限
|
||||||
Set<Long> featureIds = checkFeatureCodes(param);
|
Set<Long> featureIds = checkFeatureCodes(param);
|
||||||
|
|
||||||
WorkspaceProductService.ListWorkspaceProductPermissionCacheParam listWorkspaceProductPermissionCacheParam = WorkspaceProductService.ListWorkspaceProductPermissionCacheParam.builder()
|
WorkspaceProductService.ListWorkspacePermissionCacheParam listWorkspacePermissionCacheParam = WorkspaceProductService.ListWorkspacePermissionCacheParam
|
||||||
.workspaceIds(Sets.newHashSet(param.getWorkspaceId()))
|
.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(param.getWorkspaceId())
|
||||||
.featureCodes(param.getFeatureCodes())
|
.featureCodes(param.getFeatureCodes())
|
||||||
|
.build()))
|
||||||
.build();
|
.build();
|
||||||
List<ProductPermissionCacheService.PermissionDTO> productPermissions = workspaceProductService.listWorkspaceProductPermissionCached(listWorkspaceProductPermissionCacheParam)
|
List<ProductPermissionCacheService.PermissionDTO> productPermissions = workspaceProductService.listWorkspacePermissionCached(listWorkspacePermissionCacheParam)
|
||||||
.stream()
|
.stream()
|
||||||
.map(WorkspaceProductService.WorkspaceProductPermission::getProductPermissions)
|
.map(WorkspaceProductService.WorkspaceProductPermission::getProductPermissions)
|
||||||
.filter(e -> !CollectionUtils.isEmpty(e))
|
.filter(e -> !CollectionUtils.isEmpty(e))
|
||||||
@ -994,10 +997,14 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
|||||||
// find product by workspace
|
// find product by workspace
|
||||||
Set<Long> workspaceId = filterRoleAuths.stream().map(FilterRoleAuth::getWorkspaceId).collect(Collectors.toSet());
|
Set<Long> workspaceId = filterRoleAuths.stream().map(FilterRoleAuth::getWorkspaceId).collect(Collectors.toSet());
|
||||||
|
|
||||||
WorkspaceProductService.ListWorkspaceProductPermissionCacheParam listWorkspaceProductPermission = WorkspaceProductService.ListWorkspaceProductPermissionCacheParam.builder()
|
WorkspaceProductService.ListWorkspacePermissionCacheParam listWorkspacePermissionCacheParam = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
.workspaceIds(workspaceId)
|
.workspacePermissions(workspaceId.stream()
|
||||||
|
.map(e -> WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(e)
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList()))
|
||||||
.build();
|
.build();
|
||||||
Map<Long, List<WorkspaceProductService.ProductPermission>> workspaceProductPermissions = workspaceProductService.listWorkspaceProductPermissionCached(listWorkspaceProductPermission)
|
Map<Long, List<WorkspaceProductService.ProductPermission>> workspaceProductPermissions = workspaceProductService.listWorkspacePermissionCached(listWorkspacePermissionCacheParam)
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
||||||
WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
@ -1499,11 +1506,15 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
|||||||
.map(IdentityAuthReq.WorkspaceOuPair::getWorkspaceId)
|
.map(IdentityAuthReq.WorkspaceOuPair::getWorkspaceId)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
// 查询项目的产品权限
|
// 查询项目的产品权限
|
||||||
WorkspaceProductService.ListWorkspaceProductPermissionCacheParam listProductPermisssion = WorkspaceProductService.ListWorkspaceProductPermissionCacheParam.builder()
|
WorkspaceProductService.ListWorkspacePermissionCacheParam listProductPermisssion = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
.workspaceIds(workspaceIds)
|
.workspacePermissions(workspaceIds.stream()
|
||||||
|
.map(workspaceId -> WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(workspaceId)
|
||||||
.featureCodes(identityAuthReq.getFeatureCode())
|
.featureCodes(identityAuthReq.getFeatureCode())
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList()))
|
||||||
.build();
|
.build();
|
||||||
return workspaceProductService.listWorkspaceProductPermissionCached(listProductPermisssion).stream()
|
return workspaceProductService.listWorkspacePermissionCached(listProductPermisssion).stream()
|
||||||
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
||||||
WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,9 +7,6 @@ import cn.axzo.thrones.client.saas.ServicePkgClient;
|
|||||||
import cn.axzo.thrones.client.saas.entity.serivicepgkproduct.ServicePkgProduct;
|
import cn.axzo.thrones.client.saas.entity.serivicepgkproduct.ServicePkgProduct;
|
||||||
import cn.axzo.thrones.client.saas.entity.servicepkg.ServicePkgDetailRes;
|
import cn.axzo.thrones.client.saas.entity.servicepkg.ServicePkgDetailRes;
|
||||||
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
|
||||||
import cn.axzo.tyr.server.repository.entity.ProductFeatureQuery;
|
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
|
||||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
|
||||||
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
||||||
import cn.axzo.tyr.server.service.ProductSaasFeatureResourceCacheService;
|
import cn.axzo.tyr.server.service.ProductSaasFeatureResourceCacheService;
|
||||||
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
||||||
@ -22,6 +19,7 @@ import com.google.common.collect.Sets;
|
|||||||
import com.google.common.collect.Streams;
|
import com.google.common.collect.Streams;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
@ -36,6 +34,7 @@ import java.util.Objects;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.axzo.tyr.server.config.exception.BizResultCode.REDIS_PRODUCT_NOT_NULL;
|
import static cn.axzo.tyr.server.config.exception.BizResultCode.REDIS_PRODUCT_NOT_NULL;
|
||||||
@ -51,8 +50,6 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ProductModuleDao productModuleDao;
|
private ProductModuleDao productModuleDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductFeatureRelationService productFeatureRelationService;
|
|
||||||
@Autowired
|
|
||||||
private StringRedisTemplate redisTemplate;
|
private StringRedisTemplate redisTemplate;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductPermissionCacheService productPermissionCacheService;
|
private ProductPermissionCacheService productPermissionCacheService;
|
||||||
@ -66,47 +63,6 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
|
|||||||
|
|
||||||
private static final String WORKSPACE_PRODUCT_KEY = "workspace:product";
|
private static final String WORKSPACE_PRODUCT_KEY = "workspace:product";
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<WorkspaceProduct> listWorkspaceProductCached(WorkspaceProductParam param) {
|
|
||||||
if (CollectionUtils.isEmpty(param.getWorkspaceIds())) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Long, Set<Long>> workspaceProducts = listWorkspaceProduct(param.getWorkspaceIds());
|
|
||||||
|
|
||||||
Set<Long> productIds = workspaceProducts.values().stream()
|
|
||||||
.flatMap(Collection::stream)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(productIds)) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
ProductFeatureQuery productFeatureQuery = ProductFeatureQuery.builder()
|
|
||||||
.productIds(productIds)
|
|
||||||
.featureResourceTypes(param.getFeatureResourceTypes())
|
|
||||||
.terminal(param.getTerminal())
|
|
||||||
.type(param.getType())
|
|
||||||
.featureIdPairs(param.getFeatureIdPairs())
|
|
||||||
.build();
|
|
||||||
Map<Long, List<SaasProductModuleFeatureRelation>> saasProductModuleFeatureRelations = productFeatureRelationService.queryOnCondition(productFeatureQuery).stream()
|
|
||||||
.collect(Collectors.groupingBy(SaasProductModuleFeatureRelation::getProductModuleId));
|
|
||||||
|
|
||||||
return workspaceProducts.entrySet().stream()
|
|
||||||
.filter(e -> CollectionUtils.isNotEmpty(e.getValue()))
|
|
||||||
.map(e -> {
|
|
||||||
List<SaasProductModuleFeatureRelation> features = e.getValue().stream()
|
|
||||||
.map(saasProductModuleFeatureRelations::get)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.flatMap(Collection::stream)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
return WorkspaceProduct.builder()
|
|
||||||
.workspaceId(e.getKey())
|
|
||||||
.saasProductModuleFeatureRelations(features)
|
|
||||||
.build();
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void storeWorkspaceProduct(StoreWorkspaceProductParam param) {
|
public void storeWorkspaceProduct(StoreWorkspaceProductParam param) {
|
||||||
@ -204,8 +160,14 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WorkspaceProductPermission> listWorkspaceProductPermissionCached(ListWorkspaceProductPermissionCacheParam param) {
|
public List<WorkspaceProductPermission> listWorkspacePermissionCached(ListWorkspacePermissionCacheParam param) {
|
||||||
Map<Long, Set<Long>> workspaceProducts = listWorkspaceProduct(param.getWorkspaceIds());
|
if (CollectionUtils.isEmpty(param.getWorkspacePermissions())) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, Set<Long>> workspaceProducts = listWorkspaceProduct(param.getWorkspacePermissions().stream()
|
||||||
|
.map(WorkspacePermission::getWorkspaceId)
|
||||||
|
.collect(Collectors.toSet()));
|
||||||
|
|
||||||
Set<Long> productIds = workspaceProducts.values().stream()
|
Set<Long> productIds = workspaceProducts.values().stream()
|
||||||
.flatMap(Collection::stream)
|
.flatMap(Collection::stream)
|
||||||
@ -217,19 +179,32 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
|
|||||||
|
|
||||||
ProductPermissionCacheService.ListProductPermissionParam listProductPermissionParam = ProductPermissionCacheService.ListProductPermissionParam.builder()
|
ProductPermissionCacheService.ListProductPermissionParam listProductPermissionParam = ProductPermissionCacheService.ListProductPermissionParam.builder()
|
||||||
.productIds(productIds)
|
.productIds(productIds)
|
||||||
.featureCodes(param.getFeatureCodes())
|
|
||||||
.appType(param.getAppType())
|
|
||||||
.itemCode(param.getItemCode())
|
|
||||||
.terminal(param.getTerminal())
|
|
||||||
.build();
|
.build();
|
||||||
Map<Long, List<ProductPermissionCacheService.PermissionDTO>> productPermissionMap = productPermissionCacheService.list(listProductPermissionParam);
|
Map<Long, List<ProductPermissionCacheService.PermissionDTO>> productPermissionMap = productPermissionCacheService.list(listProductPermissionParam);
|
||||||
|
|
||||||
|
Map<Long, WorkspacePermission> workspacePermissionMap = param.getWorkspacePermissions().stream()
|
||||||
|
.collect(Collectors.toMap(WorkspacePermission::getWorkspaceId, Function.identity(), (f, s) -> f));
|
||||||
|
|
||||||
return workspaceProducts.entrySet().stream()
|
return workspaceProducts.entrySet().stream()
|
||||||
.filter(e -> CollectionUtils.isNotEmpty(e.getValue()))
|
.filter(e -> CollectionUtils.isNotEmpty(e.getValue()))
|
||||||
.map(e -> {
|
.map(e -> {
|
||||||
|
|
||||||
|
WorkspacePermission workspacePermissionParam = workspacePermissionMap.get(e.getKey());
|
||||||
|
|
||||||
List<ProductPermission> productPermissions = e.getValue().stream()
|
List<ProductPermission> productPermissions = e.getValue().stream()
|
||||||
.map(productId -> {
|
.map(productId -> {
|
||||||
List<ProductPermissionCacheService.PermissionDTO> permissions = productPermissionMap.get(productId);
|
List<ProductPermissionCacheService.PermissionDTO> permissions = Optional.ofNullable(productPermissionMap.get(productId))
|
||||||
|
.orElseGet(Lists::newArrayList)
|
||||||
|
.stream()
|
||||||
|
.filter(permission -> CollectionUtils.isEmpty(workspacePermissionParam.getFeatureCodes())
|
||||||
|
|| workspacePermissionParam.getFeatureCodes().contains(permission.getFeatureCode()))
|
||||||
|
.filter(permission -> StringUtils.isBlank(workspacePermissionParam.getTerminal())
|
||||||
|
|| Objects.equals(workspacePermissionParam.getTerminal(), permission.getTerminal()))
|
||||||
|
.filter(permission -> StringUtils.isBlank(workspacePermissionParam.getAppType())
|
||||||
|
|| Objects.equals(workspacePermissionParam.getAppType(), permission.getAppType()))
|
||||||
|
.filter(permission -> StringUtils.isBlank(workspacePermissionParam.getItemCode())
|
||||||
|
|| Objects.equals(workspacePermissionParam.getItemCode(), permission.getItemCode()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(permissions)) {
|
if (CollectionUtils.isEmpty(permissions)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,8 +39,6 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static cn.axzo.tyr.server.config.exception.BizResultCode.PARAM_ERROR;
|
import static cn.axzo.tyr.server.config.exception.BizResultCode.PARAM_ERROR;
|
||||||
import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.NEW_FEATURE;
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
class UserPermissionControllerTest extends BaseTest {
|
class UserPermissionControllerTest extends BaseTest {
|
||||||
@ -107,6 +105,14 @@ class UserPermissionControllerTest extends BaseTest {
|
|||||||
@Test
|
@Test
|
||||||
void listUserPermissionReplaceHasPermission() {
|
void listUserPermissionReplaceHasPermission() {
|
||||||
|
|
||||||
|
Map<String, Set<String>> featureCodeMap = Maps.newHashMap();
|
||||||
|
featureCodeMap.put("h5:cmp_user_manage_worker_page", Sets.newHashSet("h5:cmp_user_manage_worker_page"));
|
||||||
|
featureCodeMap.put("h5:cmp_user_manage_worker_page_2", Sets.newHashSet("h5:cmp_user_manage_worker_page_2"));
|
||||||
|
featureCodeMap.put("h5:cmp_user_manage_worker_on_site_audit_btn", Sets.newHashSet("h5:cmp_user_manage_worker_on_site_audit_btn"));
|
||||||
|
featureCodeMap.put("h5:cmp_user_manage_worker_jump_to_team_btn", Sets.newHashSet("h5:cmp_user_manage_worker_jump_to_team_btn"));
|
||||||
|
Mockito.when(featureCodeCachedApi.list(Mockito.any()))
|
||||||
|
.thenReturn(ApiResult.ok(featureCodeMap));
|
||||||
|
|
||||||
// old cn.axzo.tyr.client.feign.PermissionQueryApi#hasPermission
|
// old cn.axzo.tyr.client.feign.PermissionQueryApi#hasPermission
|
||||||
PermissionCheckReq permissionCheckReq = PermissionCheckReq.builder()
|
PermissionCheckReq permissionCheckReq = PermissionCheckReq.builder()
|
||||||
.personId(1827L)
|
.personId(1827L)
|
||||||
|
|||||||
@ -1,28 +0,0 @@
|
|||||||
package cn.axzo.tyr.server.permission;
|
|
||||||
|
|
||||||
import cn.axzo.tyr.server.job.ProductFeatureRefreshJobHandler;
|
|
||||||
import cn.axzo.tyr.server.model.ProductFeatureRefreshParam;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @version V1.0
|
|
||||||
* @author: ZhanSiHu
|
|
||||||
* @date: 2023/10/23 11:30
|
|
||||||
*/
|
|
||||||
@SpringBootTest
|
|
||||||
public class JobTest {
|
|
||||||
@Autowired
|
|
||||||
private ProductFeatureRefreshJobHandler productFeatureRefreshJobHandler;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testProductFeatureRefresh() throws Exception {
|
|
||||||
ProductFeatureRefreshParam param = new ProductFeatureRefreshParam();
|
|
||||||
param.setWorkspaceType(2);
|
|
||||||
param.setProductId(1007L);
|
|
||||||
productFeatureRefreshJobHandler.execute(JSON.toJSONString(param));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,145 +0,0 @@
|
|||||||
package cn.axzo.tyr.server.permission;
|
|
||||||
|
|
||||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
|
||||||
import cn.axzo.tyr.client.model.enums.FeatureType;
|
|
||||||
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.server.controller.permission.PermissionPointController;
|
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
|
||||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限点测试
|
|
||||||
*
|
|
||||||
* @version V1.0
|
|
||||||
* @author: ZhanSiHu
|
|
||||||
* @date: 2023/9/6 14:59
|
|
||||||
*/
|
|
||||||
@SpringBootTest
|
|
||||||
public class PermissionPointTest {
|
|
||||||
@Autowired
|
|
||||||
private PermissionPointController controller;
|
|
||||||
@Autowired
|
|
||||||
private SaasFeatureDao saasFeatureDao;
|
|
||||||
@Autowired
|
|
||||||
private PermissionPointService permissionPointService;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testList() {
|
|
||||||
List<SaasFeature> saasFeatures = saasFeatureDao.listByIds(Arrays.asList(206L, 207L, 208L));
|
|
||||||
System.out.println(JSON.toJSONString(saasFeatures));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testListTreeNode() {
|
|
||||||
PermissionPointTreeQueryReq request = new PermissionPointTreeQueryReq();
|
|
||||||
//request.setParentId(354L);
|
|
||||||
//request.setKeyword("预警");
|
|
||||||
//request.setWorkspaceType(Arrays.asList("ent"));
|
|
||||||
//request.setTerminalList(Arrays.asList("NT_CMS_WEB_ENT_ZB"));
|
|
||||||
request.setDelegateType(0);
|
|
||||||
request.setMaxLevel(3);
|
|
||||||
request.setMaxFeatureType(2);
|
|
||||||
ApiResult<List<PermissionPointTreeNode>> result = controller.listTreeNodes(request);
|
|
||||||
System.out.println("---------------");
|
|
||||||
System.out.println(JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGetDetail() {
|
|
||||||
Long permissionId = 360L;
|
|
||||||
ApiResult<PermissionPointVO> result = controller.getDetail(permissionId);
|
|
||||||
System.out.println(JSON.toJSONString(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testListByIds() {
|
|
||||||
List<Long> ids = Arrays.asList(354L, 360L);
|
|
||||||
ApiResult<List<PermissionPointTreeNode>> result = controller.listTreeNodesByIds(ids);
|
|
||||||
System.out.println(JSON.toJSONString(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testInsert() {
|
|
||||||
PermissionPointDTO permissionPoint = new PermissionPointDTO();
|
|
||||||
permissionPoint.setFeatureName("测试合同权限点");
|
|
||||||
permissionPoint.setFeatureCode("CMS_WEB_PROJ_0158");
|
|
||||||
//permissionPoint.setParentId(360L);
|
|
||||||
//permissionPoint.setPath("/0/354/360/");
|
|
||||||
//permissionPoint.setSort(3);
|
|
||||||
//permissionPoint.setTerminal("NT_CMS_WEB_PROJ");
|
|
||||||
permissionPoint.setTerminal("NT_CMS_WEB_ENT_ZB");
|
|
||||||
permissionPoint.setFeatureType(1);
|
|
||||||
//permissionPoint.setAppName("tyr");
|
|
||||||
//permissionPoint.setFeatureUrl("/tyr/test/permission");
|
|
||||||
//permissionPoint.setNeedAuth(true);
|
|
||||||
//permissionPoint.setNeedAuth(true);
|
|
||||||
System.out.println(JSON.toJSONString(permissionPoint));
|
|
||||||
controller.savePermissionPoint(permissionPoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testUpdate() {
|
|
||||||
PermissionPointDTO permissionPoint = new PermissionPointDTO();
|
|
||||||
permissionPoint.setId(3479L);
|
|
||||||
permissionPoint.setFeatureName("测试合同权限点");
|
|
||||||
permissionPoint.setFeatureCode("CMS_WEB_PROJ_0159"); //不生效
|
|
||||||
permissionPoint.setParentId(361L);//不生效
|
|
||||||
permissionPoint.setPath("/0/354/361/");//不生效
|
|
||||||
permissionPoint.setSort(9);//不生效
|
|
||||||
permissionPoint.setTerminal("NT_CMS_WEB_PROJ-xx");//不生效
|
|
||||||
permissionPoint.setFeatureType(3);
|
|
||||||
permissionPoint.setAppName("tyr");
|
|
||||||
permissionPoint.setFeatureUrl("/tyr/test/permission");
|
|
||||||
permissionPoint.setNeedAuth(true);
|
|
||||||
permissionPoint.setNeedAuth(true);
|
|
||||||
controller.savePermissionPoint(permissionPoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testMove() {
|
|
||||||
PermissionPointMoveRequest request = new PermissionPointMoveRequest();
|
|
||||||
request.setPermissionId(3483L);
|
|
||||||
request.setParentId(360L);
|
|
||||||
request.setSort(1);
|
|
||||||
ApiResult<Void> result = controller.move(request);
|
|
||||||
System.out.println(JSON.toJSONString(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testDelete() {
|
|
||||||
Long permissionId = 360L;
|
|
||||||
controller.deletePermissionPoint(permissionId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testQueryList() {
|
|
||||||
PermissionPointListQueryRequest request = new PermissionPointListQueryRequest();
|
|
||||||
request.setFeatureType(FeatureType.BUTTON.getCode());
|
|
||||||
request.setIds(Arrays.asList(255L, 266L));
|
|
||||||
ApiResult<List<PermissionPointTreeNode>> result = controller.queryList(request);
|
|
||||||
System.out.println(JSON.toJSONString(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void test() {
|
|
||||||
List<SaasFeature> saasFeatures = permissionPointService.listNodeWithChildrenByCode("CMS_WEB_PROJ_0546", "NT_CMS_WEB_PROJ");
|
|
||||||
System.out.println(JSON.toJSONString(saasFeatures));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
package cn.axzo.tyr.server.permission;
|
|
||||||
|
|
||||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
|
||||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
|
||||||
import cn.axzo.tyr.client.feign.TyrSaasRoleApi;
|
|
||||||
import cn.axzo.tyr.client.model.BaseWorkspaceModel;
|
|
||||||
import cn.axzo.tyr.client.model.enums.FeatureType;
|
|
||||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
|
||||||
import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq;
|
|
||||||
import cn.axzo.tyr.client.model.res.RoleWithUserRes;
|
|
||||||
import cn.axzo.tyr.server.controller.role.SaasRoleController;
|
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
|
||||||
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
|
|
||||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
|
||||||
import cn.axzo.tyr.server.service.RoleService;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限点测试
|
|
||||||
*
|
|
||||||
* @version V1.0
|
|
||||||
* @author: ZhanSiHu
|
|
||||||
* @date: 2023/9/6 14:59
|
|
||||||
*/
|
|
||||||
@SpringBootTest
|
|
||||||
public class RoleUserTest {
|
|
||||||
@Autowired
|
|
||||||
private SaasRoleUserRelationDao saasRoleUserRelationDao;
|
|
||||||
@Autowired
|
|
||||||
private SaasFeatureDao saasFeatureDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SaasRoleController controller;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SaasRoleDao saasRoleDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RoleService roleService;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testList() {
|
|
||||||
saasRoleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder()
|
|
||||||
.workspaceId(
|
|
||||||
999L
|
|
||||||
)
|
|
||||||
.ouId(123L)
|
|
||||||
.identityId(32L)
|
|
||||||
.identityType(IdentityType.PRACTITIONER)
|
|
||||||
.build(), Arrays.asList(4L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testQuery() {
|
|
||||||
RoleWithUserQueryReq request = new RoleWithUserQueryReq();
|
|
||||||
request.setOuId(5195L);
|
|
||||||
request.setWorkspaceId(232L);
|
|
||||||
request.setPage(1L);
|
|
||||||
request.setPageSize(5L);
|
|
||||||
ApiPageResult<RoleWithUserRes> result = controller.queryRoleWithUser(request);
|
|
||||||
System.out.println(JSON.toJSONString(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testListAdmin() {
|
|
||||||
roleService.listAdmins(111L, 22L);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
package cn.axzo.tyr.server.permission;
|
|
||||||
|
|
||||||
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
|
|
||||||
import cn.hutool.core.date.StopWatch;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @version V1.0
|
|
||||||
* @author: ZhanSiHu
|
|
||||||
* @date: 2023/9/13 18:43
|
|
||||||
*/
|
|
||||||
public class SimpleTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSplitBit() {
|
|
||||||
|
|
||||||
PermissionPointVO vo = new PermissionPointVO();
|
|
||||||
vo.applyFitOuTypeBit(65535L);
|
|
||||||
System.out.println(vo.getFitOuTypeList());
|
|
||||||
vo.applyFitOuTypeBit(65535L);
|
|
||||||
System.out.println(vo.getFitOuTypeList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,214 @@
|
|||||||
|
package cn.axzo.tyr.server.service.impl;
|
||||||
|
|
||||||
|
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.base.BaseTest;
|
||||||
|
import cn.axzo.tyr.base.MysqlDataLoader;
|
||||||
|
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
||||||
|
import cn.azxo.framework.common.model.CommonResponse;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
class WorkspaceProductServiceImplTest extends BaseTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MysqlDataLoader mysqlDataLoader;
|
||||||
|
@Autowired
|
||||||
|
private WorkspaceProductService workspaceProductService;
|
||||||
|
@Autowired
|
||||||
|
private ServicePkgClient servicePkgClient;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
@Override
|
||||||
|
public void setup() {
|
||||||
|
super.setup();
|
||||||
|
mysqlDataLoader.loadFromClassName(getClass().getSimpleName());
|
||||||
|
ServicePkgDetailRes servicePkgDetail = new ServicePkgDetailRes();
|
||||||
|
servicePkgDetail.setSpaceId(3L);
|
||||||
|
ServicePkgProduct servicePkgProduct = new ServicePkgProduct();
|
||||||
|
servicePkgProduct.setProductId(2L);
|
||||||
|
servicePkgDetail.setProducts(Lists.newArrayList(servicePkgProduct));
|
||||||
|
Mockito.when(servicePkgClient.getServicePkgDetailBySpaceId(Mockito.eq(Sets.newHashSet(3L))))
|
||||||
|
.thenReturn(CommonResponse.success(Lists.newArrayList(servicePkgDetail)));
|
||||||
|
|
||||||
|
ServicePkgDetailRes servicePkgDetail2 = new ServicePkgDetailRes();
|
||||||
|
servicePkgDetail2.setSpaceId(4L);
|
||||||
|
ServicePkgProduct servicePkgProduct2 = new ServicePkgProduct();
|
||||||
|
servicePkgProduct2.setProductId(3L);
|
||||||
|
servicePkgDetail2.setProducts(Lists.newArrayList(servicePkgProduct2));
|
||||||
|
Mockito.when(servicePkgClient.getServicePkgDetailBySpaceId(Mockito.eq(Sets.newHashSet(3L, 4L))))
|
||||||
|
.thenReturn(CommonResponse.success(Lists.newArrayList(servicePkgDetail2, servicePkgDetail)));
|
||||||
|
|
||||||
|
Mockito.when(servicePkgClient.getServicePkgDetailBySpaceId(Mockito.eq(Sets.newHashSet(11L))))
|
||||||
|
.thenReturn(CommonResponse.success(Lists.newArrayList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void listWorkspacePermissionCached() {
|
||||||
|
|
||||||
|
|
||||||
|
// workspace 没有product
|
||||||
|
WorkspaceProductService.ListWorkspacePermissionCacheParam param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(11L)
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
List<WorkspaceProductService.WorkspaceProductPermission> workspaceProductPermissions = workspaceProductService.listWorkspacePermissionCached(param);
|
||||||
|
|
||||||
|
Assertions.assertTrue(CollectionUtils.isEmpty(workspaceProductPermissions));
|
||||||
|
// workspace 没有product
|
||||||
|
|
||||||
|
// workspace 有product,featureCode
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.featureCodes(Sets.newHashSet("h5:cmp_user_manage_worker_labor_audit_btn", "h5:cmp_allotted_time_page"))
|
||||||
|
.build(),
|
||||||
|
WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(4L)
|
||||||
|
.featureCodes(Sets.newHashSet("h5:cmp_allotted_time_page"))
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Map<Long, List<WorkspaceProductService.ProductPermission>> workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getProductId(), 2L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getCooperateType(), "1");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getFeatureId(), 101745L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getFeatureCode(), "h5:cmp_user_manage_worker_labor_audit_btn");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getFeatureType(), 4);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getTerminal(), "NT_CMP_APP_GENERAL");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getAppType(), "H5");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().get(0).getItemCode(), "h5:user_manage_D9B0186");
|
||||||
|
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getProductId(), 3L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getCooperateType(), "9");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getFeatureId(), 101936L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getFeatureCode(), "h5:cmp_allotted_time_page");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getFeatureType(), 4);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getTerminal(), "NT_CMP_APP_GENERAL");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getAppType(), "H5");
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(4L).get(0).getPermissions().get(0).getItemCode(), "h5:allotted-time_26081705");
|
||||||
|
// workspace 有product,featureCode
|
||||||
|
|
||||||
|
// workspace 有product,terminal
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.terminal("NT_CMP_APP_GENERAL")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getProductId(), 2L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().size(), 7);
|
||||||
|
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.terminal("NT_CMP_APP_GENERAL_sdf")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 0);
|
||||||
|
// workspace 有product,terminal
|
||||||
|
|
||||||
|
// workspace 有product,appType
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.appType("H5")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getProductId(), 2L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().size(), 7);
|
||||||
|
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.appType("APP")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 0);
|
||||||
|
// workspace 有product,appType
|
||||||
|
|
||||||
|
// workspace 有product,itemCode
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.itemCode("h5:user_manage_D9B0186")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getProductId(), 2L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().size(), 7);
|
||||||
|
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.itemCode("h5:user_manage_D9B0186_sdf")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 0);
|
||||||
|
// workspace 有product,itemCode
|
||||||
|
|
||||||
|
// workspace 有product,featureCode、terminal、appType、itemCode
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.featureCodes(Sets.newHashSet("h5:cmp_user_manage_worker_labor_audit_btn"))
|
||||||
|
.terminal("NT_CMP_APP_GENERAL")
|
||||||
|
.appType("H5")
|
||||||
|
.itemCode("h5:user_manage_D9B0186")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 1);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getProductId(), 2L);
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).get(0).getPermissions().size(), 1);
|
||||||
|
|
||||||
|
param = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||||
|
.workspacePermissions(Lists.newArrayList(WorkspaceProductService.WorkspacePermission.builder()
|
||||||
|
.workspaceId(3L)
|
||||||
|
.featureCodes(Sets.newHashSet("h5:cmp_user_manage_worker_labor_audit_btn"))
|
||||||
|
.terminal("NT_CMP_APP_GENERAL")
|
||||||
|
.appType("APP")
|
||||||
|
.itemCode("h5:user_manage_D9B0186_sdf")
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
workspacePermissions = workspaceProductService.listWorkspacePermissionCached(param).stream()
|
||||||
|
.collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId, WorkspaceProductService.WorkspaceProductPermission::getProductPermissions));
|
||||||
|
Assertions.assertEquals(workspacePermissions.get(3L).size(), 0);
|
||||||
|
// workspace 有product,featureCode、terminal、appType、itemCode
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,130 @@
|
|||||||
|
#-->DEFAULT
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (100835, 'cms:project_9103', '项目', 1, 'NT_CMS_WEB_GENERAL', 0, 100000, '100000,100835,', 0, '', 0, 'cms:project_9103', 1, 1, 'https://axzo-public.oss-cn-chengdu.aliyuncs.com/oms/oms/d4137963b9f54c7787afa7ef52d95540.svg', 1, '/', 0, '', 0, 0, '{"moreIcon": "https://axzo-public.oss-cn-chengdu.aliyuncs.com/oms/oms/cc474a2dc1884b6081f33d470a2e03e6.svg", "activeIcon": "https://axzo-public.oss-cn-chengdu.aliyuncs.com/oms/oms/3e69eb003de64682a2e88c4d9da5ed1d.svg"}', 0, 0, '2024-06-01 14:50:52', '2024-10-29 11:29:10', 59926, 9000404098, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101048, 'cms:pro_contract_management_7701', '合约管理', 2, 'NT_CMS_WEB_GENERAL', 0, 100883, '100000,100835,100883,101048,', 2, '2', 0, 'cms:pro_contract_management_7701', 0, 1, '', 1, '/netConstruction/construction/contract-manage', 0, '', 0, 0, null, 1, 0, '2024-06-18 16:35:35', '2024-10-21 11:24:41', 59926, 9000404204, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101053, 'cms:pro_contract_price_authority_7706', '查看合约价格信息', 4, 'NT_CMS_WEB_GENERAL', 5, 101054, '100000,100835,100883,101048,101054,101053,', 0, '', 0, 'cms:pro_contract_price_authority_7706', 4, 1, '', 1, '', 0, '', 0, 0, null, 1, 1, '2024-07-12 14:02:46', '2024-10-21 11:24:43', 59926, 9000404204, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101054, 'cms:pro_contract_detail_7707', '合约详情', 4, 'NT_CMS_WEB_GENERAL', 1, 101048, '100000,100835,100883,101048,101054,', 0, '', 0, 'cms:pro_contract_detail_7707', 3, 1, '', 1, '/', 0, '', 0, 0, null, 1, 1, '2024-07-04 16:27:16', '2024-10-21 11:24:42', 185732, 9000404204, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101744, 'cmp:pro_team_list_0443', '查看班组列表', 4, 'NT_CMP_APP_GENERAL', 5, 101741, '636,101437,101445,101573,101741,101744,', 0, '', 0, 'cmp:pro_team_list_0443', 2, 1, '', 1, '', 0, '', 0, 0, null, 1, 1, '2024-08-13 10:39:22', '2024-08-28 10:53:36', 86256, 25923, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101745, 'cmp:pro_worker_invite_recorder_0445', '查看工人入场申请', 4, 'NT_CMP_APP_GENERAL', 5, 101741, '636,101437,101445,101573,101741,101745,', 0, '', 0, 'cmp:pro_worker_invite_recorder_0445', 3, 1, '', 1, '', 0, '', 0, 0, null, 1, 1, '2024-08-13 10:40:29', '2024-08-28 10:53:36', 86256, 25923, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101746, 'cmp:pro_team_leader_invite_recorder_0446', '班组长入场申请记录', 4, 'NT_CMP_APP_GENERAL', 5, 101741, '636,101437,101445,101573,101741,101746,', 0, '', 0, 'cmp:pro_team_leader_invite_recorder_0446', 4, 1, '', 1, '', 0, '', 0, 0, null, 1, 1, '2024-08-13 10:40:50', '2024-08-28 10:53:36', 86256, 25923, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101749, 'cmp:pro_team_index_0449', '查看班组详情', 4, 'NT_CMP_APP_GENERAL', 5, 101741, '636,101437,101445,101573,101741,101749,', 0, '', 0, 'cmp:pro_team_index_0449', 7, 1, '', 1, '', 0, '', 0, 0, null, 1, 1, '2024-08-13 10:41:28', '2024-08-28 10:53:37', 86256, 25923, 0);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO product_module (id, icon, product_type, product_name, dict_workspace_type_id, dict_workspace_type_code, status, common_product, remark, auth_type, ou_type, is_delete, create_by, create_at, update_at, update_by, category, version, max_person_count, max_workspace_count, price, skus, material)
|
||||||
|
VALUES (2, 'https://axzo-public.oss-cn-chengdu.aliyuncs.com/oms/test/1695286111017-Snipaste_09-13 16-24.png', 2, '项目基础', 2, '2', 1, 1, '', 1, null, 0, 0, '2022-08-17 19:46:11', '2024-12-12 15:37:27', 89601, 'GENERAL_SERVICE', 0, 0, 0, 0, NULL, NULL);
|
||||||
|
INSERT INTO product_module (id, icon, product_type, product_name, dict_workspace_type_id, dict_workspace_type_code, status, common_product, remark, auth_type, ou_type, is_delete, create_by, create_at, update_at, update_by, category, version, max_person_count, max_workspace_count, price, skus, material)
|
||||||
|
VALUES (3, 'https://axzo-public.oss-cn-chengdu.aliyuncs.com/oms/test/1695279180099-人脸照.jpg', 2, '实名考勤', 2, '2', 1, 1, '', 1, null, 0, 0, '2022-08-17 19:46:11', '2024-10-28 11:14:06', 9000404668, 'GENERAL_SERVICE', 0, 0, 0, 0, null, null);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257742, 2, 7, '1', 101744, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257743, 2, 7, '1', 101745, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257744, 2, 7, '1', 101746, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257745, 2, 7, '1', 4443, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257746, 2, 7, '1', 4416, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257747, 2, 7, '1', 4417, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257748, 2, 7, '1', 4418, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257749, 2, 7, '1', 4419, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257750, 2, 7, '1', 4420, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1257751, 2, 7, '1', 912, 0, '2024-08-20 17:54:00', '2024-08-20 17:54:00', 0, 0, 1, 0, '');
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (14744, 'cms:pro_construction_contract_management', 'cms:pro_contract_management_7701', 1, 'NT_CMS_WEB_GENERAL', '2024-07-10 20:39:15', '2024-07-10 20:39:15', null, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (18070, 'cms:pro_construction_contract_management', 'cms:pro_contract_management_7701', 0, 'NT_CMS_WEB_GENERAL', '2024-07-16 09:56:12', '2024-07-16 09:56:11', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (18079, 'cms:pro_construction_contract_detail', 'cms:pro_contract_detail_7707', 0, 'NT_CMS_WEB_GENERAL', '2024-07-16 09:56:12', '2024-07-16 09:56:11', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (18080, 'cms:pro_construction_contract_detail_inventory_submit_audit', 'cms:pro_contract_detail_7707', 0, 'NT_CMS_WEB_GENERAL', '2024-07-16 09:56:12', '2024-07-16 09:56:11', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24219, 'h5:cmp_user_manage_worker_jump_to_team_btn', 'cmp:pro_team_list_0443', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24220, 'h5:cmp_user_manage_worker_page', 'cmp:pro_team_list_0443', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24221, 'h5:cmp_user_manage_worker_labor_audit_btn', 'cmp:pro_worker_invite_recorder_0445', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24222, 'h5:cmp_user_manage_worker_page', 'cmp:pro_worker_invite_recorder_0445', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24223, 'h5:cmp_user_manage_labor_audit_page', 'cmp:pro_worker_invite_recorder_0445', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24224, 'h5:cmp_user_manage_labor_audit_detail_btn', 'cmp:pro_worker_invite_recorder_0445', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (24225, 'h5:cmp_user_manage_worker_on_site_audit_btn', 'cmp:pro_team_leader_invite_recorder_0446', 0, 'NT_CMP_APP_GENERAL', '2024-08-28 10:53:36', '2024-08-28 10:53:36', 25923, null, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (718447, 'cms:pro_construction_contract_management', 'cms:pro_construction_contract_management', '合约管理', 'PAGE', '/netConstruction/construction/contract-manage', 'NT_CMS_WEB_GENERAL', '2024-10-29 15:07:38', '2024-12-03 14:55:23', 0, '杜才伟-18682489918', 'PC', 0, 'CMS_COMMON', '', '', '单位组织', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, 9000404098);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (718451, 'cms:pro_construction_contract_detail', 'cms:pro_construction_contract_detail', '合约详情', 'PAGE', '/netConstruction/construction/contract-manage/contract-detail', 'NT_CMS_WEB_GENERAL', '2024-10-29 15:07:38', '2024-12-03 14:55:23', 0, '杜才伟-18682489918', 'PC', 0, 'CMS_COMMON', '', '', '单位组织', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, 9000404098);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (718455, 'cms:pro_construction_contract_detail', 'cms:pro_construction_contract_detail_inventory_submit_audit', '合约详情-提交审批', 'COMPONENT', '', 'NT_CMS_WEB_GENERAL', '2024-10-29 15:07:38', '2024-12-03 14:55:25', 0, '杜才伟-18682489918', 'PC', 0, 'CMS_COMMON', '', '', '单位组织', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, 9000404098);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369205, 'h5:cmp_user_manage_worker_page', 'h5:cmp_user_manage_worker_jump_to_team_btn', '人员管理-施工人员-跳转班组', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:41', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369197, 'h5:cmp_user_manage_worker_page', 'h5:cmp_user_manage_worker_page', '人员管理-施工人员', 'PAGE', '__UNI__D9B0186#/pages/worker/index', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:40', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369202, 'h5:cmp_user_manage_worker_page', 'h5:cmp_user_manage_worker_labor_audit_btn', '人员管理-施工人员-劳务审核', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:41', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369218, 'h5:cmp_user_manage_labor_audit_page', 'h5:cmp_user_manage_labor_audit_page', '人员管理-劳务审核', 'PAGE', '__UNI__D9B0186#/pages/labour/verify/index', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:42', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369219, 'h5:cmp_user_manage_labor_audit_page', 'h5:cmp_user_manage_labor_audit_detail_btn', '人员管理-劳务审核-详情', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:42', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369203, 'h5:cmp_user_manage_worker_page', 'h5:cmp_user_manage_worker_on_site_audit_btn', '人员管理-施工人员-进场审核', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:41', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369216, 'h5:cmp_user_manage_on_site_audit_page', 'h5:cmp_user_manage_on_site_audit_page', '人员管理-进场审核', 'PAGE', '__UNI__D9B0186#/pages/labour/enterAudit/index', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:42', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:user_manage_D9B0186', '', '__UNI__D9B0186', '人员管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1749220, 3, 27, '9', 101437, 0, '2024-10-28 11:14:06', '2024-10-28 11:14:06', 0, 0, 1, 6, 'NT_CMP_APP_GENERAL');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1749218, 3, 27, '9', 101934, 0, '2024-10-28 11:14:06', '2024-10-28 11:14:06', 0, 0, 1, 4, 'NT_CMP_APP_GENERAL');
|
||||||
|
INSERT INTO saas_product_module_feature_relation (id, product_module_id, dict_code_id, dict_code, feature_id, is_delete, create_at, update_at, create_by, update_by, type, feature_type, terminal)
|
||||||
|
VALUES (1749219, 3, 27, '9', 101936, 0, '2024-10-28 11:14:06', '2024-10-28 11:14:06', 0, 0, 1, 4, 'NT_CMP_APP_GENERAL');
|
||||||
|
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101437, 'cmp:application_center_019', '应用', 6, 'NT_CMP_APP_GENERAL', 0, 636, '636,101437,', 0, '', 0, 'cmp:application_center_019', 2, 1, '', 0, '', 0, '', 0, 0, '{"moreIcon": "", "activeIcon": "", "terminalType": "", "terminalBizType": ""}', 1, 0, '2024-05-31 11:26:29', '2024-12-13 09:31:22', 86256, 9000400021, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101934, 'cmp:pro_team_schedule_rule_edit_0912', '编辑', 4, 'NT_CMP_APP_GENERAL', 5, 101932, '636,101437,101444,101508,101932,101934,', 0, '', 0, 'cmp:pro_team_schedule_rule_edit_0912', 1, 1, '', 0, '', 0, '', 0, 0, null, 1, 1, '2024-09-12 15:30:56', '2024-09-12 18:55:42', 9000399280, 9000399280, 0);
|
||||||
|
INSERT INTO saas_feature_resource (id, feature_code, feature_name, feature_type, terminal, component_type, parent_id, path, workspace_type, workspace_types, version, uni_code, display_order, status, icon, redirect_type, link_url, link_type, link_ext, app_item_id, sync_version, extra, auth_type, sub_auth_type, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (101936, 'cmp:pro_task_time_allocate_task_0912', '工时分配到任务', 4, 'NT_CMP_APP_GENERAL', 5, 101935, '636,101437,101444,101508,101935,101936,', 0, '', 0, 'cmp:pro_task_time_allocate_task_0912', 0, 1, '', 0, '', 0, '', 0, 0, null, 1, 1, '2024-09-12 18:55:43', '2024-09-12 18:55:43', 9000399280, 9000399280, 0);
|
||||||
|
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (25830, 'h5:cmp_attence_shift_list_page', 'cmp:pro_team_schedule_rule_edit_0912', 0, 'NT_CMP_APP_GENERAL', '2024-09-12 18:55:42', '2024-09-12 18:55:42', 9000399280, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (25831, 'h5:cmp_attence_shift_switch_btn', 'cmp:pro_team_schedule_rule_edit_0912', 0, 'NT_CMP_APP_GENERAL', '2024-09-12 18:55:42', '2024-09-12 18:55:42', 9000399280, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (25834, 'h5:cmp_allotted_time_page', 'cmp:pro_task_time_allocate_task_0912', 0, 'NT_CMP_APP_GENERAL', '2024-09-12 18:57:04', '2024-09-12 18:57:04', 9000399280, null, 0);
|
||||||
|
INSERT INTO saas_page_element_feature_resource_relation (id, page_element_code, feature_resource_uni_code, type, terminal, create_at, update_at, create_by, update_by, is_delete)
|
||||||
|
VALUES (25835, 'h5:cmp_allotted_time_detail_btn', 'cmp:pro_task_time_allocate_task_0912', 0, 'NT_CMP_APP_GENERAL', '2024-09-12 18:57:04', '2024-09-12 18:57:04', 9000399280, null, 0);
|
||||||
|
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369373, 'h5:cmp_attence_shift_list_page', 'h5:cmp_attence_shift_list_page', '排班管理-排班列表', 'PAGE', '__UNI__D5F1867#/', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:53', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:attence_shift_D5F1867', '', '__UNI__D5F1867', '考勤班次H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369374, 'h5:cmp_attence_shift_list_page', 'h5:cmp_attence_shift_switch_btn', '排班管理-启用/禁用班次', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:53', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:attence_shift_D5F1867', '', '__UNI__D5F1867', '考勤班次H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369351, 'h5:cmp_allotted_time_page', 'h5:cmp_allotted_time_page', '工时管理-分配工时', 'PAGE', '__UNI__26081705#/allotedTime', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:51', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:allotted-time_26081705', '', '__UNI__26081705', '工时管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
INSERT INTO saas_page_element (id, group_code, code, name, type, link_url, terminal, create_at, update_at, is_delete, create_name, app_type, version, item_code, link_ext, app_id, item_name, ext, create_by, update_by)
|
||||||
|
VALUES (369352, 'h5:cmp_allotted_time_page', 'h5:cmp_allotted_time_detail_btn', '工时管理-分配工时-工时详情', 'COMPONENT', '', 'NT_CMP_APP_GENERAL', '2024-08-29 09:18:51', '2024-11-28 16:09:41', 0, '', 'H5', 0, 'h5:allotted-time_26081705', '', '__UNI__26081705', '工时管理H5', '{"applications": [{"type": "IOS", "minVersion": 0}, {"type": "ANDROID", "minVersion": 0}]}', null, null);
|
||||||
|
|
||||||
|
|
||||||
|
#-->WorkspaceProductServiceImplTest.sql
|
||||||
Loading…
Reference in New Issue
Block a user