Merge branch 'master' into feature/REQ-2545

# Conflicts:
#	tyr-api/src/main/java/cn/axzo/tyr/client/model/req/IdentityAuthReq.java
#	tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/ListRoleUserRelationParam.java
#	tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java
#	tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java
This commit is contained in:
lilong 2024-07-12 16:33:20 +08:00
commit 5aa6b2dfdb
11 changed files with 102 additions and 10 deletions

View File

@ -2,9 +2,11 @@ package cn.axzo.tyr.client.feign;
import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiPageResult;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.roleuser.RoleUserUpdateReq;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserV2DTO;
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
import cn.axzo.tyr.client.model.roleuser.req.*; import cn.axzo.tyr.client.model.roleuser.req.*;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -71,6 +73,12 @@ public interface TyrSaasRoleUserApi {
@PostMapping("/api/saas-role-user/list") @PostMapping("/api/saas-role-user/list")
ApiResult<List<SaasRoleUserDTO>> roleUserList(@RequestBody @Valid RoleUserParam param); ApiResult<List<SaasRoleUserDTO>> roleUserList(@RequestBody @Valid RoleUserParam param);
/**
* 用户角色列表 限制500条
*/
@PostMapping("/api/saas-role-user/list/v2")
ApiResult<List<SaasRoleUserV2DTO>> roleUserListV2(@RequestBody @Valid ListRoleUserRelationParam param);
/** /**
* 批量查询超管, 只能批量获取单个工作台台下的超管业务系统需要根据返回的identityId和identityType查询identityProfile查询用户明细信息 * 批量查询超管, 只能批量获取单个工作台台下的超管业务系统需要根据返回的identityId和identityType查询identityProfile查询用户明细信息
*/ */
@ -120,4 +128,12 @@ public interface TyrSaasRoleUserApi {
*/ */
@PostMapping("/api/saas-role-user/get-user-feature-resource-ids") @PostMapping("/api/saas-role-user/get-user-feature-resource-ids")
ApiResult<GetUserFeatureResourceIdsResp> getUserFeatureResourceIds(@RequestBody @Valid GetUserFeatureResourceIdsReq req); ApiResult<GetUserFeatureResourceIdsResp> getUserFeatureResourceIds(@RequestBody @Valid GetUserFeatureResourceIdsReq req);
/**
* 根据id更新数据
* @param roleUserUpdateReqs 参数列表
* @return
*/
@PostMapping("/api/saas-role-user/batch-update-by-id")
ApiResult<Boolean> batchUpdateById(@RequestBody @Valid List<RoleUserUpdateReq> roleUserUpdateReqs);
} }

View File

@ -70,6 +70,11 @@ public class WorkspaceProductResp {
*/ */
private Integer maxWorkspaceCount; private Integer maxWorkspaceCount;
/**
* 版本升级序列(数字越小版本越低不能降级只能升级) <企业项目产品>
*/
private Integer version;
/** /**
* SKU列表 * SKU列表
*/ */

View File

@ -0,0 +1,28 @@
package cn.axzo.tyr.client.model.roleuser;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class RoleUserUpdateReq {
@NotNull(message = "id不能为空")
@Min(value = 0L)
private Long id;
@NotNull(message = "id不能为空")
@Min(value = 0L)
private Long identityId;
@NotNull(message = "id不能为空")
@Min(value = 0L)
private Long naturalPersonId;
}

View File

@ -15,6 +15,8 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
public class SaasRoleUserV2DTO { public class SaasRoleUserV2DTO {
private Long id;
/** /**
* 角色Id * 角色Id
*/ */

View File

@ -4,7 +4,6 @@ import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator; import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.tyr.client.common.enums.FeatureResourceType; import cn.axzo.tyr.client.common.enums.FeatureResourceType;
import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.req.FeatureIdPair;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -12,7 +11,6 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.util.List; import java.util.List;
import java.util.Set;
@SuperBuilder @SuperBuilder
@Data @Data
@ -23,6 +21,18 @@ public class ListRoleUserRelationParam {
@CriteriaField(field = "roleId", operator = Operator.IN) @CriteriaField(field = "roleId", operator = Operator.IN)
private List<Long> roleIds; private List<Long> roleIds;
@CriteriaField(field = "naturalPersonId", operator = Operator.IN)
private List<Long> personIds;
@CriteriaField(field = "ouId", operator = Operator.EQ)
private Long ouId;
/**
* 身份类型 1:工人 2:从业人员 3:班组长 4:运营人员 5:政务人员
*/
@CriteriaField(field = "identityType", operator = Operator.EQ)
private IdentityType identityType;
@CriteriaField(ignore = true) @CriteriaField(ignore = true)
private Boolean needUsers; private Boolean needUsers;
@ -38,12 +48,6 @@ public class ListRoleUserRelationParam {
@CriteriaField(field = "identityId", operator = Operator.EQ) @CriteriaField(field = "identityId", operator = Operator.EQ)
private Long identityId; private Long identityId;
/**
* 身份类型 1:工人 2:从业人员 3:班组长 4:运营人员 5:政务人员
*/
@CriteriaField(field = "identityType", operator = Operator.EQ)
private IdentityType identityType;
/** /**
* workspaceId和ouId配对查询 * workspaceId和ouId配对查询
* 例如((workspaceId = ## and ouId = ##) or (workspaceId = ## and ouId = ##)) * 例如((workspaceId = ## and ouId = ##) or (workspaceId = ## and ouId = ##))

View File

@ -6,9 +6,11 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi; import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.roleuser.RoleUserUpdateReq;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserV2DTO;
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
import cn.axzo.tyr.client.model.roleuser.req.*; import cn.axzo.tyr.client.model.roleuser.req.*;
import cn.axzo.tyr.server.model.PermissionCacheKey; import cn.axzo.tyr.server.model.PermissionCacheKey;
@ -88,6 +90,11 @@ public class RoleUserController implements TyrSaasRoleUserApi {
return ApiResult.ok(saasRoleUserRelationService.list(param)); return ApiResult.ok(saasRoleUserRelationService.list(param));
} }
@Override
public ApiResult<List<SaasRoleUserV2DTO>> roleUserListV2(@RequestBody @Valid ListRoleUserRelationParam param) {
return ApiResult.ok(saasRoleUserRelationService.listV2(param));
}
@Override @Override
public ApiResult<Void> createSuperAdminRole(CreateSuperAdminRoleParam param) { public ApiResult<Void> createSuperAdminRole(CreateSuperAdminRoleParam param) {
saasRoleUserService.createSuperAdminRole(param); saasRoleUserService.createSuperAdminRole(param);
@ -168,4 +175,9 @@ public class RoleUserController implements TyrSaasRoleUserApi {
public ApiResult<GetUserFeatureResourceIdsResp> getUserFeatureResourceIds(GetUserFeatureResourceIdsReq req) { public ApiResult<GetUserFeatureResourceIdsResp> getUserFeatureResourceIds(GetUserFeatureResourceIdsReq req) {
return ApiResult.ok(saasRoleUserService.getUserFeatureResourceIds(req)); return ApiResult.ok(saasRoleUserService.getUserFeatureResourceIds(req));
} }
@Override
public ApiResult<Boolean> batchUpdateById(List<RoleUserUpdateReq> roleUserUpdateReqs) {
return ApiResult.ok(saasRoleUserService.batchUpdateById(roleUserUpdateReqs));
}
} }

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.server.service; package cn.axzo.tyr.server.service;
import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.roleuser.RoleUserUpdateReq;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp;
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
@ -106,4 +107,11 @@ public interface SaasRoleUserService {
* @return * @return
*/ */
GetUserFeatureResourceIdsResp getUserFeatureResourceIds(GetUserFeatureResourceIdsReq req); GetUserFeatureResourceIdsResp getUserFeatureResourceIds(GetUserFeatureResourceIdsReq req);
/**
* 根据id更新saas_role_user_relation数据
* @param roleUserUpdateReqs 请求参数
* @return
*/
Boolean batchUpdateById(List<RoleUserUpdateReq> roleUserUpdateReqs);
} }

View File

@ -193,7 +193,7 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
} }
// 处理资源关联的权限 // 处理资源关联的权限
doFeatureResourceRole(baseResource.getId(), treeNode.getRoleCodes(), operatorId); // doFeatureResourceRole(baseResource.getId(), treeNode.getRoleCodes(), operatorId);
//递归子节点 //递归子节点
if (CollectionUtil.isNotEmpty(treeNode.getChildren())) { if (CollectionUtil.isNotEmpty(treeNode.getChildren())) {

View File

@ -266,7 +266,11 @@ public class ProductServiceImpl implements ProductService {
.build()).collect(Collectors.toList())); .build()).collect(Collectors.toList()));
} else { } else {
if (ProductModuleCategoryEnum.PRODUCT_VERSION.getCode().equals(k)) { if (ProductModuleCategoryEnum.PRODUCT_VERSION.getCode().equals(k)) {
resp.getProductVersions().addAll(v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList())); List<WorkspaceProductResp.Product> products = v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList());
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(products)) {
products.sort(Comparator.comparing(p -> Objects.isNull(p.getVersion()) ? 0 : p.getVersion()));
}
resp.getProductVersions().addAll(products);
} }
if (ProductModuleCategoryEnum.ADD_VALUE_SERVICE.getCode().equals(k)) { if (ProductModuleCategoryEnum.ADD_VALUE_SERVICE.getCode().equals(k)) {
resp.getAddValueServices().addAll(v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList())); resp.getAddValueServices().addAll(v.stream().map(this::buildRespProduct).filter(Objects::nonNull).collect(Collectors.toList()));
@ -444,6 +448,7 @@ public class ProductServiceImpl implements ProductService {
.productName(e.getProductName()) .productName(e.getProductName())
.maxPersonCount(e.getMaxPersonCount()) .maxPersonCount(e.getMaxPersonCount())
.maxWorkspaceCount(e.getMaxWorkspaceCount()) .maxWorkspaceCount(e.getMaxWorkspaceCount())
.version(e.getVersion())
.skus(CollectionUtil.isNotEmpty(e.getSkus()) ? e.getSkus().stream().map(s -> WorkspaceProductResp.Sku .skus(CollectionUtil.isNotEmpty(e.getSkus()) ? e.getSkus().stream().map(s -> WorkspaceProductResp.Sku
.builder() .builder()
.skuName(s.getSkuName()) .skuName(s.getSkuName())

View File

@ -1,5 +1,6 @@
package cn.axzo.tyr.server.service.impl; package cn.axzo.tyr.server.service.impl;
import cn.axzo.basics.common.BeanMapper;
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.basics.common.exception.ServiceException;
import cn.axzo.basics.common.util.AssertUtil; import cn.axzo.basics.common.util.AssertUtil;
@ -11,6 +12,7 @@ import cn.axzo.tyr.client.model.BaseWorkspaceModel;
import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum; import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum;
import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.enums.WorkerLeaderRoleEnum; import cn.axzo.tyr.client.model.enums.WorkerLeaderRoleEnum;
import cn.axzo.tyr.client.model.roleuser.RoleUserUpdateReq;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserAutoOwnRoleResp;
import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp; import cn.axzo.tyr.client.model.roleuser.dto.GetUserFeatureResourceIdsResp;
import cn.axzo.tyr.client.model.roleuser.dto.IdentityInfo; import cn.axzo.tyr.client.model.roleuser.dto.IdentityInfo;
@ -638,4 +640,13 @@ public class RoleUserService implements SaasRoleUserService {
} }
return existsPgroupPermissionRelations.stream().filter(e -> !featureIds.contains(e.getFeatureId())).map(SaasPgroupPermissionRelation::getId).collect(Collectors.toSet()); return existsPgroupPermissionRelations.stream().filter(e -> !featureIds.contains(e.getFeatureId())).map(SaasPgroupPermissionRelation::getId).collect(Collectors.toSet());
} }
@Override
public Boolean batchUpdateById(List<RoleUserUpdateReq> roleUserUpdateReqs) {
if (CollectionUtils.isEmpty(roleUserUpdateReqs)) {
return false;
}
List<SaasRoleUserRelation> saasRoleUserDTOList = BeanMapper.copyList(roleUserUpdateReqs, SaasRoleUserRelation.class);
return roleUserRelationDao.updateBatchById(saasRoleUserDTOList);
}
} }

View File

@ -212,6 +212,7 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl<SaasRoleUserRel
.build(); .build();
return SaasRoleUserV2DTO.builder() return SaasRoleUserV2DTO.builder()
.id(saasRoleUserRelation.getId())
.roleId(saasRoleUserRelation.getRoleId()) .roleId(saasRoleUserRelation.getRoleId())
.saasRoleUser(saasRoleUser) .saasRoleUser(saasRoleUser)
.saasRole(saasRoles.get(saasRoleUserRelation.getRoleId())) .saasRole(saasRoles.get(saasRoleUserRelation.getRoleId()))