Merge branch 'feature/REQ-3488-syl' into 'feature/REQ-3488'

feat(REQ-3488): 单位隐私相关的req、dto迁移

See merge request universal/infrastructure/backend/orgmanax!89
This commit is contained in:
宋远伦 2025-01-02 06:14:58 +00:00
commit 69dae02844
7 changed files with 343 additions and 0 deletions

View File

@ -0,0 +1,41 @@
package cn.axzo.orgmanax.api.unit.feign;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.unit.privacy.req.PageOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.req.SaveOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.req.UpdateOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.resp.OrgUnitPrivacySettingsResp;
import javax.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 单位隐私设置API
* @author syl
* @date 2024/12/16
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface OrgUnitPrivacySettingApi {
/**
* 查询单位相关的隐私设置
*/
@PostMapping(value = "/api/unit/privacy-settings/page")
ApiResult<PageResp<OrgUnitPrivacySettingsResp>> page(@RequestBody @Valid PageOrgUnitPrivacySettingReq param);
/**
* 新增隐私设置数据
*/
@PostMapping(value = "/api/unit/privacy-settings/save")
ApiResult<String> save(@RequestBody @Valid SaveOrgUnitPrivacySettingReq param);
/**
* 新增隐私设置数据
*/
@PostMapping(value = "/api/unit/privacy-settings/update")
ApiResult<Boolean> update(@RequestBody @Valid UpdateOrgUnitPrivacySettingReq update);
}

View File

@ -0,0 +1,76 @@
package cn.axzo.orgmanax.dto.unit.privacy.dto;
import cn.axzo.orgmanax.dto.unit.enums.PrivacySettingsEntityTypeEnum;
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.StringUtils;
/**
* @author luofu
* @date 2024/1/31
* @version 1.0
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUnitPrivacyDTO implements Serializable {
private static final long serialVersionUID = 8023003041302443795L;
/**
* 隐私实体id
*/
private String entityId;
/**
* 隐私实体类型
*/
private PrivacySettingsEntityTypeEnum entityType;
/**
* 身份id,人员选择器回显专用
*/
private String identityId;
public String fetchEntityId() {
if (PrivacySettingsEntityTypeEnum.PERSON.equals(this.entityType)
&& StringUtils.isNotBlank(this.identityId)) {
return this.entityId + ENTITY_ID_SPLITER + this.identityId;
}
return entityId;
}
public static OrgUnitPrivacyDTO build(String entityId, PrivacySettingsEntityTypeEnum entityType) {
String[] strArray = entityId.split(ENTITY_ID_SPLITER);
entityId = strArray[0];
String identityId = StringUtils.EMPTY;
if (strArray.length > 1) {
identityId = strArray[1];
}
return OrgUnitPrivacyDTO.builder()
.entityId(entityId)
.identityId(identityId)
.entityType(entityType)
.build();
}
public static Long parseEntityId(String entityId, PrivacySettingsEntityTypeEnum entityType) {
if (StringUtils.isBlank(entityId)) {
return null;
}
if (PrivacySettingsEntityTypeEnum.PERSON.equals(entityType)) {
return Long.parseLong(entityId.split(ENTITY_ID_SPLITER)[0]);
}
return Long.parseLong(entityId);
}
private static final String ENTITY_ID_SPLITER = ":";
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,32 @@
package cn.axzo.orgmanax.dto.unit.privacy.req;
import cn.axzo.foundation.page.PageReqV2;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author syl
* @date 2024/12/16
*/
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageOrgUnitPrivacySettingReq extends PageReqV2 {
/**
* ouid 列表
*/
private List<Long> ouIds;
/**
* 是否需要隐私实体
*/
private Boolean needPrivacyEntity;
}

View File

@ -0,0 +1,54 @@
package cn.axzo.orgmanax.dto.unit.privacy.req;
import cn.axzo.orgmanax.dto.unit.enums.PrivacySettingsTypeEnum;
import cn.axzo.orgmanax.dto.unit.privacy.dto.OrgUnitPrivacyDTO;
import com.alibaba.fastjson.JSON;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author syl
* @date 2024/12/16
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class SaveOrgUnitPrivacySettingReq {
/**
* 单位id
*/
@NotNull(message = "ouId is required")
private Long ouId;
/**
* 隐私设置方式
*/
@NotNull(message = "type is required")
private PrivacySettingsTypeEnum type;
/**
* 隐私生效场景的工作台id集合
*/
@NotEmpty(message = "workspaceIds is required")
private List<Long> workspaceIds;
/**
* 操作人的自然人id
*/
@NotNull(message = "operatorId is required")
private Long operatorId;
/**
* 隐私实体列表
*/
@NotEmpty(message = "privacyEntities is required")
private List<OrgUnitPrivacyDTO> privacyEntities;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,51 @@
package cn.axzo.orgmanax.dto.unit.privacy.req;
import cn.axzo.orgmanax.dto.unit.enums.PrivacySettingsTypeEnum;
import cn.axzo.orgmanax.dto.unit.privacy.dto.OrgUnitPrivacyDTO;
import com.alibaba.fastjson.JSON;
import java.util.List;
import java.util.Set;
import javax.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author luofu
* @date 2024/1/11
* @version 1.0
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class UpdateOrgUnitPrivacySettingReq {
/**
* 隐私设置实例id
*/
@NotBlank(message = "instanceId is required")
private String instanceId;
/**
* 隐私设置方式
*/
private PrivacySettingsTypeEnum type;
/**
* 隐私生效场景的工作台id集合
*/
private Set<Long> workspaceIds;
/**
* 操作人的自然人id
*/
private Long operatorId;
/**
* 隐私实体列表
*/
private List<OrgUnitPrivacyDTO> privacyEntities;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,52 @@
package cn.axzo.orgmanax.dto.unit.privacy.resp;
import com.alibaba.fastjson.JSON;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author luofu
* @version 1.0
* @date 2024/1/18
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUnitPrivacySettingsResp {
/**
* 隐私设置实例id
*/
private String instanceId;
/**
* 单位id
*/
private Long ouId;
/**
* 隐私设置方式
* HIDE_PERSON_ENTIRE: 人员不可见
* HIDE_PERSON_DETAIL: 人员详情不可查看
*/
private String type;
/**
* 隐私生效的工作台id集合
*/
private List<Long> workspaceIds;
/**
* 自然人id列表
*/
private List<Long> personIds;
/**
* 部门id列表
*/
private List<Long> departmentIds;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,37 @@
package cn.axzo.orgmanax.server.unit.controller;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.api.unit.feign.OrgUnitPrivacySettingApi;
import cn.axzo.orgmanax.dto.unit.privacy.req.PageOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.req.SaveOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.req.UpdateOrgUnitPrivacySettingReq;
import cn.axzo.orgmanax.dto.unit.privacy.resp.OrgUnitPrivacySettingsResp;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author syl
* @date 2025/1/2
*/
@RestController
@RequestMapping
@RequiredArgsConstructor
public class UnitPrivacySettingController implements OrgUnitPrivacySettingApi {
@Override
public ApiResult<PageResp<OrgUnitPrivacySettingsResp>> page(PageOrgUnitPrivacySettingReq param) {
return null;
}
@Override
public ApiResult<String> save(SaveOrgUnitPrivacySettingReq param) {
return null;
}
@Override
public ApiResult<Boolean> update(UpdateOrgUnitPrivacySettingReq update) {
return null;
}
}