REQ-2318: 多端支持

This commit is contained in:
yanglin 2024-05-22 14:45:16 +08:00
parent 68ac34cc2b
commit 0ac817d9b4
4 changed files with 62 additions and 16 deletions

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}
}