RabbitMqController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.szwl.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.szwl.model.bo.JsonMessage;
  5. import com.szwl.model.entity.TEquipment;
  6. import com.szwl.service.TAdminService;
  7. import com.szwl.service.TEquipmentService;
  8. import io.swagger.annotations.Api;
  9. import org.apache.commons.lang.StringUtils;
  10. import org.springframework.amqp.core.*;
  11. import org.springframework.amqp.rabbit.core.RabbitAdmin;
  12. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.annotation.Resource;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. @Api(value = "/api/app_mq/rabbitMq", tags = {"MQ"})
  24. @RestController
  25. @RequestMapping("/api/app_mq/rabbitMq")
  26. //@RequestMapping("/rabbitMqController")
  27. public class RabbitMqController {
  28. @Autowired
  29. TEquipmentService tEquipmentService;
  30. @Autowired
  31. TAdminService tAdminService;
  32. // @Autowired
  33. // private RabbitAdmin rabbitAdmin;
  34. @Autowired
  35. private AmqpAdmin amqpAdmin;
  36. // @Autowired
  37. // private RabbitTemplate rabbitTemplate;
  38. /**
  39. *添加交换机
  40. * @param
  41. * @return
  42. */
  43. @GetMapping(value = "/addExchange.htm")
  44. @ResponseBody
  45. public String addExchange(String exchange,String type,Boolean durable){
  46. if(StringUtils.isEmpty(type)){
  47. // return JsonMessage.success("type is null");
  48. return "type is null";
  49. }
  50. if(type.equals("Direct")){
  51. // amqpAdmin.declareExchange(new DirectExchange(exchange, durable, false));
  52. amqpAdmin.declareExchange(new DirectExchange(exchange, durable, false));
  53. }
  54. if(type.equals("Topic")){
  55. amqpAdmin.declareExchange(new TopicExchange(exchange, durable, false));
  56. }
  57. if(type.equals("Fanout")){
  58. amqpAdmin.declareExchange(new FanoutExchange(exchange, durable, false));
  59. }
  60. return "成功";
  61. // return JsonMessage.success("成功");
  62. }
  63. /**
  64. *添加队列并绑定
  65. * @param
  66. * @return
  67. */
  68. @GetMapping(value = "/addQueue.htm")
  69. @ResponseBody
  70. public String addQueue(String exchange,String queue,String routingKey,Boolean durable){
  71. Map<String,Object> arg = new HashMap<>();
  72. arg.put("x-message-ttl",1800000);
  73. String queue1 = amqpAdmin.declareQueue(new Queue(queue, durable, false, false, arg));
  74. HashMap<String, Object> objectObjectHashMap = new HashMap<>();
  75. amqpAdmin.declareBinding(new Binding(queue,
  76. Binding.DestinationType.QUEUE,
  77. exchange, routingKey, objectObjectHashMap));
  78. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  79. query.eq(TEquipment::getClientId,routingKey);
  80. List<TEquipment> list = tEquipmentService.list(query);
  81. TEquipment equipment = list.get(0);
  82. equipment.setEquimentType(exchange);
  83. tEquipmentService.updateById(equipment);
  84. // return JsonMessage.success("成功");
  85. return "成功";
  86. }
  87. /**
  88. *修改信道
  89. * @param
  90. * @return
  91. */
  92. @GetMapping(value = "/updateChannel.htm")
  93. @ResponseBody
  94. public String updateChannel(String clientId,String type){
  95. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  96. query.eq(TEquipment::getClientId,clientId);
  97. List<TEquipment> list = tEquipmentService.list(query);
  98. TEquipment equipment = list.get(0);
  99. equipment.setChannel(type);
  100. tEquipmentService.updateById(equipment);
  101. // return JsonMessage.success("成功");
  102. return "成功";
  103. }
  104. }