This commit is contained in:
张良(004796)
2024-02-06 16:56:03 +08:00
parent c827dbc0aa
commit 90356b55c8
40 changed files with 622 additions and 121 deletions

View File

@@ -20,9 +20,8 @@ import com.ruoyi.cai.enums.systempush.*;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.SysPushMapper;
import com.ruoyi.cai.mq.AmqpProducer;
import com.ruoyi.cai.mq.CommonDelayTypeEnum;
import com.ruoyi.cai.mq.dto.CommonDelayDto;
import com.ruoyi.cai.mq.handle.dto.SysPushNotifyDTO;
import com.ruoyi.cai.mq.handleDelay.dto.SysPushDelayDto;
import com.ruoyi.cai.notice.data.NoticeMsgR;
import com.ruoyi.cai.notice.data.NoticeOnlyImageR;
import com.ruoyi.cai.notice.data.NoticeR;
@@ -38,7 +37,7 @@ import com.ruoyi.cai.util.CaiDateUtil;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.BeanConvertUtil;
import com.ruoyi.yunxin.Yunxin;
import com.ruoyi.yunxin.enums.ImTypeEnum;
import com.ruoyi.yunxin.enums.YxImTypeEnum;
import com.ruoyi.yunxin.resp.YxCommonR;
import com.ruoyi.yunxin.resp.YxDataR;
import lombok.extern.slf4j.Slf4j;
@@ -179,9 +178,8 @@ public class SysPushServiceImpl extends ServiceImpl<SysPushMapper, SysPush> impl
try {
// 小于 < 12小时
long between = CaiDateUtil.diff(sysPush.getSendTime(), LocalDateTime.now());
CommonDelayDto dto = new CommonDelayDto();
SysPushDelayDto dto = new SysPushDelayDto();
dto.setSysPushId(sysPush.getId());
dto.setType(CommonDelayTypeEnum.SYS_PUSH.getCode());
amqpProducer.sendCommonDelayMq(dto,(int)between+2);
}catch (Exception e){
log.error("系统推送任务发送失败!",e);
@@ -321,21 +319,21 @@ public class SysPushServiceImpl extends ServiceImpl<SysPushMapper, SysPush> impl
}
String content = sysPush.getContent();
Object body;
ImTypeEnum imTypeEnum;
YxImTypeEnum yxImTypeEnum;
switch (systemPushType){
case SIMPLE_TEXT:
body = JSON.parseObject(content, NoticeMsgR.class);
imTypeEnum = ImTypeEnum.TXT;
yxImTypeEnum = YxImTypeEnum.TXT;
break;
case TEXT:
NoticeR<ExtNoticeData> noticeR = JSON.parseObject(content, new TypeReference<NoticeR<ExtNoticeData>>() {});
noticeR.getData().setCurrentDate();
body = noticeR;
imTypeEnum = ImTypeEnum.CUSTOM;
yxImTypeEnum = YxImTypeEnum.CUSTOM;
break;
case SIMPLE_IMAGE_TEXT:
NoticeR<SimpleImageTextData> simpleImageTextR = JSON.parseObject(content, new TypeReference<NoticeR<SimpleImageTextData>>() {});
imTypeEnum = ImTypeEnum.CUSTOM;
yxImTypeEnum = YxImTypeEnum.CUSTOM;
SimpleImageTextData data = simpleImageTextR.getData();
if(data.getImage() != null){
data.setImage(cosUrl+data.getImage());
@@ -352,7 +350,7 @@ public class SysPushServiceImpl extends ServiceImpl<SysPushMapper, SysPush> impl
}
}
body = multipleImageTextR;
imTypeEnum = ImTypeEnum.CUSTOM;
yxImTypeEnum = YxImTypeEnum.CUSTOM;
break;
case ONLY_IMAGE:
NoticeOnlyImageR imageR = JSON.parseObject(content, NoticeOnlyImageR.class);
@@ -360,12 +358,12 @@ public class SysPushServiceImpl extends ServiceImpl<SysPushMapper, SysPush> impl
imageR.setUrl(cosUrl+imageR.getUrl());
}
body = imageR;
imTypeEnum = ImTypeEnum.IMAGE;
yxImTypeEnum = YxImTypeEnum.IMAGE;
break;
default:
throw new ServiceException("消息类型有误");
}
YxDataR<YxCommonR> r = yunxin.batchSendToNotice(userIds, body, null, imTypeEnum);
YxDataR<YxCommonR> r = yunxin.batchSendToNotice(userIds, body, null, yxImTypeEnum);
SendSysPushResp resp = new SendSysPushResp();
resp.setImResp(r);
return resp;
@@ -413,9 +411,8 @@ public class SysPushServiceImpl extends ServiceImpl<SysPushMapper, SysPush> impl
// < 12小时
long between = CaiDateUtil.diff(sysPush.getSendTime(),LocalDateTime.now());
if(between > 0 && between < 60*60*12){
CommonDelayDto dto = new CommonDelayDto();
dto.setForbidId(expireId);
dto.setType(CommonDelayTypeEnum.SYS_PUSH.getCode());
SysPushDelayDto dto = new SysPushDelayDto();
dto.setSysPushId(sysPush.getId());
amqpProducer.sendCommonDelayMq(dto,(int)between+5);
}
}

View File

@@ -14,7 +14,9 @@ import com.ruoyi.cai.manager.ForbidCache;
import com.ruoyi.cai.mapper.UserForbidMapper;
import com.ruoyi.cai.mq.AmqpProducer;
import com.ruoyi.cai.mq.CommonDelayTypeEnum;
import com.ruoyi.cai.mq.dto.CommonDelayDto;
import com.ruoyi.cai.mq.handleDelay.CommonDelayDto;
import com.ruoyi.cai.mq.handleDelay.dto.ForbidDelayDto;
import com.ruoyi.cai.mq.handleDelay.dto.SysPushDelayDto;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserInfoService;
@@ -88,9 +90,8 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
try {
// 12小时
long between = CaiDateUtil.diff(one.getEndTime(), LocalDateTime.now());
CommonDelayDto dto = new CommonDelayDto();
ForbidDelayDto dto = new ForbidDelayDto();
dto.setForbidId(one.getId());
dto.setType(CommonDelayTypeEnum.USER_FORBID.getCode());
amqpProducer.sendCommonDelayMq(dto,(int)between+2);
}catch (Exception e){
log.error("用户封禁延时任务发送失败!",e);