feat:[REQ-3282] 暂时提交
This commit is contained in:
parent
3af6b5b855
commit
6bcf30a339
@ -0,0 +1,10 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.common;
|
||||
|
||||
/**
|
||||
* 流程处理者
|
||||
* @param <R>
|
||||
* @param <T>
|
||||
*/
|
||||
public abstract class BaseProcessor<R, T> {
|
||||
public abstract R process(R r, T t);
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.controller;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
|
||||
import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
|
||||
import cn.axzo.orgmanax.server.node.convert.NodeApiConvert;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.service.IOrgNodeUserAppService;
|
||||
import cn.axzo.orgmanax.server.nodeuser.temp.INodeUserGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 节点用户相关接口
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("node-user")
|
||||
@RequiredArgsConstructor
|
||||
public class NodeUserController {
|
||||
|
||||
private final IOrgNodeUserAppService nodeUserAppService;
|
||||
|
||||
/**
|
||||
* 新增节点用户
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("add")
|
||||
public ApiResult<AddOrgNodeUserResponseDTO> addOrgNodeUser(@RequestBody @Valid AddOrgNodeUserRequestDTO request) {
|
||||
return ApiResult.ok(nodeUserAppService.addOrgNodeUser(request));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.controller.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AddOrgNodeUserRequestDTO {
|
||||
|
||||
|
||||
/**
|
||||
* 业务类型 TEAM班组业务 GROUP小组业务
|
||||
*/
|
||||
private String bizCode;
|
||||
|
||||
/**
|
||||
* 所属节点
|
||||
*/
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.controller.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AddOrgNodeUserResponseDTO {
|
||||
|
||||
/**
|
||||
* 所属节点
|
||||
*/
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 节点用户ID
|
||||
*/
|
||||
private Long orgNodeUserId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service;
|
||||
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
|
||||
public interface IOrgNodeUserAppService {
|
||||
|
||||
/**
|
||||
* 新增节点用户
|
||||
* @param request
|
||||
*/
|
||||
AddOrgNodeUserResponseDTO addOrgNodeUser(AddOrgNodeUserRequestDTO request);
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
|
||||
import cn.axzo.orgmanax.server.nodeuser.common.BaseProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser.AddNodeUserBaseCheckProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser.AddNodeUserProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser.SendNodeUserAddedMsgProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.temp.INodeUserGateway;
|
||||
import cn.axzo.orgmanax.server.nodeuser.temp.IOrgNodeGateway;
|
||||
import cn.axzo.orgmanax.server.nodeuser.temp.OrgNodeUser;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 节点用户相关接口
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class OrgNodeUserAppServiceImpl implements IOrgNodeUserAppService {
|
||||
|
||||
private INodeUserGateway nodeUserGateway;
|
||||
private IOrgNodeGateway orgNodeUserGateway;
|
||||
|
||||
@Override
|
||||
public AddOrgNodeUserResponseDTO addOrgNodeUser(AddOrgNodeUserRequestDTO request) {
|
||||
|
||||
// 1. 获取上下文
|
||||
OrganizationalNode orgNode = orgNodeUserGateway.getById(request.getNodeId());
|
||||
Assert.isTrue(orgNode != null, "部门节点不存在");
|
||||
OrgNodeUser orgNodeUser = nodeUserGateway.getByNodeIdAndUserId(request.getNodeId(), request.getPersonId());
|
||||
Assert.isTrue(orgNodeUser != null, "重新加入");
|
||||
|
||||
// 2. 流程编排处理
|
||||
List<BaseProcessor<AddOrgNodeUserResponseDTO, AddOrgNodeUserRequestDTO>> processors = Arrays.asList(
|
||||
// 基础校验
|
||||
new AddNodeUserBaseCheckProcessor(),
|
||||
// 添加部门
|
||||
new AddNodeUserProcessor(),
|
||||
// 发送消息
|
||||
new SendNodeUserAddedMsgProcessor()
|
||||
);
|
||||
AddOrgNodeUserResponseDTO result = new AddOrgNodeUserResponseDTO();
|
||||
processors.forEach(p -> p.process(result, request));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser;
|
||||
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
|
||||
public class AddNodeUserBaseCheckProcessor extends BaseAddNodeUserProcessor {
|
||||
@Override
|
||||
public AddOrgNodeUserResponseDTO process(AddOrgNodeUserResponseDTO addOrgNodeUserResponseDTO, AddOrgNodeUserRequestDTO addOrgNodeUserRequestDTO) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser;
|
||||
|
||||
import cn.axzo.orgmanax.server.nodeuser.common.BaseProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
|
||||
public class AddNodeUserProcessor extends BaseProcessor<AddOrgNodeUserResponseDTO, AddOrgNodeUserRequestDTO> {
|
||||
|
||||
@Override
|
||||
public AddOrgNodeUserResponseDTO process(AddOrgNodeUserResponseDTO result, AddOrgNodeUserRequestDTO addOrgNodeUserRequestDTO) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser;
|
||||
|
||||
import cn.axzo.orgmanax.server.nodeuser.common.BaseProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
|
||||
public abstract class BaseAddNodeUserProcessor extends BaseProcessor<AddOrgNodeUserResponseDTO, AddOrgNodeUserRequestDTO> {
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.service.processor.addnodeuser;
|
||||
|
||||
import cn.axzo.orgmanax.server.nodeuser.common.BaseProcessor;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserRequestDTO;
|
||||
import cn.axzo.orgmanax.server.nodeuser.controller.dto.AddOrgNodeUserResponseDTO;
|
||||
|
||||
public class SendNodeUserAddedMsgProcessor extends BaseProcessor<AddOrgNodeUserResponseDTO, AddOrgNodeUserRequestDTO> {
|
||||
|
||||
|
||||
@Override
|
||||
public AddOrgNodeUserResponseDTO process(AddOrgNodeUserResponseDTO result, AddOrgNodeUserRequestDTO addOrgNodeUserRequestDTO) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.temp;
|
||||
|
||||
public interface INodeUserGateway {
|
||||
OrgNodeUser getByNodeIdAndUserId(Long nodeId, Long personId);
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.temp;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
|
||||
|
||||
public interface IOrgNodeGateway {
|
||||
|
||||
OrganizationalNode getById(Long nodeId);
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.temp;
|
||||
|
||||
public class OrgNode {
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
package cn.axzo.orgmanax.server.nodeuser.temp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OrgNodeUser {
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user