REQ-2318: 多端支持
This commit is contained in:
parent
68ac34cc2b
commit
0ac817d9b4
@ -2,9 +2,11 @@ package cn.axzo.msg.center.message.service.todo.manage.event;
|
||||
|
||||
import cn.axzo.msg.center.domain.entity.Todo;
|
||||
import cn.axzo.msg.center.service.pending.request.TodoHandoverRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.Getter;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -29,4 +31,14 @@ public class HandoverEvent extends ApplicationEvent {
|
||||
return srcTodos.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
HashMap<String, Object> fields = new HashMap<>();
|
||||
fields.put("request", request);
|
||||
fields.put("srcTodos", srcTodos);
|
||||
fields.put("destTodos", destTodos);
|
||||
fields.put("todoCount", todoCount());
|
||||
return JSON.toJSONString(fields);
|
||||
}
|
||||
|
||||
}
|
||||
@ -37,10 +37,10 @@ class HandoverImSender implements ApplicationListener<HandoverEvent> {
|
||||
private void sendMessage(@NotNull HandoverEvent event) {
|
||||
log.info("prepare - send handover im message. event={}", event);
|
||||
TodoHandoverRequest handoverRequest = event.getRequest();
|
||||
MessageSendReqV3 eventMappingRequest = new MessageSendReqV3();
|
||||
eventMappingRequest.setBizEventMappingCode(cfg.getTodoHandoverImBizMappingCode());
|
||||
eventMappingRequest.setBizCode(String.format(
|
||||
"handover_fromPerson:%s_fromOu:%s_toPerson:%s_toOu:%s_at:%s",
|
||||
MessageSendReqV3 v3Request = new MessageSendReqV3();
|
||||
v3Request.setBizEventMappingCode(cfg.getTodoHandoverImBizMappingCode());
|
||||
v3Request.setBizCode(String.format(
|
||||
"todoHandover_fromPerson:%s_fromOu:%s_toPerson:%s_toOu:%s_at:%s",
|
||||
handoverRequest.getFromPersonId(), handoverRequest.getFromOuId(),
|
||||
handoverRequest.getToPersonId(), handoverRequest.getToOuId(),
|
||||
// 避免多次交接导致重复
|
||||
@ -48,22 +48,21 @@ class HandoverImSender implements ApplicationListener<HandoverEvent> {
|
||||
JSONObject bizExtParams = new JSONObject();
|
||||
bizExtParams.put("fromPersonName", handoverRequest.determineFromPersonName());
|
||||
bizExtParams.put("handoverTodoCount", event.todoCount());
|
||||
eventMappingRequest.setBizExtParams(bizExtParams);
|
||||
v3Request.setBizExtParams(bizExtParams);
|
||||
// sender info
|
||||
eventMappingRequest.setSender(new PersonV3DTO(
|
||||
v3Request.setSender(new PersonV3DTO(
|
||||
handoverRequest.getFromPersonId(), handoverRequest.determineFromPersonName()));
|
||||
eventMappingRequest.setSenderOuId(handoverRequest.getFromOuId());
|
||||
v3Request.setSenderOuId(handoverRequest.getFromOuId());
|
||||
// receiver info
|
||||
eventMappingRequest.setReceivers(Collections.singletonList(new PersonV3DTO(
|
||||
v3Request.setReceivers(Collections.singletonList(new PersonV3DTO(
|
||||
handoverRequest.getToPersonId(), handoverRequest.determineToPersonName())));
|
||||
eventMappingRequest.setReceiversOuId(handoverRequest.getToOuId());
|
||||
eventMappingRequest.setReceiversOrgType(OrganizationTypeEnum.UNKNOWN);
|
||||
v3Request.setReceiversOuId(handoverRequest.getToOuId());
|
||||
v3Request.setReceiversOrgType(OrganizationTypeEnum.UNKNOWN);
|
||||
// let's send
|
||||
log.info("start - send handover im message. event={}, eventMappingRequest={}",
|
||||
event, eventMappingRequest);
|
||||
MessageSendRespV3 eventMappingResp = messageServiceV3.send(eventMappingRequest);
|
||||
log.info("finish - send handover im message. event={}, eventMappingRequest={}, eventMappingResp={}",
|
||||
event, eventMappingRequest, eventMappingResp);
|
||||
log.info("start - send handover im message. event={}, v3Request={}", event, v3Request);
|
||||
MessageSendRespV3 v3Resp = messageServiceV3.send(v3Request);
|
||||
log.info("finish - send handover im message. event={}, v3Request={}, v3Response={}",
|
||||
event, v3Request, v3Resp);
|
||||
}
|
||||
|
||||
}
|
||||
@ -42,8 +42,12 @@ public enum AppTerminalTypeEnum {
|
||||
|
||||
private final String desc;
|
||||
|
||||
public boolean isManageTerminal() {
|
||||
return this == B_ENTERPRISE_APP || this == OMS_WEB_PC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 管理端终端类型列表
|
||||
* @return 管理终端类型列表
|
||||
*/
|
||||
public static List<AppTerminalTypeEnum> manageTerminals() {
|
||||
return Arrays.asList(B_ENTERPRISE_APP, OMS_WEB_PC);
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package cn.axzo.msg.center.message.service.todo.manage;
|
||||
|
||||
import cn.axzo.msg.center.MsgCenterApplication;
|
||||
import cn.axzo.msg.center.service.pending.request.TodoHandoverRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.annotation.Commit;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@SpringBootTest(classes = MsgCenterApplication.class)
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
class TodoManagerTest {
|
||||
|
||||
private final TodoManager todoManager;
|
||||
|
||||
@Test @Commit
|
||||
void foo() {
|
||||
TodoHandoverRequest request = new TodoHandoverRequest();
|
||||
request.setFromPersonId(16068L);
|
||||
request.setFromOuId(5140L);
|
||||
request.setFromPersonName("假杨林");
|
||||
request.setToPersonId(9000394L);
|
||||
request.setToOuId(5140L);
|
||||
todoManager.handover(request);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user