Forráskód Böngészése

知识库评论发送通知

chenguangyu 1 éve
szülő
commit
0f4555f34a

+ 31 - 0
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/feign/KnowledegHysitx.java

@@ -0,0 +1,31 @@
+package com.rongwei.bscommon.sys.feign;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.MailDo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * Hysitx class
+ *
+ * @author XH
+ * @date 2023/05/30
+ */
+@Component
+public class KnowledegHysitx implements  KnowledgeCommonFeginClient{
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Override
+    public void sendNotify(SysNotifyAnnounceVo sysNotifyAnnounceVo) {
+        log.error("发送消息通知失败!通知内容为:{}", sysNotifyAnnounceVo);
+    }
+
+    @Override
+    public R sendHtmlMail(MailDo mailDo) {
+        log.error("邮件发送失败,数据为{}",mailDo);
+        return R.error();
+    }
+}

+ 21 - 0
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/feign/KnowledgeCommonFeginClient.java

@@ -0,0 +1,21 @@
+package com.rongwei.bscommon.sys.feign;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.MailDo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+@FeignClient(value = "rw-common-server",fallback = KnowledegHysitx.class,contextId = "commonFeign")
+public interface KnowledgeCommonFeginClient {
+    @PostMapping("sys/sysnotifyannounce/saveOrUpdate")
+    void sendNotify(@RequestBody SysNotifyAnnounceVo sysNotifyAnnounceVo);
+
+    @PostMapping("/mail/sendHtmlMail")
+    R sendHtmlMail(@RequestBody MailDo Mail);
+}

+ 5 - 6
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/service/impl/KnowledgebaseCommentsServiceImpl.java

@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.KnowledgebaseCommentsDao;
 import com.rongwei.bscommon.sys.service.KnowledgebaseCommentsService;
+import com.rongwei.bscommon.sys.utils.KnowledgeSystemUtils;
 import com.rongwei.bsentity.domain.KnowledgebaseCommentsDo;
 import com.rongwei.bsentity.enums.KnowledgeInfo;
 import com.rongwei.rwcommon.base.R;
@@ -10,10 +11,8 @@ import com.rongwei.rwcommon.utils.SecurityUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author ChenGuangYu
@@ -61,8 +60,8 @@ public class KnowledgebaseCommentsServiceImpl extends ServiceImpl<KnowledgebaseC
         if ("y".equals(authornotification)) {//系统消息通知作者
             List<String> personnelIdList = new ArrayList<>();
             personnelIdList.add(authorid);
-//            CXCommonUtils.sendNotify(String.format(NOTIFICATION_TITLE,title),commentcontent,
-//                    "", personnelIdList, "", "knowledgebase");
+            KnowledgeSystemUtils.sendNotify(String.format(NOTIFICATION_TITLE,title), commentcontent,
+                    "", personnelIdList, "", "knowledge");
         }
         return R.ok();
     }

+ 90 - 0
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/utils/KnowledgeSystemUtils.java

@@ -0,0 +1,90 @@
+package com.rongwei.bscommon.sys.utils;
+
+import com.rongwei.bscommon.sys.feign.KnowledgeCommonFeginClient;
+import com.rongwei.commonservice.serial.service.SysSerialNumberService;
+import com.rongwei.commonservice.service.RedisService;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class KnowledgeSystemUtils {
+    private static final Logger log = LoggerFactory.getLogger(KnowledgeSystemUtils.class.getName());
+    @Autowired
+    private RedisService autoRedisService;
+    @Autowired
+    private KnowledgeCommonFeginClient autoKnowledgeCommonFeginClient;
+    @Autowired
+    private SysSerialNumberService autoSysSerialNumberService;
+
+    private static SysSerialNumberService sysSerialNumberService;
+
+    private static RedisService redisService;
+
+    private static KnowledgeCommonFeginClient knowledgeCommonFeginClient;
+    public static final String DEFAULT_NOTIFY_STATUS = "3";
+
+    @PostConstruct
+    public void info() {
+        redisService = autoRedisService;
+        knowledgeCommonFeginClient = autoKnowledgeCommonFeginClient;
+        sysSerialNumberService = autoSysSerialNumberService;
+    }
+
+    /**
+     * 发送通知信息
+     */
+    public static void sendNotify(String title, String content, String remark, List<String> recipientIds) {
+        sendNotify(title, content, remark, recipientIds, null);
+    }
+
+    /**
+     * 发送通知信息
+     */
+    public static void sendNotify(String title, String content, String remark,
+                                  List<String> recipientIds, String roption) {
+        sendNotify(title, content, remark, recipientIds, roption, DEFAULT_NOTIFY_STATUS);
+    }
+
+    /**
+     * 发送通知信息
+     * @param title 标题
+     * @param content 内容
+     * @param remark 备注
+     * @param recipientIds 接收人
+     * @param roption 主键ID
+     * @param notifyStatus 通知类型
+     */
+    public static void sendNotify(String title, String content, String remark,
+                                  List<String> recipientIds, String roption, String notifyStatus) {
+        if (recipientIds == null || recipientIds.isEmpty()) {
+            log.debug("接收人ID为空");
+            return;
+        }
+        SysNotifyAnnounceVo sysNotifyAnnounceVo = new SysNotifyAnnounceVo();
+        sysNotifyAnnounceVo.setId(SecurityUtil.getUUID());
+        sysNotifyAnnounceVo.setSenderid("8672bf72ab274bec83052868ae336b38");
+        sysNotifyAnnounceVo.setNotifytype(notifyStatus);
+        sysNotifyAnnounceVo.setNotifystatus(DEFAULT_NOTIFY_STATUS);
+        sysNotifyAnnounceVo.setNotifytitle(title);
+        sysNotifyAnnounceVo.setNotifycontent(content.replace("null"," "));
+        sysNotifyAnnounceVo.setRemark(remark);
+        // 特殊处理
+        if (StringUtils.isNotBlank(roption)) {
+            sysNotifyAnnounceVo.setRoption(roption);
+        }
+        sysNotifyAnnounceVo.setUserid(recipientIds.stream().distinct().collect(Collectors.joining(",")));
+        log.debug("开始通过fegin发送消息通知: {}", sysNotifyAnnounceVo);
+        knowledgeCommonFeginClient.sendNotify(sysNotifyAnnounceVo);
+    }
+
+
+}