REQ-2010: 根据手机查询用户im消息
This commit is contained in:
parent
a35421e5ed
commit
66ecd05071
@ -21,6 +21,10 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.basics</groupId>
|
||||
<artifactId>basics-profiles-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.maokai</groupId>
|
||||
<artifactId>maokai-api</artifactId>
|
||||
|
||||
@ -1,18 +1,11 @@
|
||||
package cn.axzo.msg.center.inside.notices.service;
|
||||
|
||||
import cn.axzo.msg.center.api.request.v3.MessageSendReqV3;
|
||||
import cn.axzo.msg.center.api.request.v3.SearchMessageReqV3;
|
||||
import cn.axzo.msg.center.api.response.v3.MessageSendRespV3;
|
||||
import cn.axzo.msg.center.api.response.v3.SearchMessageRespV3;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
public interface MessageServiceV3 {
|
||||
MessageSendRespV3 send(MessageSendReqV3 req);
|
||||
|
||||
List<SearchMessageRespV3> search(SearchMessageReqV3 req);
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.axzo.msg.center.inside.notices.service.impl.v3;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.profiles.api.UserProfileServiceApi;
|
||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
import cn.axzo.msg.center.api.request.v3.SearchMessageReqV3;
|
||||
import cn.axzo.msg.center.api.response.v3.SearchMessageRespV3;
|
||||
import cn.axzo.msg.center.common.utils.BizAssertions;
|
||||
import cn.axzo.msg.center.dal.MessageRecordV3Dao;
|
||||
import cn.axzo.msg.center.domain.entity.MessageRecordV3;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class MessageRecordServiceV3 {
|
||||
|
||||
private final MessageRecordV3Dao messageRecordV3Dao;
|
||||
private final UserProfileServiceApi userProfileServiceApi;
|
||||
|
||||
public List<SearchMessageRespV3> search(SearchMessageReqV3 req) {
|
||||
if (req.getLimit() >= 100) {
|
||||
req.setLimit(100);
|
||||
}
|
||||
if (req.getReceiverPersonId() == null && StringUtils.isNotBlank(req.getReceiverPhone())) {
|
||||
CommonResponse<PersonProfileDto> profileResp = userProfileServiceApi
|
||||
.getUnionPersonProfile(null, req.getReceiverPhone());
|
||||
PersonProfileDto personProfile = BizAssertions.assertResponse(profileResp, "未找根据手机找到接受人员");
|
||||
BizAssertions.assertNotNull(personProfile, "未找根据手机找到接受人员");
|
||||
req.setReceiverPersonId(personProfile.getId());
|
||||
}
|
||||
List<MessageRecordV3> records = messageRecordV3Dao.lambdaQuery()
|
||||
.eq(req.getReceiverOuId() != null, MessageRecordV3::getReceiverOuId, req.getReceiverOuId())
|
||||
.eq(req.getReceiverPersonId() != null, MessageRecordV3::getReceiverPersonId, req.getReceiverPersonId())
|
||||
.eq(StringUtils.isNotBlank(req.getBizEventMappingCode()), MessageRecordV3::getBizEventMappingCode, req.getBizEventMappingCode())
|
||||
.eq(StringUtils.isNotBlank(req.getBizCode()), MessageRecordV3::getBizCode, req.getBizCode())
|
||||
.eq(StringUtils.isNotBlank(req.getTemplateCode()), MessageRecordV3::getTemplateCode, req.getTemplateCode())
|
||||
.like(StringUtils.isNotBlank(req.getTitle()), MessageRecordV3::getTitle, req.getTitle())
|
||||
.like(StringUtils.isNotBlank(req.getContent()), MessageRecordV3::getContent, req.getContent())
|
||||
.ge(req.getStartTime() != null, MessageRecordV3::getCreateAt, req.getStartTime())
|
||||
.le(req.getEndTime() != null, MessageRecordV3::getCreateAt, req.getEndTime())
|
||||
.orderByDesc(MessageRecordV3::getId)
|
||||
.last("LIMIT " + req.getLimit())
|
||||
.list();
|
||||
return BeanMapper.copyList(records, SearchMessageRespV3.class);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,15 +1,10 @@
|
||||
package cn.axzo.msg.center.inside.notices.service.impl.v3;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.exception.ServiceException;
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.msg.center.api.request.v3.MessageSendReqV3;
|
||||
import cn.axzo.msg.center.api.request.v3.SearchMessageReqV3;
|
||||
import cn.axzo.msg.center.api.response.v3.MessageSendRespV3;
|
||||
import cn.axzo.msg.center.api.response.v3.SearchMessageRespV3;
|
||||
import cn.axzo.msg.center.dal.MessageRecordV3Dao;
|
||||
import cn.axzo.msg.center.domain.entity.BizEventMapping;
|
||||
import cn.axzo.msg.center.domain.entity.MessageRecordV3;
|
||||
import cn.axzo.msg.center.domain.enums.Channels;
|
||||
import cn.axzo.msg.center.inside.notices.service.MessageServiceV3;
|
||||
import cn.axzo.msg.center.inside.notices.service.impl.v3.msg.MessageMappingProcessor;
|
||||
@ -22,7 +17,6 @@ import cn.axzo.msg.center.service.bizevent.request.ReachDto;
|
||||
import cn.axzo.msg.center.utils.UUIDUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -42,7 +36,6 @@ public class MessageServiceV3Impl implements MessageServiceV3 {
|
||||
private final MessageTemplateNewService messageTemplateNewService;
|
||||
private final FunctionalTransactionTemplate transactionTemplate;
|
||||
private final ApplicationContext beanFactory;
|
||||
private final MessageRecordV3Dao messageRecordV3Dao;
|
||||
|
||||
@Override
|
||||
public MessageSendRespV3 send(MessageSendReqV3 req) {
|
||||
@ -79,25 +72,4 @@ public class MessageServiceV3Impl implements MessageServiceV3 {
|
||||
return resp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SearchMessageRespV3> search(SearchMessageReqV3 req) {
|
||||
if (req.getLimit() >= 100) {
|
||||
req.setLimit(100);
|
||||
}
|
||||
List<MessageRecordV3> records = messageRecordV3Dao.lambdaQuery()
|
||||
.eq(req.getReceiverOuId() != null, MessageRecordV3::getReceiverOuId, req.getReceiverOuId())
|
||||
.eq(req.getReceiverPersonId() != null, MessageRecordV3::getReceiverPersonId, req.getReceiverPersonId())
|
||||
.eq(StringUtils.isNotBlank(req.getBizEventMappingCode()), MessageRecordV3::getBizEventMappingCode, req.getBizEventMappingCode())
|
||||
.eq(StringUtils.isNotBlank(req.getBizCode()), MessageRecordV3::getBizCode, req.getBizCode())
|
||||
.eq(StringUtils.isNotBlank(req.getTemplateCode()), MessageRecordV3::getTemplateCode, req.getTemplateCode())
|
||||
.like(StringUtils.isNotBlank(req.getTitle()), MessageRecordV3::getTitle, req.getTitle())
|
||||
.like(StringUtils.isNotBlank(req.getContent()), MessageRecordV3::getContent, req.getContent())
|
||||
.ge(req.getStartTime() != null, MessageRecordV3::getCreateAt, req.getStartTime())
|
||||
.le(req.getEndTime() != null, MessageRecordV3::getCreateAt, req.getEndTime())
|
||||
.orderByDesc(MessageRecordV3::getId)
|
||||
.last("LIMIT " + req.getLimit())
|
||||
.list();
|
||||
return BeanMapper.copyList(records, SearchMessageRespV3.class);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.msg.center.message.controller;
|
||||
|
||||
import cn.axzo.msg.center.api.request.v3.SearchMessageReqV3;
|
||||
import cn.axzo.msg.center.inside.notices.service.MessageServiceV3;
|
||||
import cn.axzo.msg.center.inside.notices.service.impl.v3.MessageRecordServiceV3;
|
||||
import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam;
|
||||
import cn.axzo.msg.center.message.service.PendingMessageNewService;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
@ -26,7 +26,7 @@ import java.util.List;
|
||||
public class PrivateMessageController {
|
||||
|
||||
private final PendingMessageNewService pendingMessageNewService;
|
||||
private final MessageServiceV3 messageServiceV3;
|
||||
private final MessageRecordServiceV3 messageRecordServiceV3;
|
||||
|
||||
@PostMapping("/determinePageQueryTemplateCode")
|
||||
public List<String> determinePageQueryTemplateCode(
|
||||
@ -42,7 +42,7 @@ public class PrivateMessageController {
|
||||
|
||||
@PostMapping("/searchImRecord")
|
||||
public Object searchImRecord(@RequestBody @Valid SearchMessageReqV3 req) {
|
||||
return messageServiceV3.search(req);
|
||||
return messageRecordServiceV3.search(req);
|
||||
}
|
||||
|
||||
}
|
||||
@ -14,6 +14,7 @@ import java.util.Date;
|
||||
public class SearchMessageReqV3 {
|
||||
private Long receiverOuId;
|
||||
private Long receiverPersonId;
|
||||
private String receiverPhone;
|
||||
private String bizEventMappingCode;
|
||||
private String bizCode;
|
||||
private String title;
|
||||
|
||||
@ -5,6 +5,7 @@ import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -130,5 +131,6 @@ public class SearchMessageRespV3 {
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-hh HH:mm:ss")
|
||||
private Date sendTime;
|
||||
}
|
||||
@ -85,7 +85,7 @@ public class BizAssertions {
|
||||
}
|
||||
|
||||
public static <T> T assertResponse(CommonResponse<T> response, String message, Object... args) {
|
||||
if (response.getCode() != HttpStatus.HTTP_OK) {
|
||||
if (response == null || response.getCode() != HttpStatus.HTTP_OK) {
|
||||
ServiceException e = new ServiceException(MessageFormatter.arrayFormat(message, args).getMessage());
|
||||
log.warn("remote call response with error", e);
|
||||
throw e;
|
||||
|
||||
@ -13,6 +13,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static cn.axzo.msg.center.MsgCenterConfig.IM_CENTER;
|
||||
import static cn.axzo.msg.center.MsgCenterConfig.WORKSPACE;
|
||||
import static cn.axzo.msg.center.MsgCenterConfig.PUDGE;
|
||||
|
||||
/**
|
||||
* @author cn
|
||||
@ -21,11 +22,12 @@ import static cn.axzo.msg.center.MsgCenterConfig.WORKSPACE;
|
||||
* @date 2023/5/30 11:33
|
||||
*/
|
||||
@Configuration
|
||||
@EnableFeignClients(basePackages = {IM_CENTER, WORKSPACE})
|
||||
@EnableFeignClients(basePackages = {IM_CENTER, WORKSPACE, PUDGE})
|
||||
public class MsgCenterConfig {
|
||||
|
||||
public static final String IM_CENTER = "cn.axzo.im.center.api.feign";
|
||||
public static final String WORKSPACE = "cn.axzo.apollo.workspace";
|
||||
public static final String PUDGE = "cn.axzo.basics.profiles.api";
|
||||
|
||||
@Bean @Primary
|
||||
public ExecutorService defaultExecutor() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user