REQ-2497: 待办变更通知

This commit is contained in:
yanglin 2024-06-11 17:10:05 +08:00
parent 18a2f1e87d
commit d1509a7ccc
2 changed files with 23 additions and 2 deletions

View File

@ -1,10 +1,18 @@
package cn.axzo.msg.center.inside.notices.config; package cn.axzo.msg.center.inside.notices.config;
import cn.axzo.im.center.common.enums.AppTypeEnum;
import com.google.common.collect.Sets;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import static java.util.stream.Collectors.toList;
/** /**
* @author yanglin * @author yanglin
*/ */
@ -13,5 +21,16 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@ConfigurationProperties(prefix = "message.im") @ConfigurationProperties(prefix = "message.im")
public class ImMessageProps { public class ImMessageProps {
private String controllerToken = "123442"; private String controllerToken = "123442";
private Set<String> todoPollTerminals = Sets.newHashSet("cm");
public List<AppTypeEnum> getPollTerminals() {
return todoPollTerminals.stream()
.map(AppTypeEnum::isValidAppType)
.filter(Objects::nonNull)
.distinct()
.collect(toList());
}
} }

View File

@ -5,9 +5,9 @@ import cn.axzo.im.center.api.vo.req.CustomMessageInfo;
import cn.axzo.im.center.common.enums.AppTypeEnum; import cn.axzo.im.center.common.enums.AppTypeEnum;
import cn.axzo.im.center.common.enums.BizTypeEnum; import cn.axzo.im.center.common.enums.BizTypeEnum;
import cn.axzo.msg.center.domain.entity.Todo; import cn.axzo.msg.center.domain.entity.Todo;
import cn.axzo.msg.center.inside.notices.config.ImMessageProps;
import cn.hutool.core.thread.NamedThreadFactory; import cn.hutool.core.thread.NamedThreadFactory;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@ -32,6 +32,7 @@ import static java.util.stream.Collectors.toList;
@RequiredArgsConstructor @RequiredArgsConstructor
public class TodoPullBroadcaster implements DisposableBean { public class TodoPullBroadcaster implements DisposableBean {
private final ImMessageProps imProps;
private final MessageApi messageApi; private final MessageApi messageApi;
private final ExecutorService executor = new ThreadPoolExecutor( private final ExecutorService executor = new ThreadPoolExecutor(
10, 15, 10, 15,
@ -51,11 +52,12 @@ public class TodoPullBroadcaster implements DisposableBean {
.map(String::valueOf) .map(String::valueOf)
.collect(toList()); .collect(toList());
Todo sample = todos.get(0); Todo sample = todos.get(0);
List<AppTypeEnum> pollTerminals = imProps.getPollTerminals();
try { try {
Runnable sendTask = () -> { Runnable sendTask = () -> {
log.info("start - firing todo changed. personIds={}", JSON.toJSONString(personIds)); log.info("start - firing todo changed. personIds={}", JSON.toJSONString(personIds));
CustomMessageInfo imRequest = new CustomMessageInfo(); CustomMessageInfo imRequest = new CustomMessageInfo();
imRequest.setAppTypeList(Lists.newArrayList(AppTypeEnum.CM)); imRequest.setAppTypeList(pollTerminals);
imRequest.setToPersonIds(personIds); imRequest.setToPersonIds(personIds);
imRequest.setOuId(sample.getOuId()); imRequest.setOuId(sample.getOuId());
imRequest.setBizType(BizTypeEnum.PENDING); imRequest.setBizType(BizTypeEnum.PENDING);