Răsfoiți Sursa

功能-发送企业微信/站内信消息

YangL 2 ani în urmă
părinte
comite
654fe134b1

+ 77 - 0
src/main/java/com/redxun/knowledge/common/MessageService.java

@@ -0,0 +1,77 @@
+package com.redxun.knowledge.common;
+
+import com.alibaba.fastjson.JSONObject;
+import com.redxun.common.base.entity.IUser;
+import com.redxun.common.utils.ContextUtil;
+import com.redxun.dto.user.OsUserDto;
+import com.redxun.mq.MessageModel;
+import com.redxun.msgsend.util.MesAutoUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@Slf4j
+public class MessageService {
+
+    /**
+     * 发送站内信
+     *
+     * @param title    标题
+     * @param content  内容
+     * @param userDtos 接收对象(内部消息所用)
+     */
+    public boolean sendInnerMsg(String title, String content, List<OsUserDto> userDtos) {
+        return doSendMsg(title, content, "inner", userDtos);
+    }
+
+    /**
+     * 发送站内信
+     *
+     * @param title    标题
+     * @param content  内容
+     * @param userDtos 接收对象(内部消息所用)
+     */
+    public boolean sendWechatMsg(String title, String content, List<OsUserDto> userDtos) {
+        return doSendMsg(title, content, "weixin", userDtos);
+    }
+
+    /**
+     * 发送消息
+     *
+     * @param title    标题
+     * @param content  内容
+     * @param type     消息类型: inner, weixin
+     * @param userDtos 接收对象(内部消息所用)
+     * @return
+     */
+    private Boolean doSendMsg(String title, String content, String type, List<OsUserDto> userDtos) {
+        try {
+            //获取当前登录的用户
+            IUser curUser = ContextUtil.getCurrentUser();
+            OsUserDto sender = new OsUserDto();
+            sender.setUserId(curUser.getUserId());
+            sender.setFullName(curUser.getFullName());
+
+            //接收者
+            //发送消息
+            MessageModel messageModel = new MessageModel();
+            //发送人
+            messageModel.setSender(sender);
+            //消息类型
+            messageModel.setMsgType(type);
+            //标题
+            messageModel.setSubject(title);
+            //内容
+            messageModel.setContent(content);
+            //接收人
+            messageModel.setReceivers(userDtos);
+            MesAutoUtil.sendMessage(JSONObject.toJSONString(messageModel));
+        } catch (Exception e) {
+            log.error("sendMsg通知发送失败: {}", e.getMessage());
+            return false;
+        }
+        return true;
+    }
+}

+ 6 - 16
src/main/java/com/redxun/knowledge/service/KnowledgeLabelServiceImpl.java

@@ -13,6 +13,7 @@ import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.common.utils.SysUserUtil;
+import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.KnowledgeLabel;
 import com.redxun.knowledge.mapper.KnowledgeLabelMapper;
 import freemarker.template.ObjectWrapper;
@@ -31,6 +32,9 @@ import javax.annotation.Resource;
 @Service
 public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMapper, KnowledgeLabel> implements BaseService<KnowledgeLabel> {
 
+    @Resource
+    private UserService userService;
+
     @Resource
     private KnowledgeLabelMapper knowledgeLabelMapper;
 
@@ -52,11 +56,11 @@ public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMa
         KnowledgeLabel knowledgeLabel = new KnowledgeLabel();
         if (StringUtils.isEmpty(id)) {
             knowledgeLabel.setPkId(IdGenerator.getIdStr());
-            knowledgeLabel.setCreateBy(queryLoginUser());
+            knowledgeLabel.setCreateBy(userService.queryLoginUser());
             knowledgeLabel.setCreateTime(new Date());
         } else {
             knowledgeLabel.setPkId(id);
-            knowledgeLabel.setUpdateBy(queryLoginUser());
+            knowledgeLabel.setUpdateBy(userService.queryLoginUser());
             knowledgeLabel.setCreateTime(new Date());
         }
         knowledgeLabel.setName(name);
@@ -69,18 +73,4 @@ public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMa
 
         return null;
     }
-
-    private String queryLoginUser() {
-        String loginUserId = null;
-        try {
-            JPaasUser jPaasUser = SysUserUtil.getLoginUser();
-            if (jPaasUser == null) {
-                return null;
-            }
-            loginUserId = jPaasUser.getUserId();
-        } catch (IOException e) {
-            log.error(ExceptionUtil.getExceptionMessage(e));
-        }
-        return loginUserId;
-    }
 }