|
@@ -1,6 +1,7 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.dayaedu.cbs.common.enums.EAppKey;
|
|
|
import com.dayaedu.cbs.common.enums.EClientType;
|
|
|
import com.dayaedu.cbs.common.enums.message.EMessageSendMode;
|
|
@@ -20,6 +21,7 @@ import com.ym.mec.biz.dal.entity.SysMessageConfig;
|
|
|
import com.ym.mec.biz.dal.entity.WaitSendMessage;
|
|
|
import com.ym.mec.biz.dal.enums.MessageSendMode;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SendStatusEnum;
|
|
|
import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
|
|
|
import com.ym.mec.biz.service.SysMessageConfigService;
|
|
|
import com.ym.mec.biz.service.SysMessageService;
|
|
@@ -30,6 +32,7 @@ import com.ym.mec.common.entity.ImPrivateMessage;
|
|
|
import com.ym.mec.common.entity.ImSendMessageUserInfo;
|
|
|
import com.ym.mec.common.entity.ImTxtMessage;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
+import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.redis.service.RedisCache;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.common.tenant.TenantContextHolder;
|
|
@@ -97,6 +100,102 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
return sysMessageDao;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ * @param page IPage<SysMessageWrapper.SysMessageList>
|
|
|
+ * @param query SysMessageWrapper.SysMessageQuery
|
|
|
+ * @return IPage<SysMessageWrapper.SysMessage>
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public PageInfo<SysMessage> queryPage(SysMessageQueryInfo query){
|
|
|
+
|
|
|
+ CbsMessageWrapper.SysMessageQuery cbsQuery = getSysMessageQuery(query);
|
|
|
+
|
|
|
+ PageInfo<SysMessage> pageInfo = new PageInfo<>(query.getPage(), query.getRows());
|
|
|
+
|
|
|
+ cbsQuery.setPage(query.getPage());
|
|
|
+ cbsQuery.setRows(query.getRows());
|
|
|
+ com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage> sysMessagePageInfo = messageFeignClientService
|
|
|
+ .sysMessagePage(cbsQuery).feignData();
|
|
|
+ List<CbsMessageWrapper.SysMessage> rows = sysMessagePageInfo.getRows();
|
|
|
+ if (CollectionUtils.isEmpty(rows)) {
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+ List<SysMessage> sysMessages = rows.stream().map(this::convert).collect(Collectors.toList());
|
|
|
+ pageInfo.setRows(sysMessages);
|
|
|
+ pageInfo.setTotal(sysMessagePageInfo.getTotal());
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysMessage convert(CbsMessageWrapper.SysMessage sysMessage) {
|
|
|
+ SysMessage message = new SysMessage();
|
|
|
+ message.setId(sysMessage.getId());
|
|
|
+ if (sysMessage.getUserId() != null) {
|
|
|
+ message.setUserId(sysMessage.getUserId().intValue());
|
|
|
+ }
|
|
|
+ if (sysMessage.getMessageConfigId() != null) {
|
|
|
+ message.setMessageConfigId(sysMessage.getMessageConfigId().intValue());
|
|
|
+ }
|
|
|
+ message.setTitle(sysMessage.getTitle());
|
|
|
+ message.setContent(sysMessage.getContent());
|
|
|
+ message.setType(MessageSendMode.valueOf(sysMessage.getSendMode() !=null?sysMessage.getSendMode().name():"PUSH"));
|
|
|
+ message.setStatus(SendStatusEnum.valueOf(Optional.ofNullable(sysMessage.getStatus()).map(o->o.name()).orElse(SendStatusEnum.FAILED.name())));
|
|
|
+ message.setReceiver(sysMessage.getReceiver());
|
|
|
+ message.setSendTime(sysMessage.getSendTime());
|
|
|
+ message.setErrorMsg(sysMessage.getErrorMsg());
|
|
|
+ message.setMemo(sysMessage.getMemo());
|
|
|
+ message.setReadStatus(sysMessage.getReadStatus()?1:0);
|
|
|
+ message.setGroup(sysMessage.getGroup());
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+
|
|
|
+ private CbsMessageWrapper.SysMessageQuery getSysMessageQuery(SysMessageQueryInfo query) {
|
|
|
+ CbsMessageWrapper.SysMessageQuery cbsQuery = new CbsMessageWrapper.SysMessageQuery();
|
|
|
+ if (query.getUserId() != null) {
|
|
|
+ cbsQuery.setUserId(query.getUserId().longValue());
|
|
|
+ }
|
|
|
+ cbsQuery.setAppKey(EAppKey.GYM);
|
|
|
+ if (query.getJpushType() !=null) {
|
|
|
+ cbsQuery.setClientType(getClientType(query.getJpushType()));
|
|
|
+ }
|
|
|
+ if (query.getStatus() !=null) {
|
|
|
+ switch (query.getStatus()) {
|
|
|
+ case 0:
|
|
|
+ cbsQuery.setStatus(ESendStatus.WAIT);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ cbsQuery.setStatus(ESendStatus.SENDING);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ cbsQuery.setStatus(ESendStatus.SUCCESSED);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cbsQuery.setTitle(query.getTitle());
|
|
|
+ if (query.getType() != null) {
|
|
|
+ switch (query.getType()) {
|
|
|
+ case 1:
|
|
|
+ cbsQuery.setSendMode(EMessageSendMode.SMS);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ cbsQuery.setSendMode(EMessageSendMode.EMAIL);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ cbsQuery.setSendMode(EMessageSendMode.PUSH);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(query.getGroup())) {
|
|
|
+ cbsQuery.setGroup(query.getGroup());
|
|
|
+ }
|
|
|
+ if (query.getReadStatus() != null) {
|
|
|
+ cbsQuery.setReadStatus(query.getReadStatus() == 1);
|
|
|
+ }
|
|
|
+ return cbsQuery;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage>> queryListPage(SysMessageQueryInfo queryInfo) {
|
|
|
CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
|