Эх сурвалжийг харах

消息管理新增消息同步添加MQ

ZhangManMan 2 жил өмнө
parent
commit
a9c54f2471

+ 37 - 2
src/main/java/com/sky/ioc/service/message/impl/MessageServiceImpl.java

@@ -77,12 +77,47 @@ public class MessageServiceImpl implements MessageService {
 
     @Override
     public ReturnMsg addMessage(Message message) {
-        return null;
+        if(message != 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.insert(message);
+                //
+                return ReturnMsg.ok();
+            }else{
+                return ReturnMsg.fail("仅支持站内通知 instation");
+            }
+        }else{
+            return ReturnMsg.fail("参数不能为空");
+        }
     }
 
     @Override
     public ReturnMsg editMessage(Message message) {
-        if(message == null&&message.getId()!=null){
+        if(message != null&&message.getId()!=null){
             List<String> staff_list = new ArrayList<>();
             if (message.getPipeline().equals("instation")) {
                 String staff = message.getStaff();