|
@@ -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不能为空");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|