|
@@ -1,53 +1,38 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Map.Entry;
|
|
|
-import java.util.Random;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.JumpUrlDto;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
-import com.yonge.toolset.base.string.MessageFormatter;
|
|
|
-import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
|
|
|
-
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-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 com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
-import com.yonge.cooleshow.biz.dal.dao.SysConfigDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.SysMessageDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.SysMessageDto;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.JumpUrlDto;
|
|
|
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.toolset.mybatis.dal.BaseDAO;
|
|
|
import com.yonge.cooleshow.common.entity.Mapper;
|
|
|
-import com.yonge.toolset.base.exception.BizException;
|
|
|
-import com.yonge.toolset.base.page.PageInfo;
|
|
|
-import com.yonge.toolset.base.page.QueryInfo;
|
|
|
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 com.yonge.toolset.utils.collection.MapUtil;
|
|
|
-
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+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 java.util.*;
|
|
|
+import java.util.Map.Entry;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
@Service
|
|
|
public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
|
|
|
|
|
@@ -62,8 +47,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
@Autowired
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
@Autowired
|
|
|
- private SysConfigDao sysConfigDao;
|
|
|
- @Autowired
|
|
|
private RedisCache<String, Object> redisCache;
|
|
|
// 验证码有效期
|
|
|
public static final int CODE_EXPIRE = 60 * 5;
|
|
@@ -87,26 +70,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
return sysMessageDao;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public PageInfo<SysMessageDto> queryListPage(QueryInfo queryInfo) {
|
|
|
- PageInfo<SysMessageDto> pageInfo = new PageInfo<SysMessageDto>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
- Map<String, Object> params = new HashMap<String, Object>();
|
|
|
- MapUtil.populateMap(params, queryInfo);
|
|
|
-
|
|
|
- List<SysMessageDto> dataList = null;
|
|
|
- int count = this.findCount(params);
|
|
|
- if (count > 0) {
|
|
|
- pageInfo.setTotal(count);
|
|
|
- params.put("offset", pageInfo.getOffset());
|
|
|
- dataList = sysMessageDao.queryListPage(params);
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<SysMessageDto>();
|
|
|
- }
|
|
|
- pageInfo.setRows(dataList);
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 添加消息
|
|
|
* @param subject 消息主题
|
|
@@ -165,52 +128,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
return sysMessageDao.batchInsert(messages);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public int updateMessage(SysMessage message) {
|
|
|
- return sysMessageDao.update(message);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean batchSeoMessage(Set<Long> userIds, MessageTypeEnum messageType,String memo, Object... args) {
|
|
|
- if(userIds != null){
|
|
|
- userIds.removeAll(Collections.singleton(null));
|
|
|
- }
|
|
|
- if (userIds == null || userIds.size() == 0) {
|
|
|
- LOGGER.error("接收地址不能为空");
|
|
|
- return false;
|
|
|
- }
|
|
|
- SysMessageConfig messageConfig = sysMessageConfigService.queryByType(messageType.getCode());
|
|
|
- if (messageConfig == null) {
|
|
|
- throw new BizException("消息类型错误");
|
|
|
- }else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
|
|
|
- return true;
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
- SendStatusEnum status = SendStatusEnum.SUCCESSED;
|
|
|
- String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
|
|
|
- SysMessage message = null;
|
|
|
-
|
|
|
- List<SysMessage> messages = new ArrayList<>();
|
|
|
- for (Long userId : userIds) {
|
|
|
- message = new SysMessage();
|
|
|
- message.setUserId(userId);
|
|
|
- message.setContent(content);
|
|
|
- message.setCreateOn(date);
|
|
|
- message.setModifyOn(date);
|
|
|
- message.setReceiver(userId.toString());
|
|
|
- message.setSendTime(date);
|
|
|
- message.setStatus(status);
|
|
|
- message.setType(MessageSendMode.SEO);
|
|
|
- message.setTitle(messageConfig.getDescription());
|
|
|
- message.setReadStatus(0);
|
|
|
- message.setMemo(memo);
|
|
|
- message.setGroup(messageConfig.getGroup());
|
|
|
- messages.add(message);
|
|
|
- }
|
|
|
- sysMessageDao.batchInsert(messages);
|
|
|
- return true;
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
|
|
@@ -338,45 +255,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void batchPushMessage(MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
|
|
|
- String url,String jpushType,String sound,String channelId, Object... args) {
|
|
|
- if (receivers == null || receivers.size() == 0) {
|
|
|
- throw new BizException("接收地址不能为空");
|
|
|
- }
|
|
|
- String[] 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){
|
|
|
- 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.JIGUANG)) {
|
|
|
- errorMsg = messageSenderPluginContext.batchSend(MessageSender.JIGUANG, messageConfig.getDescription(),
|
|
|
- MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,sound,channelId);
|
|
|
- if (StringUtils.isEmpty(errorMsg)) {
|
|
|
- status = SendStatusEnum.SUCCESSED;
|
|
|
- } else {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- status = SendStatusEnum.FAILED;
|
|
|
- errorMsg = e.getMessage();
|
|
|
- LOGGER.warn("消息发送失败", e);
|
|
|
- }
|
|
|
- }
|
|
|
- addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
|
|
|
- url, messageConfig.getGroup(),jpushType,messageConfig.getId());
|
|
|
- }
|
|
|
-
|
|
|
- @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)) {
|
|
@@ -448,14 +326,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void delSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
|
|
|
- String key = getVerificationCodeCacheKey(type, mobileNOOrEmailAddr);
|
|
|
- if (StringUtils.isNotBlank(key)) {
|
|
|
- redisCache.delete(key);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
public List<Mapper> queryCountOfUnread(MessageSendMode type, Long userId, String jpushType) {
|
|
|
return sysMessageDao.queryCountOfUnread(type, userId, jpushType);
|
|
|
|