|
@@ -1,54 +1,52 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
-import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.dayaedu.cbs.common.enums.EAppKey;
|
|
|
+import com.dayaedu.cbs.common.enums.message.EMessageSendMode;
|
|
|
+import com.dayaedu.cbs.common.enums.message.ESendStatus;
|
|
|
+import com.dayaedu.cbs.openfeign.client.MessageFeignClientService;
|
|
|
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
|
|
|
+import com.microsvc.toolkit.common.response.paging.PageInfo;
|
|
|
+import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.SysMessageDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.JumpUrlDto;
|
|
|
+import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.PageUtil;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.search.SysMessageQueryInfo;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.SysMessage;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.SysMessageConfig;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MessageSendMode;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.SendStatusEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.SysMessageConfigService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.SysMessageWrapper;
|
|
|
import com.yonge.cooleshow.common.entity.Mapper;
|
|
|
import com.yonge.cooleshow.common.redis.service.RedisCache;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
|
-import com.yonge.toolset.base.string.MessageFormatter;
|
|
|
import com.yonge.toolset.mybatis.dal.BaseDAO;
|
|
|
import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
|
|
|
-import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
-import java.util.Map.Entry;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
|
|
|
|
|
|
private final static Logger LOGGER = LoggerFactory.getLogger(SysMessageServiceImpl.class);
|
|
|
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private SysMessageDao sysMessageDao;
|
|
|
- @Autowired
|
|
|
- private SysMessageConfigService sysMessageConfigService;
|
|
|
- @Autowired
|
|
|
- private MessageSenderPluginContext messageSenderPluginContext;
|
|
|
- @Autowired
|
|
|
- private SysUserFeignService sysUserFeignService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
+ private TeacherDao teacherDao;
|
|
|
+ @Resource
|
|
|
private RedisCache<String, Object> redisCache;
|
|
|
+ @Resource
|
|
|
+ private MessageFeignClientService messageFeignClientService;
|
|
|
// 验证码有效期
|
|
|
public static final int CODE_EXPIRE = 60 * 10;
|
|
|
// 发送验证码的间隔时间
|
|
@@ -59,7 +57,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
@Value("${message.debugMode}")
|
|
|
private boolean debugMode;
|
|
|
|
|
|
-
|
|
|
@Value("${message.debugJigaung:false}")
|
|
|
private boolean debugJigaung;
|
|
|
|
|
@@ -71,229 +68,43 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
return sysMessageDao;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 添加消息
|
|
|
- * @param subject 消息主题
|
|
|
- * @param content 消息内容
|
|
|
- * @param receivers 接收人,多个人用逗号分开
|
|
|
- * @param triggerTime 触发时间
|
|
|
- * @param mode 消息的发送模式
|
|
|
- * @param status 消息的当前状态
|
|
|
- * @param errorMsg 错误消息
|
|
|
- * @param readStatus 阅读状态
|
|
|
- * @param memo 备注
|
|
|
- * @param group 消息组
|
|
|
- * @return
|
|
|
- */
|
|
|
- private int addMessage(Map<Long, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
|
|
|
- String errorMsg, Integer readStatus, String memo, String group,String jpushType,Long messageConfigId) {
|
|
|
- SysMessage message = null;
|
|
|
- Date date = new Date();
|
|
|
-
|
|
|
- List<SysMessage> messages = new ArrayList<>();
|
|
|
-
|
|
|
- Long userId = null;
|
|
|
- String receiver;
|
|
|
- for (Entry<Long, String> entry : receivers.entrySet()) {
|
|
|
- userId = entry.getKey();
|
|
|
- receiver = entry.getValue();
|
|
|
-
|
|
|
- message = new SysMessage();
|
|
|
- if (userId == null) {
|
|
|
- SysUser user = sysUserFeignService.queryUserByMobile(receiver);
|
|
|
- if (user != null) {
|
|
|
- userId = user.getId();
|
|
|
- }
|
|
|
- }
|
|
|
- message.setUserId(userId);
|
|
|
- message.setContent(content);
|
|
|
- message.setCreateOn(date);
|
|
|
- message.setModifyOn(date);
|
|
|
- message.setReceiver(receiver);
|
|
|
- if (triggerTime == null) {
|
|
|
- triggerTime = date;
|
|
|
- }
|
|
|
- message.setSendTime(triggerTime);
|
|
|
- message.setTitle(subject);
|
|
|
- message.setStatus(status);
|
|
|
- message.setType(mode);
|
|
|
- message.setErrorMsg(errorMsg);
|
|
|
- message.setReadStatus(readStatus);
|
|
|
- message.setMemo(memo);
|
|
|
- message.setGroup(group);
|
|
|
- message.setClientId(jpushType);
|
|
|
- message.setMessageConfigId(messageConfigId);
|
|
|
- messages.add(message);
|
|
|
- }
|
|
|
-
|
|
|
- return sysMessageDao.batchInsert(messages);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
@Override
|
|
|
public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
|
|
|
String url,String jpushType, Object... args) {
|
|
|
- LOGGER.info("batchSendMessage msgSender {}, type {}, receivers {} ", messageSender, type, receivers);
|
|
|
- if (receivers == null || receivers.size() == 0) {
|
|
|
- LOGGER.error("接收地址不能为空");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (StringUtils.isEmpty(url)) {
|
|
|
- url = selectConfigUrlJumpType(type.getCode(),jpushType);
|
|
|
- }
|
|
|
-
|
|
|
- String[] tos;
|
|
|
- if(messageSender.getSendMode().equals(MessageSender.JIGUANG.getSendMode())) {
|
|
|
- tos= new String[receivers.size()];
|
|
|
- tos = receivers.entrySet()
|
|
|
- .stream()
|
|
|
- .map(longStringEntry -> String.valueOf(longStringEntry.getKey()))
|
|
|
- .collect(Collectors.toList())
|
|
|
- .toArray(tos);
|
|
|
- } else {
|
|
|
- tos = receivers.values().toArray(new String[receivers.size()]);
|
|
|
- }
|
|
|
- SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type.getCode());
|
|
|
- if (messageConfig == null) {
|
|
|
- throw new BizException("消息类型错误");
|
|
|
- }else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
|
|
|
- LOGGER.error("batch 发送标志为空" );
|
|
|
- return;
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
- SendStatusEnum status = SendStatusEnum.WAIT;
|
|
|
- String errorMsg = null;
|
|
|
- // 立即发送
|
|
|
- if (triggerTime == null || date.after(triggerTime)) {
|
|
|
- status = SendStatusEnum.SENDING;
|
|
|
- try {
|
|
|
- if (isSendRemoteMessage(messageSender)) {
|
|
|
- errorMsg = messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
|
|
|
- MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null);
|
|
|
- if (StringUtils.isEmpty(errorMsg)) {
|
|
|
- status = SendStatusEnum.SUCCESSED;
|
|
|
- } else {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- errorMsg = e.getMessage();
|
|
|
- LOGGER.warn("消息发送失败", e);
|
|
|
- }
|
|
|
- }
|
|
|
- MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
- mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
- mode = MessageSendMode.EMAIL;
|
|
|
- }
|
|
|
- if (ClientEnum.TENANT_STUDENT.getCode().equals(jpushType)) {
|
|
|
- jpushType = ClientEnum.STUDENT.getCode();
|
|
|
- }
|
|
|
- addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
|
|
|
- url, messageConfig.getGroup(),jpushType,messageConfig.getId());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void batchSendMessage(MessageSender messageSender, String title, String content, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
|
|
|
- String url, String jpushType, Object... args) {
|
|
|
- if (receivers == null || receivers.size() == 0) {
|
|
|
+ LOGGER.info("batchSendMessage type {}, receivers {} ", type, receivers);
|
|
|
+ if (receivers == null || receivers.isEmpty()) {
|
|
|
LOGGER.error("接收地址不能为空");
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- String[] tos;
|
|
|
- if (messageSender.getSendMode().equals(MessageSender.JIGUANG.getSendMode())) {
|
|
|
- tos = new String[receivers.size()];
|
|
|
- tos = receivers.entrySet().stream().map(longStringEntry -> String.valueOf(longStringEntry.getKey())).collect(Collectors.toList()).toArray(tos);
|
|
|
- } else {
|
|
|
- tos = receivers.values().toArray(new String[receivers.size()]);
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
- SendStatusEnum status = SendStatusEnum.WAIT;
|
|
|
- String errorMsg = null;
|
|
|
- // 立即发送
|
|
|
- if (triggerTime == null || date.after(triggerTime)) {
|
|
|
- status = SendStatusEnum.SENDING;
|
|
|
- try {
|
|
|
-
|
|
|
- if (isSendRemoteMessage(messageSender)) {
|
|
|
- errorMsg = messageSenderPluginContext.batchSend(messageSender, title, MessageFormatter.arrayFormat(content, args), tos, url, jpushType,
|
|
|
- "default", null);
|
|
|
- if (StringUtils.isEmpty(errorMsg)) {
|
|
|
- status = SendStatusEnum.SUCCESSED;
|
|
|
- } else {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
+ List<BasicUserInfo> basicUserInfo = teacherDao.findBasicUserInfo(receivers.keySet());
|
|
|
+ List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
|
|
|
+ for (BasicUserInfo user : basicUserInfo) {
|
|
|
+ CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
|
|
|
+ messageParam.setUserId(user.getUserId());
|
|
|
+ messageParam.setAppKey(EAppKey.KLX);
|
|
|
+ messageParam.setClientType(jpushType);
|
|
|
+ messageParam.setType(type.getCode());
|
|
|
+ messageParam.setUrl(url);
|
|
|
+ Map<Long, String> params = new HashMap<>();
|
|
|
+ params.put(user.getUserId(), user.getPhone());
|
|
|
+ messageParam.setReceivers(params);
|
|
|
+ if(args != null && args.length > 0){
|
|
|
+ String[] argsStr = new String[args.length];
|
|
|
+ for (int i = 0; i < args.length; i++) {
|
|
|
+ if (args[i]!=null){
|
|
|
+ argsStr[i] = args[i].toString();
|
|
|
+ }else {
|
|
|
+ argsStr[i] = "";
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- errorMsg = e.getMessage();
|
|
|
- LOGGER.warn("消息发送失败", e);
|
|
|
+ messageParam.setContentArgs(argsStr);
|
|
|
}
|
|
|
+ messageParams.add(messageParam);
|
|
|
}
|
|
|
- MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
- mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
- mode = MessageSendMode.EMAIL;
|
|
|
- }
|
|
|
- addMessage(receivers, title, MessageFormatter.arrayFormat(content, args), triggerTime, mode, status, errorMsg, readStatus, url, "SYSTEM", jpushType,
|
|
|
- null);
|
|
|
- }
|
|
|
-
|
|
|
- private boolean isSendRemoteMessage(MessageSender messageSender) {
|
|
|
- if (messageSender.getSendMode().equals(MessageSender.JIGUANG.getSendMode()) && !debugJigaung) {
|
|
|
- return true;
|
|
|
- } else if (messageSender.getSendMode().equals(MessageSender.AWSMS.getSendMode()) && !debugMode) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
+ messageFeignClientService.sysMessageBatchSendMessage(messageParams);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void sendMessage(MessageSender messageSender, Long userId, String title, String content, String receiver, Date triggerTime, Integer readStatus, String url, String group,String jpushType) {
|
|
|
- LOGGER.info("batchSendMessage {}, userId {}, receivers {} ", messageSender, userId, receiver);
|
|
|
- if (StringUtils.isBlank(receiver)) {
|
|
|
- throw new BizException("接收地址不能为空");
|
|
|
- }
|
|
|
-
|
|
|
- Date date = new Date();
|
|
|
- SendStatusEnum status = SendStatusEnum.WAIT;
|
|
|
- String errorMsg = null;
|
|
|
- // 立即发送
|
|
|
- if (triggerTime == null || date.after(triggerTime)) {
|
|
|
- status = SendStatusEnum.SENDING;
|
|
|
- try {
|
|
|
- if (isSendRemoteMessage(messageSender)) {
|
|
|
- errorMsg = messageSenderPluginContext.send(messageSender, receiver, title, content, url,
|
|
|
- jpushType, "default", null);
|
|
|
- if (StringUtils.isEmpty(errorMsg)) {
|
|
|
- status = SendStatusEnum.SUCCESSED;
|
|
|
- } else {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- errorMsg = e.getMessage();
|
|
|
- LOGGER.warn("消息发送失败", e);
|
|
|
- }
|
|
|
- }
|
|
|
- MessageSendMode mode = MessageSendMode.SMS;
|
|
|
- if (messageSender.getSendMode().equals("PUSH")) {
|
|
|
- mode = MessageSendMode.PUSH;
|
|
|
- } else if (messageSender.getSendMode().equals("EMAIL")) {
|
|
|
- mode = MessageSendMode.EMAIL;
|
|
|
- LOGGER.info("发送邮件 {} ");
|
|
|
- }
|
|
|
- Map<Long, String> receivers = new HashMap<Long, String>();
|
|
|
- receivers.put(userId, receiver);
|
|
|
- addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType,null);
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
public boolean sendSecurityCode(MessageSender messageSender, Long userId, MessageTypeEnum messageType, String receiver, String platform) {
|
|
@@ -304,7 +115,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
|
|
|
String key = getVerificationCodeCacheKey(messageType, receiver);
|
|
|
int code = DEFAULT_CODE;
|
|
|
- if (debugMode == false && !authCode) {
|
|
|
+ if (!debugMode && !authCode) {
|
|
|
code = getRandomCode(messageType, receiver);
|
|
|
}
|
|
|
Map<Long, String> receivers = new HashMap<>(1);
|
|
@@ -339,7 +150,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
|
|
|
@Override
|
|
|
public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
|
|
|
- if (debugMode == true) {
|
|
|
+ if (debugMode) {
|
|
|
return DEFAULT_CODE + "";
|
|
|
}
|
|
|
String key = getVerificationCodeCacheKey(type, mobileNOOrEmailAddr);
|
|
@@ -349,9 +160,25 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
|
|
|
@Override
|
|
|
public List<Mapper> queryCountOfUnread(MessageSendMode type, Long userId, String jpushType) {
|
|
|
- return sysMessageDao.queryCountOfUnread(type, userId, jpushType);
|
|
|
-
|
|
|
-
|
|
|
+ CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
|
|
|
+ query.setUserId(userId);
|
|
|
+ query.setClientType(jpushType);
|
|
|
+ query.setStatus(ESendStatus.SUCCESSED);
|
|
|
+ query.setAppKey(EAppKey.KLX);
|
|
|
+ query.setSendMode(type == null?null:type == MessageSendMode.SMS?EMessageSendMode.SMS:
|
|
|
+ type == MessageSendMode.EMAIL?EMessageSendMode.EMAIL:
|
|
|
+ type == MessageSendMode.PUSH?EMessageSendMode.PUSH:EMessageSendMode.SEO);
|
|
|
+ query.setReadStatus(false);
|
|
|
+ List<CbsMessageWrapper.MessageUnreadStat> messageUnreadStats = messageFeignClientService.messageUnreadStat(query).feignData();
|
|
|
+ List<Mapper> result = new ArrayList<>();
|
|
|
+
|
|
|
+ for (CbsMessageWrapper.MessageUnreadStat mapper : messageUnreadStats) {
|
|
|
+ Mapper map = new Mapper();
|
|
|
+ map.setKey(mapper.getGroup());
|
|
|
+ map.setValue(mapper.getNumber());
|
|
|
+ result.add(map);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
public void setDebugMode(boolean debugMode) {
|
|
@@ -382,63 +209,109 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public int updateStatus(Long userId, int status,String jpushType,MessageTypeEnum messageType) {
|
|
|
- // 按照类型设置一键已读
|
|
|
- Long messageConfigId = null;
|
|
|
- if (messageType != null) {
|
|
|
- SysMessageConfig sysMessageConfig = sysMessageConfigService.queryByType(messageType.getCode());
|
|
|
- if (sysMessageConfig != null) {
|
|
|
- messageConfigId = sysMessageConfig.getId();
|
|
|
- }
|
|
|
- }
|
|
|
- return sysMessageDao.updateStatus(userId, status,jpushType,messageConfigId);
|
|
|
+ public Boolean updateStatus(Long userId, int status,String jpushType,MessageTypeEnum messageType) {
|
|
|
+ CbsMessageWrapper.MessageRead messageRead = new CbsMessageWrapper.MessageRead();
|
|
|
+ messageRead.setUserId(userId);
|
|
|
+ messageRead.setAppKey(EAppKey.KLX);
|
|
|
+ messageRead.setClientType(jpushType);
|
|
|
+ return messageFeignClientService.batchSetRead(messageRead).feignData();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public int updateOneStatus(Long id, int status) {
|
|
|
- return sysMessageDao.updateOneStatus(id, status);
|
|
|
+ public Boolean updateOneStatus(Long id, int status) {
|
|
|
+ return messageFeignClientService.setRead(id).feignData();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
|
|
|
- return sysMessageDao.queryUserInRecentMinList(mobile, recentMin, type);
|
|
|
+ public List<CbsMessageWrapper.SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
|
|
|
+ CbsMessageWrapper.UserRecentMessageQuery query = new CbsMessageWrapper.UserRecentMessageQuery();
|
|
|
+ query.setPhone(mobile);
|
|
|
+ query.setRecentMin(recentMin);
|
|
|
+ query.setSendMode(EMessageSendMode.SMS);
|
|
|
+ query.setAppKey(EAppKey.KLX);
|
|
|
+ return messageFeignClientService.userRecentMessageRecords(query).feignData();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String selectConfigUrl(String messageType,Object ...param) {
|
|
|
- return selectConfigUrlJumpType(messageType,null,param);
|
|
|
+ return "";
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String selectConfigUrlJumpType(String messageType,String jumpType,Object ...param) {
|
|
|
- SysMessageConfig sysMessageConfig = sysMessageConfigService.queryByType(messageType);
|
|
|
- if (sysMessageConfig == null) {
|
|
|
- throw new BizException("消息类型错误");
|
|
|
- }
|
|
|
- if(StringUtils.isEmpty(sysMessageConfig.getAction())) {
|
|
|
- return null;
|
|
|
+ public List<SysMessageWrapper.MessageUnreadStat> userMessageUnreadStat(SysMessageWrapper.SysMessageQuery param) {
|
|
|
+ CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
|
|
|
+ query.setUserId(param.getUserId());
|
|
|
+ query.setClientType(param.getClientType().getCode());
|
|
|
+ query.setStatus(ESendStatus.SUCCESSED);
|
|
|
+ query.setAppKey(EAppKey.KLX);
|
|
|
+ query.setSendMode(param.getType() == null?null:param.getType() == MessageSendMode.SMS?EMessageSendMode.SMS:
|
|
|
+ param.getType() == MessageSendMode.EMAIL?EMessageSendMode.EMAIL:
|
|
|
+ param.getType() == MessageSendMode.PUSH?EMessageSendMode.PUSH:EMessageSendMode.SEO);
|
|
|
+ query.setReadStatus(false);
|
|
|
+ List<CbsMessageWrapper.MessageUnreadStat> messageUnreadStats = messageFeignClientService.messageUnreadStat(query).feignData();
|
|
|
+ List<SysMessageWrapper.MessageUnreadStat> result = new ArrayList<>();
|
|
|
+ for (CbsMessageWrapper.MessageUnreadStat mapper : messageUnreadStats) {
|
|
|
+ SysMessageWrapper.MessageUnreadStat stat = new SysMessageWrapper.MessageUnreadStat();
|
|
|
+ stat.setGroup(mapper.getGroup());
|
|
|
+ stat.setNumber(mapper.getNumber());
|
|
|
+ result.add(stat);
|
|
|
}
|
|
|
- if (sysMessageConfig.getAction().equals("sms")) {
|
|
|
- return sysMessageConfig.getActionUrl();
|
|
|
- } else if (sysMessageConfig.getAction().equals("h5")) {
|
|
|
- sysMessageConfig.setActionUrl(MessageFormatter.arrayFormat(sysMessageConfig.getActionUrl(), param));
|
|
|
- } else if (sysMessageConfig.getAction().equals("app")) {
|
|
|
- sysMessageConfig.setParams(MessageFormatter.arrayFormat(sysMessageConfig.getParams(), param));
|
|
|
- }
|
|
|
- JumpUrlDto jumpUrlDto = new JumpUrlDto();
|
|
|
- jumpUrlDto.setAction(sysMessageConfig.getAction());
|
|
|
- jumpUrlDto.setUrl(sysMessageConfig.getActionUrl());
|
|
|
- jumpUrlDto.setPageTag(sysMessageConfig.getPageTag());
|
|
|
- jumpUrlDto.setParams(sysMessageConfig.getParams());
|
|
|
- if (StringUtils.isNotBlank(jumpType) && ClientEnum.TENANT_STUDENT.getCode().equals(jumpType)) {
|
|
|
- jumpUrlDto.setClientType("TENANT");
|
|
|
- }
|
|
|
- return JSON.toJSONString(jumpUrlDto);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SysMessageWrapper.MessageUnreadStat> userMessageUnreadStat(SysMessageWrapper.SysMessageQuery query) {
|
|
|
- return sysMessageDao.selectMessageUnreadStat(query);
|
|
|
+ public com.yonge.toolset.base.page.PageInfo<SysMessage> queryListPage(SysMessageQueryInfo queryInfo) {
|
|
|
+ CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
|
|
|
+ query.setPage(queryInfo.getPage());
|
|
|
+ query.setRows(queryInfo.getRows());
|
|
|
+ query.setUserId(queryInfo.getUserId());
|
|
|
+ query.setStatus(ESendStatus.SUCCESSED);
|
|
|
+ query.setAppKey(EAppKey.KLX);
|
|
|
+ query.setSendMode(queryInfo.getType() == null?null:queryInfo.getType() == 1? EMessageSendMode.SMS :
|
|
|
+ queryInfo.getType() == 2?EMessageSendMode.EMAIL:
|
|
|
+ queryInfo.getType() == 3?EMessageSendMode.PUSH:EMessageSendMode.SEO);
|
|
|
+ query.setTitle(queryInfo.getTitle());
|
|
|
+ query.setClientId(queryInfo.getClientId());
|
|
|
+ query.setReadStatus(queryInfo.getReadStatus() == null?null:queryInfo.getReadStatus()==1);
|
|
|
+ query.setGroup(queryInfo.getGroup());
|
|
|
+ R<PageInfo<CbsMessageWrapper.SysMessage>> pageInfoR = messageFeignClientService.sysMessagePage(query);
|
|
|
+ PageInfo<CbsMessageWrapper.SysMessage> pageInfo = pageInfoR.feignData();
|
|
|
+ List<SysMessage> sysMessages = new ArrayList<>();
|
|
|
+ if(CollectionUtils.isNotEmpty(pageInfo.getRows())){
|
|
|
+ pageInfo.getRows().forEach(sysMessage -> {
|
|
|
+ SysMessage message = new SysMessage();
|
|
|
+ message.setId(sysMessage.getId());
|
|
|
+ message.setTitle(sysMessage.getTitle());
|
|
|
+ message.setContent(sysMessage.getContent());
|
|
|
+ if(sysMessage.getSendMode() != null){
|
|
|
+ message.setType(sysMessage.getSendMode() == EMessageSendMode.SMS?MessageSendMode.SMS:
|
|
|
+ sysMessage.getSendMode() == EMessageSendMode.EMAIL?MessageSendMode.EMAIL:
|
|
|
+ sysMessage.getSendMode() == EMessageSendMode.PUSH?MessageSendMode.PUSH:MessageSendMode.SEO);
|
|
|
+ }
|
|
|
+ if(sysMessage.getStatus() != null){
|
|
|
+ message.setStatus(sysMessage.getStatus() == ESendStatus.FAILED?SendStatusEnum.FAILED:
|
|
|
+ sysMessage.getStatus() == ESendStatus.SENDING?SendStatusEnum.SENDING:
|
|
|
+ sysMessage.getStatus() == ESendStatus.SUCCESSED?SendStatusEnum.SUCCESSED:SendStatusEnum.WAIT);
|
|
|
+ }
|
|
|
+ message.setReceiver(sysMessage.getReceiver());
|
|
|
+ message.setSendTime(sysMessage.getSendTime());
|
|
|
+ message.setErrorMsg(sysMessage.getErrorMsg());
|
|
|
+ message.setCreateOn(sysMessage.getCreateTime());
|
|
|
+ message.setModifyOn(sysMessage.getUpdateTime());
|
|
|
+ message.setUserId(sysMessage.getUserId());
|
|
|
+ message.setMessageConfigId(sysMessage.getMessageConfigId());
|
|
|
+ message.setSubType(sysMessage.getSubType());
|
|
|
+ message.setMemo(sysMessage.getMemo());
|
|
|
+ if (sysMessage.getReadStatus() != null){
|
|
|
+ message.setReadStatus(sysMessage.getReadStatus()?1:0);
|
|
|
+ }
|
|
|
+ message.setGroup(sysMessage.getGroup());
|
|
|
+ message.setClientId(sysMessage.getClientId());
|
|
|
+ message.setImg(sysMessage.getIcon());
|
|
|
+ sysMessages.add(message);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return PageUtil.pageInfo(pageInfo,sysMessages);
|
|
|
}
|
|
|
}
|