瀏覽代碼

消息管理修改消息同步MQ

ZhangManMan 2 年之前
父節點
當前提交
3537dd3d45

+ 3 - 2
src/main/java/com/sky/ioc/controller/message/MessageController.java

@@ -1,5 +1,6 @@
 package com.sky.ioc.controller.message;
 
+import com.sky.ioc.entity.domain.message.Message;
 import com.sky.ioc.service.message.MessageService;
 import com.sky.ioc.tool.ReturnMsg;
 import io.swagger.annotations.Api;
@@ -51,7 +52,7 @@ public class MessageController {
 
     @ApiOperation("修改消息")
     @PutMapping(value = "/message")
-    public ReturnMsg editMessage(@RequestParam(name = "message_id",required = true) Integer message_id) {
-        return messageService.delMessage(message_id);
+    public ReturnMsg editMessage(Message message) {
+        return messageService.editMessage(message);
     }
 }

+ 5 - 0
src/main/java/com/sky/ioc/service/message/MessageService.java

@@ -1,5 +1,6 @@
 package com.sky.ioc.service.message;
 
+import com.sky.ioc.entity.domain.message.Message;
 import com.sky.ioc.tool.ReturnMsg;
 
 public interface MessageService {
@@ -14,4 +15,8 @@ public interface MessageService {
 
     ReturnMsg delMessage(Integer id);
 
+    ReturnMsg addMessage(Message message);
+
+    ReturnMsg editMessage(Message message);
+
 }

+ 58 - 0
src/main/java/com/sky/ioc/service/message/impl/MessageServiceImpl.java

@@ -3,16 +3,22 @@ package com.sky.ioc.service.message.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sky.ioc.entity.domain.message.Message;
+import com.sky.ioc.entity.domain.system.Users;
 import com.sky.ioc.enums.MessageTypeEnums;
 import com.sky.ioc.mapper.message.MessageMapper;
+import com.sky.ioc.mapper.user.UserMapper;
 import com.sky.ioc.service.message.MessageService;
 import com.sky.ioc.tool.ReturnMsg;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.AmqpTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class MessageServiceImpl implements MessageService {
@@ -20,6 +26,12 @@ public class MessageServiceImpl implements MessageService {
     @Autowired
     MessageMapper messageMapper;
 
+    @Autowired
+    UserMapper userMapper;
+
+    @Autowired
+    AmqpTemplate amqpTemplate;
+
     @Override
     public ReturnMsg getList() {
         JSONObject json = new JSONObject();
@@ -62,4 +74,50 @@ public class MessageServiceImpl implements MessageService {
     public ReturnMsg delMessage(Integer id) {
         return ReturnMsg.ok(messageMapper.deleteById(id));
     }
+
+    @Override
+    public ReturnMsg addMessage(Message message) {
+        return null;
+    }
+
+    @Override
+    public ReturnMsg editMessage(Message message) {
+        if(message == null&&message.getId()!=null){
+            List<String> staff_list = new ArrayList<>();
+            if (message.getPipeline().equals("instation")) {
+                String staff = message.getStaff();
+                if(staff.equals("all")){
+                   staff_list = userMapper.selectList(null).stream().map(Users::getName).collect(Collectors.toList());
+
+                }else if(staff.split(":")[0].equals("company")){
+                    staff_list = userMapper.selectList(new LambdaQueryWrapper<Users>().eq(Users::getCompany,staff.split(":")[1]))
+                            .stream().map(Users::getName).collect(Collectors.toList());
+                }else if(staff.split(":")[0].equals("role")){
+                    staff_list = userMapper.selectList(new LambdaQueryWrapper<Users>().eq(Users::getRole,staff.split(":")[1]))
+                            .stream().map(Users::getName).collect(Collectors.toList());
+                }else{
+                    return ReturnMsg.fail("无效的人员配置");
+                }
+                //修改数据库
+                if(message.getSend_time().equals("immediately")){
+                    message.setSend_time(new Date()+"");
+                    JSONObject json = new JSONObject();
+                    json.put("staff",staff_list);
+                    json.put("name",message.getName());
+                    json.put("title",message.getTitle());
+                    json.put("content",message.getContent());
+                    json.put("style",message.getStyle());
+                    json.put("time",message.getSend_time());
+                    amqpTemplate.convertAndSend("message",json);
+                }
+                messageMapper.updateById(message);
+                //
+                return ReturnMsg.ok();
+            }else{
+                return ReturnMsg.fail("仅支持站内通知 instation");
+            }
+        }else{
+            return ReturnMsg.fail("消息id不能为空");
+        }
+    }
 }