|
|
@@ -201,6 +201,18 @@ public class IpadSendServer {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送群公告
|
|
|
+ */
|
|
|
+ public void sendNotice(BaseVo vo, QwSopCourseFinishTempSetting.Setting content) {
|
|
|
+ WxWorkResponseDTO<WxwSendNoticeMsgRespDTO> resp = ipadSendUtils.sendNotice(vo, content.getValue());
|
|
|
+ if (resp.getErrcode() != 0) {
|
|
|
+ log.debug("ID:{}-ipad接口请求返回异常:{}", vo.getId(), resp.getErrmsg());
|
|
|
+ content.setSendStatus(2);
|
|
|
+ content.setSendRemarks("发送失败:" + resp.getErrmsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void sendImg(BaseVo vo, QwSopCourseFinishTempSetting.Setting content) {
|
|
|
FileVo imgVo = FileVo.builder().url(content.getImgUrl()).build();
|
|
|
imgVo.setBase(vo);
|
|
|
@@ -577,10 +589,63 @@ public class IpadSendServer {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 群公告判定消息
|
|
|
+ * @param qwSopLogs
|
|
|
+ * @param setting
|
|
|
+ * @param qwUser
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean isSendLogsGroupNotice(QwSopLogs qwSopLogs, QwSopCourseFinishTempSetting setting, QwUser qwUser){
|
|
|
+ // 群公告只能发给群聊
|
|
|
+ if(qwSopLogs.getSendType() != 6 && qwSopLogs.getSendType() != 21){
|
|
|
+ log.warn("群公告SOP_LOG_ID:{}, 不是群聊消息,不发送", qwSopLogs.getId());
|
|
|
+ qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "群公告只能发给群聊,不发送");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(qwSopLogs.getSendStatus() != 3){
|
|
|
+ log.info("群公告状态异常不发送:{}, LOGID: {}", qwUser.getQwUserName(), qwSopLogs.getId());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(redisCache.getCacheObject("qw:user:id:" + qwUser.getId()) != null){
|
|
|
+ log.info("群公告频率异常不发送:{}", qwUser.getQwUserName());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean noSop = qwSopLogs.getSendType() != 3 && qwSopLogs.getSendType() != 7 && qwSopLogs.getSendType() != 21;
|
|
|
+
|
|
|
+ if (qwSopLogs.getExpiryTime() == null && noSop) {
|
|
|
+ // 作废消息
|
|
|
+ log.warn("群公告SOP_LOG_ID:{}, SOP任务被删除", qwSopLogs.getId());
|
|
|
+ qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "SOP任务被删除");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ LocalDateTime sendTime = DateUtil.stringToLocalDateTime(qwSopLogs.getSendTime());
|
|
|
+ LocalDateTime expiryDateTime;
|
|
|
+
|
|
|
+ // 判断是否过期
|
|
|
+ if(qwSopLogs.getSendType() == 3 || qwSopLogs.getSendType() == 7 || qwSopLogs.getSendType() == 21){
|
|
|
+ expiryDateTime = sendTime.plusHours(12);
|
|
|
+ }else{
|
|
|
+ expiryDateTime = sendTime.plusHours(qwSopLogs.getExpiryTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (LocalDateTime.now().isAfter(expiryDateTime)) {
|
|
|
+ // 作废消息
|
|
|
+ log.warn("群公告SOP_LOG_ID:{}, 已过期,不发送", qwSopLogs.getId());
|
|
|
+ qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "已过期,不发送");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
public void send(QwSopCourseFinishTempSetting.Setting content, QwUser qwUser, QwSopLogs qwSopLogs, Map<String, FsCoursePlaySourceConfig> miniMap, BaseVo parentVo) {
|
|
|
BaseVo vo = new BaseVo();
|
|
|
vo.setId(Long.parseLong(qwSopLogs.getId()));
|
|
|
- vo.setRoom(qwSopLogs.getSendType() == 6);
|
|
|
+ vo.setRoom(qwSopLogs.getSendType() == 6 || qwSopLogs.getSendType() == 21);
|
|
|
vo.setUuid(qwUser.getUid());
|
|
|
vo.setExId(qwSopLogs.getExternalUserId());
|
|
|
vo.setServerId(qwUser.getServerId());
|
|
|
@@ -589,6 +654,10 @@ public class IpadSendServer {
|
|
|
vo.setQwUserId(qwUser.getId());
|
|
|
try {
|
|
|
content.setSendStatus(1);
|
|
|
+ if(qwSopLogs.getSendType() == 21 && "11".equals(content.getContentType())){
|
|
|
+ sendNotice(vo, content);
|
|
|
+ return;
|
|
|
+ }
|
|
|
switch (content.getContentType()) {
|
|
|
case "1":
|
|
|
// 文本
|