feat(REQ-1465): 新增发送普通消息发送接口

背景:
  https://jira.axzo.cn/browse/REQ-1465?goToView=1

修改:
  1、对接IM的消息发送接口

影响:
  无
This commit is contained in:
luofu 2023-10-20 16:18:24 +08:00
parent 15d259836f
commit 0220a12b9d
3 changed files with 10 additions and 21 deletions

View File

@ -54,7 +54,7 @@ public class GeneralMessageServiceImpl implements GeneralMessageService {
// 构建消息记录并存储
GeneralMessageRecord messageRecord = buildMessageRecord(request, template);
generalMessageRecordDao.save(messageRecord);
// 推送
// 异步推送
pushMessage(messageRecord, template);
return messageRecord.getIdentityCode();
}
@ -62,7 +62,7 @@ public class GeneralMessageServiceImpl implements GeneralMessageService {
private GeneralMessageRecord buildMessageRecord(GeneralMessageSendRequest request, MessageTemplateDTO template) {
return GeneralMessageRecord.builder()
.identityCode(UUIDUtil.uuidString())
.senderId(request.getSenderPersonId())
.senderPersonId(request.getSenderPersonId())
.senderId(request.getSenderIdentity().getId())
.senderType(request.getSenderIdentity().getType())
.receiverPersonId(request.getReceiverPersonId())
@ -91,7 +91,7 @@ public class GeneralMessageServiceImpl implements GeneralMessageService {
GeneralMessagePushDTO message = convert(record, template);
MessageInfo msgInfo = new MessageInfo();
msgInfo.setAppTypeList(appTypes);
msgInfo.setPersonId(String.valueOf(record.getSenderPersonId()));
// TODO: [cold_blade] [P2] 第一期只支持发送机器人相关的消息
msgInfo.setToPersonIdList(Lists.newArrayList(String.valueOf(record.getReceiverPersonId())));
msgInfo.setMsgHeader(record.getTitle());
msgInfo.setMsgContent(record.getContent());

View File

@ -18,11 +18,11 @@ public enum PushTerminalEnum {
/**
* B-安心筑企业版
*/
B_ENTERPRISE_APP("B-安心筑企业版", "ENTERPRISE"),
B_ENTERPRISE_APP("B-安心筑企业版", "CMP"),
/**
* C-安心筑工人版
*/
C_WORKER_APP("C-安心筑工人版", "WORKER"),
C_WORKER_APP("C-安心筑工人版", "CM"),
;
private final String desc;

View File

@ -1,18 +1,15 @@
package cn.axzo.msg.center;
import cn.hutool.core.util.ReflectUtil;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import feign.Target;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.util.Map;
import java.util.Objects;
@ -27,9 +24,6 @@ import java.util.Objects;
public class FeignConfig implements RequestInterceptor, EnvironmentAware {
private Environment environment;
@Value("${imCenterEngineEnvUrl:http://dev-app.axzo.cn/msg-center}")
private String imCenter;
private static String POD_NAMESPACE;
static {
@ -44,18 +38,13 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware {
@Override
public void apply(RequestTemplate requestTemplate) {
if (POD_NAMESPACE == null) {
Target.HardCodedTarget target = (Target.HardCodedTarget) requestTemplate.feignTarget();
String url = requestTemplate.feignTarget().url();
// 如需修改微服务地址,建议通过外部化参数来调整
url = url.replace("http://im-center:8080", imCenter);
Target<?> target = requestTemplate.feignTarget();
String profile = environment.getProperty("spring.profiles.active");
if (Objects.equals(profile, "test") && url.contains("dev-app.axzo.cn")) {
url = url.replace("dev-app", "test-api");
if (Objects.equals(profile, "dev")) {
requestTemplate.target("http://dev-app.axzo.cn/" + target.name());
} else if (Objects.equals(profile, "test")) {
requestTemplate.target("http://test-api.axzo.cn/" + target.name());
}
requestTemplate.target(url);
Field field = ReflectUtil.getField(target.getClass(), "url");
field.setAccessible(true);
field.set(target, url);
}
}