站内信消息列表查询实现

This commit is contained in:
刘才福 2023-06-21 19:48:22 +08:00
parent 782c64c886
commit 7ff9d43e58
7 changed files with 241 additions and 1 deletions

View File

@ -0,0 +1,49 @@
package cn.axzo.msg.center.inside.notices.service.impl;
import cn.axzo.core.domain.PageResult;
import cn.axzo.msg.center.api.InsideMessageRecordApi;
import cn.axzo.msg.center.api.request.CmsMsgListReq;
import cn.axzo.msg.center.api.request.CmsMsgQueryReq;
import cn.axzo.msg.center.api.request.MessageNewRes;
import cn.axzo.msg.center.inside.notices.service.MessageModuleService;
import cn.axzo.msg.center.inside.notices.service.MessageRecordService;
import cn.axzo.msg.center.inside.notices.service.MessageRouterService;
import cn.axzo.msg.center.notices.service.api.MessageService;
import cn.azxo.framework.common.model.CommonResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Slf4j
@RestController
public class InsideMessageRecordApiImpl implements InsideMessageRecordApi {
@Resource
private MessageRecordService messageRecordService;
@Resource
private MessageService messageService;
@Resource
private MessageModuleService messageModuleService;
@Resource
private MessageRouterService messageRouterService;
@PostMapping("webApi/wx/message/list")
@Override
public CommonResponse<PageResult<MessageNewRes>> listMsgInfo4Trade(CmsMsgListReq req) {
CmsMsgQueryReq request=new CmsMsgQueryReq();
BeanUtils.copyProperties(req,request);
PageResult<MessageNewRes> pageResult = messageRecordService.pageMsgInfo4WechatAndTrade(
request, req.getPersonId());
return CommonResponse.success(pageResult);
}
}

View File

@ -0,0 +1,21 @@
package cn.axzo.msg.center.api;
import cn.axzo.core.domain.PageResult;
import cn.axzo.msg.center.api.fallback.InsideMessageRecordApiFallBack;
import cn.axzo.msg.center.api.request.CmsMsgListReq;
import cn.axzo.msg.center.api.request.MessageNewRes;
import cn.azxo.framework.common.model.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
@FeignClient(name = "msg-center", url = "http://127.0.0.1:10086", fallback = InsideMessageRecordApiFallBack.class)
@Component
public interface InsideMessageRecordApi {
/**
* 消息列表
* @param req
* @return
*/
CommonResponse<PageResult<MessageNewRes>> listMsgInfo4Trade(CmsMsgListReq req);
}

View File

@ -0,0 +1,4 @@
package cn.axzo.msg.center.api;
public class InsideMessageTemplateApi {
}

View File

@ -0,0 +1,21 @@
package cn.axzo.msg.center.api.fallback;
import cn.axzo.core.domain.PageResult;
import cn.axzo.msg.center.api.InsideMessageRecordApi;
import cn.axzo.msg.center.api.request.CmsMsgListReq;
import cn.axzo.msg.center.api.request.MessageNewRes;
import cn.azxo.framework.common.model.CommonResponse;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class InsideMessageRecordApiFallBack implements InsideMessageRecordApi {
@Override
public CommonResponse<PageResult<MessageNewRes>> listMsgInfo4Trade(CmsMsgListReq req) {
log.warn("查询消息列表超时,req={}", JSONUtil.toJsonStr(req));
return CommonResponse.fail("查询消息列表超时");
}
}

View File

@ -0,0 +1,48 @@
package cn.axzo.msg.center.api.request;
import cn.axzo.basics.common.page.PageRequest;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class CmsMsgListReq extends PageRequest {
/**
* 关键字
*/
private String searchKey;
/**
* 消息类型 1:普通消息 2:待办
*/
@NotNull(message = "消息类型必传")
private Integer msgType;
/**
* 消息状态
* 0:消息中心-全部 1:消息中心-未读
* <p
* 1:待办-待处理 2:待办-已完成
*/
private int msgStatus;
/**
* 待办消息模块类型Id - 针对待办使用
*/
private Long moduleId;
/**
*
*/
@NotNull(message = "自然人id不能为空")
private Long personId;
/**
* @see MsgRouteTypeEnum
* 消息路由地址类型
*/
@NotNull(message = "msgRouteType不能为空")
private Integer msgRouteType;
}

View File

@ -0,0 +1,96 @@
package cn.axzo.msg.center.domain.request.inside;
import lombok.Data;
import java.util.Date;
/**
* @ClassName MessageDto
* @Description 每次只拿模块内最新一条通知消息第一条已读第二条未读也存在小红点
* @Author zhangran
* @Date 2022/3/21 14:50
**/
@Data
public class MessageNewRes {
/**
* 消息Id
*/
private Long msgId;
/**
* 模块图标
*/
private String msgIcon;
/**
* 模块名称
*/
private String msgName;
/**
* 消息标题
*/
private String msgTitle;
/**
* 消息内容
*/
private String content;
/**
* 接收人类型
*/
private Integer receiveType;
/**
* 消息所属标识类型 1:项目 2:企业
*/
private Integer terminalType;
/**
* 项目Id/企业Id 用于跳转
*/
private Long terminalId;
/**
* 项目名称/企业名称 有则展示
*/
private String terminalName;
/**
* 普通消息状态 1.未读 2.已读
* <p>
* 待办消息状态 1:待处理 2:已完成
*/
private Integer state;
/**
* 消息时间
*/
private Date msgDate;
/**
* 扩展参数 JsonString
*/
private String ext;
/**
* 路由类型(0=null 1=uniapp 2=native 3=H5 4=web 5=WeChat_MP)", example = "1
*/
private Integer routerType;
/**
* 路由地址
*/
private String router;
/**
* 路由参数 JsonString
*/
private String routerParam;
/**
* 关联Id
*/
private Long relationId;
/**
* 原typeId
*/
private Integer oldTypeId;
}

View File

@ -1,7 +1,7 @@
package cn.axzo.msg.center.notices.service.api;
import cn.axzo.msg.center.notices.manager.api.dto.request.SendBatchMessageRequestDto;
import cn.axzo.msg.center.notices.manager.api.dto.request.MnsRequestDto;
import cn.axzo.msg.center.notices.manager.api.dto.request.SendBatchMessageRequestDto;
/**
* 消息服务
@ -23,4 +23,5 @@ public interface MessageService {
*/
void sendBatchMessage(SendBatchMessageRequestDto request);
}