| 
					
				 | 
			
			
				@@ -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(); 
			 |