REQ-2752-添加管理员操作相关接口
This commit is contained in:
parent
42792af2ff
commit
aaa00ee566
@ -1,9 +1,12 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
|
||||
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -11,15 +14,28 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@FeignClient(name = "workflow-engine", url = "${axzo.service.workflow-engine:http://workflow-engine:8080}", configuration = CommonFeignConfiguration.class)
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
@WorkflowEngineFeignClient
|
||||
@Manageable
|
||||
public interface ProcessAdminApi {
|
||||
|
||||
/**
|
||||
* 查询管理员
|
||||
* @param dto 管理员数据
|
||||
* @return 管理员id
|
||||
*/
|
||||
@PostMapping("/api/process/admin/query")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<ProcessAdminVo>> queryProcessAdmins(@RequestBody ProcessAdminQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 添加管理员
|
||||
* @param dto 管理员数据
|
||||
* @return 管理员id
|
||||
*/
|
||||
@PostMapping("/api/process/admin/create")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Long> createProcessAdmin(@RequestBody ProcessAdminCreateDTO dto);
|
||||
|
||||
/**
|
||||
@ -27,8 +43,9 @@ public interface ProcessAdminApi {
|
||||
* @param dtos
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/admin/create")
|
||||
CommonResponse<Void> createProcessAdminBatch(@RequestBody List<ProcessAdminCreateDTO> dtos);
|
||||
@PostMapping("/api/process/admin/batch/create")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Void> batchCreateProcessAdmin(@RequestBody List<ProcessAdminCreateDTO> dtos);
|
||||
|
||||
/**
|
||||
* 删除管理员
|
||||
@ -36,6 +53,16 @@ public interface ProcessAdminApi {
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/api/process/admin/delete")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Void> deleteCommonProcessAdmin(@RequestParam Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 删除管理员
|
||||
* @param ids 管理员配置id列表
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/api/process/admin/batch/delete")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Void> batchDeleteProcessAdmin(@RequestParam List<Long> ids);
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.axzo.workflow</groupId>
|
||||
<artifactId>workflow-engine-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.basics</groupId>
|
||||
|
||||
@ -21,17 +21,17 @@ public class ExtAxProcessAdmin extends BaseEntity<ExtAxProcessAdmin> {
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
private Integer personId;
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Integer organizationalUnitId;
|
||||
private Long organizationalUnitId;
|
||||
|
||||
/**
|
||||
* 工作台ID
|
||||
*/
|
||||
private Integer workspaceId;
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 工作台类型,1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.workflow.admin.service;
|
||||
|
||||
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -13,6 +14,13 @@ public interface ExtAxProcessAdminService {
|
||||
*/
|
||||
Long insert(ExtAxProcessAdmin processAdmin);
|
||||
|
||||
/**
|
||||
* 根据条件查询
|
||||
* @param queryDTO
|
||||
* @return
|
||||
*/
|
||||
List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param processAdmins 配置管理员列表
|
||||
@ -25,12 +33,6 @@ public interface ExtAxProcessAdminService {
|
||||
*/
|
||||
void delete(ExtAxProcessAdmin processAdmin);
|
||||
|
||||
/**
|
||||
* 删除普通管理员管理员,如果删除数据为超级管理员,会抛出异常
|
||||
* @param processAdmin 管理员实体
|
||||
*/
|
||||
void deleteCommonAdmins(ExtAxProcessAdmin processAdmin);
|
||||
|
||||
/**
|
||||
* 批量删除管理员
|
||||
* @param ids 配置表id列表
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
package cn.axzo.workflow.admin.service.impl;
|
||||
|
||||
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
|
||||
import cn.axzo.framework.domain.ServiceException;
|
||||
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
|
||||
import cn.axzo.workflow.admin.repository.mapper.ExtAxProcessAdminMapper;
|
||||
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import cn.axzo.workflow.common.enums.AdminTypeEnum;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
|
||||
@ -28,6 +28,20 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
|
||||
return processAdmin.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO) {
|
||||
if (queryDTO == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
LambdaQueryWrapper<ExtAxProcessAdmin> queryWrapper = new LambdaQueryWrapper<ExtAxProcessAdmin>()
|
||||
.in(!CollectionUtils.isEmpty(queryDTO.getProcessAdminIds()), ExtAxProcessAdmin::getId, queryDTO.getProcessAdminIds())
|
||||
.eq(Objects.nonNull(queryDTO.getWorkspaceId()), ExtAxProcessAdmin::getWorkspaceId, queryDTO.getWorkspaceId())
|
||||
.eq(Objects.nonNull(queryDTO.getOrganizationalUnitId()), ExtAxProcessAdmin::getOrganizationalUnitId, queryDTO.getOrganizationalUnitId())
|
||||
.eq(!CollectionUtils.isEmpty(queryDTO.getPersonIds()), ExtAxProcessAdmin::getPersonId, queryDTO.getPersonIds())
|
||||
.eq(Objects.nonNull(queryDTO.getDataSource()), ExtAxProcessAdmin::getDataSource, queryDTO.getDataSource());
|
||||
return extAxProcessAdminMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
public void batchInsert(List<ExtAxProcessAdmin> processAdmins) {
|
||||
if (CollectionUtils.isEmpty(processAdmins)) {
|
||||
return;
|
||||
@ -43,23 +57,6 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
|
||||
extAxProcessAdminMapper.delete(buildQueryWrapper(processAdmin));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCommonAdmins(ExtAxProcessAdmin processAdmin) {
|
||||
List<ExtAxProcessAdmin> extAxProcessAdmins = extAxProcessAdminMapper.selectList(buildQueryWrapper(processAdmin));
|
||||
if (CollectionUtils.isEmpty(extAxProcessAdmins)) {
|
||||
return;
|
||||
}
|
||||
validateDeleteCommonAdmins(extAxProcessAdmins);
|
||||
List<Long> adminIds = extAxProcessAdmins.stream()
|
||||
.map(BaseEntity::getId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(adminIds)) {
|
||||
return;
|
||||
}
|
||||
extAxProcessAdminMapper.deleteBatchIds(adminIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCommonAdminsByIds(List<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
|
||||
@ -62,4 +62,16 @@ public class ProcessAdminCreateDTO {
|
||||
*/
|
||||
@ApiModelProperty(value = "数据来源, system-系统录入, user-用户手动录入")
|
||||
private AdminDataSource dataSource;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@ApiModelProperty(value = "创建者")
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
@ApiModelProperty(value = "更新者")
|
||||
private Long updateBy;
|
||||
}
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
package cn.axzo.workflow.common.model.request.admin;
|
||||
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 查询管理员模型
|
||||
*/
|
||||
@ApiModel("查询管理员模型")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProcessAdminQueryDTO {
|
||||
|
||||
/**
|
||||
* 流程管理员配置id列表
|
||||
*/
|
||||
@ApiModelProperty(value = "流程管理员配置id列表")
|
||||
private List<Long> processAdminIds;
|
||||
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
@ApiModelProperty(value = "自然人id列表")
|
||||
private List<Long> personIds;
|
||||
|
||||
/**
|
||||
* 工作台ID
|
||||
*/
|
||||
@ApiModelProperty(value = "工作台id")
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
@ApiModelProperty(value = "单位id")
|
||||
private Long organizationalUnitId;
|
||||
|
||||
/**
|
||||
* 数据来源, system-系统录入, user-用户手动录入
|
||||
*/
|
||||
@ApiModelProperty(value = "数据来源")
|
||||
private AdminDataSource dataSource;
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package cn.axzo.workflow.common.model.response.admin;
|
||||
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import cn.axzo.workflow.common.enums.AdminRoleType;
|
||||
import cn.axzo.workflow.common.enums.AdminTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.WorkspaceType;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ProcessAdminVo {
|
||||
|
||||
/**
|
||||
* 管理员配置id
|
||||
*/
|
||||
@ApiModelProperty("管理员配置id")
|
||||
private Long processAdminId;
|
||||
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
@ApiModelProperty("自然人id")
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
@ApiModelProperty("单位id")
|
||||
private Long organizationalUnitId;
|
||||
|
||||
/**
|
||||
* 工作台ID
|
||||
*/
|
||||
@ApiModelProperty("工作台ID")
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 工作台类型,1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举
|
||||
*/
|
||||
@ApiModelProperty("工作台ID")
|
||||
private WorkspaceType workspaceType;
|
||||
|
||||
/**
|
||||
* 管理员类型, super_admin-超级管理员, common_admin-普通管理员
|
||||
*/
|
||||
@ApiModelProperty("管理员类型")
|
||||
private AdminTypeEnum adminType;
|
||||
|
||||
/**
|
||||
* 角色类型, organization_admin-单位超管, organization_worksapce_admin-项目内单位负责人, workspace_admin-项目超管,other-其他用户
|
||||
*/
|
||||
@ApiModelProperty("角色类型")
|
||||
private AdminRoleType roleType;
|
||||
|
||||
/**
|
||||
* 数据来源, system-系统录入, user-用户手动录入
|
||||
*/
|
||||
@ApiModelProperty("数据来源")
|
||||
private AdminDataSource dataSource;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@ApiModelProperty("创建者")
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
@ApiModelProperty("更新者")
|
||||
private Long updateBy;
|
||||
}
|
||||
@ -11,7 +11,7 @@ import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
|
||||
@MapperScan({"cn.axzo.workflow.core.**.mapper"})
|
||||
@MapperScan({"cn.axzo.workflow.core.**.mapper", "cn.axzo.workflow.admin.**.mapper"})
|
||||
@ComponentScan({"cn.axzo.workflow"})
|
||||
@EnableFeignClients("cn.axzo.oss")
|
||||
@SpringBootApplication(exclude = RabbitAutoConfiguration.class)
|
||||
|
||||
@ -4,10 +4,13 @@ import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
|
||||
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
|
||||
import cn.axzo.workflow.client.feign.manage.ProcessAdminApi;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
|
||||
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
|
||||
import cn.axzo.workflow.server.common.annotation.ErrorReporter;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 流程管理员控制器
|
||||
@ -29,6 +33,23 @@ public class ProcessAdminController implements ProcessAdminApi {
|
||||
@Resource
|
||||
private ExtAxProcessAdminService extAxProcessAdminService;
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<ProcessAdminVo>> queryProcessAdmins(ProcessAdminQueryDTO dto) {
|
||||
List<ExtAxProcessAdmin> extAxProcessAdmins = extAxProcessAdminService.query(dto);
|
||||
if (CollectionUtils.isEmpty(extAxProcessAdmins)) {
|
||||
return CommonResponse.success();
|
||||
}
|
||||
List<ProcessAdminVo> adminVos = extAxProcessAdmins.stream()
|
||||
.map(ad -> {
|
||||
ProcessAdminVo vo = new ProcessAdminVo();
|
||||
vo.setProcessAdminId(ad.getId());
|
||||
BeanUtils.copyProperties(ad, vo);
|
||||
return vo;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
return CommonResponse.success(adminVos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Long> createProcessAdmin(ProcessAdminCreateDTO dto) {
|
||||
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
|
||||
@ -38,8 +59,19 @@ public class ProcessAdminController implements ProcessAdminApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Void> createProcessAdminBatch(List<ProcessAdminCreateDTO> dtos) {
|
||||
return null;
|
||||
public CommonResponse<Void> batchCreateProcessAdmin(List<ProcessAdminCreateDTO> dtos) {
|
||||
if (CollectionUtils.isEmpty(dtos)) {
|
||||
return CommonResponse.success();
|
||||
}
|
||||
List<ExtAxProcessAdmin> extAxProcessAdmins = dtos.stream()
|
||||
.map(d -> {
|
||||
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
|
||||
BeanUtils.copyProperties(d, processAdmin);
|
||||
return processAdmin;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
extAxProcessAdminService.batchInsert(extAxProcessAdmins);
|
||||
return CommonResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -47,4 +79,13 @@ public class ProcessAdminController implements ProcessAdminApi {
|
||||
extAxProcessAdminService.deleteCommonAdminsByIds(Collections.singletonList(id));
|
||||
return CommonResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Void> batchDeleteProcessAdmin(List<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return CommonResponse.success();
|
||||
}
|
||||
extAxProcessAdminService.deleteCommonAdminsByIds(ids);
|
||||
return CommonResponse.success();
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user