智慧保安后台管理-外网项目备份
zhongrj
2022-08-18 38d775fa2ccd433c727a5b7cec8bed02493df1ec
src/main/java/org/springblade/modules/rabbitmq/controller/SendMessageController.java
@@ -1,81 +1,81 @@
package org.springblade.modules.rabbitmq.controller;
import lombok.AllArgsConstructor;
import org.springblade.modules.rabbitmq.config.MQsender;
import org.springblade.modules.rabbitmq.redis.TaskKey;
import org.springblade.modules.rabbitmq.redis.RedisService;
import org.springblade.modules.rabbitmq.vo.Man;
import org.springblade.modules.rabbitmq.vo.Task;
import org.springblade.modules.rabbitmq.vo.TaskMessage;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Random;
/**
 * 消息发送
 * @author zhongrj
 */
@RestController
@AllArgsConstructor
@RequestMapping("/rabbitmq")
public class SendMessageController {
   private static int count = 0;
   private final MQsender mQsender;
   private final RedisService redisService;
   @GetMapping("/sendDirectMessage")
   public String sendDirectMessage() {
      String messageData = "test message, hello!";
      mQsender.send(messageData);
      return "ok";
   }
   /**
    * 模拟抢单
    * @return
    */
   @GetMapping("/createTask")
   public String createTask(Long id ,Integer num) {
      //创建任务
      Task task = new Task();
      task.setId(id);
      task.setNum(num);
      task.setTaskName("测试");
      //将任务数量和对应的id 存入redis
      redisService.set(TaskKey.getTaskStock,""+task.getId(),task.getNum());
      //返回
      return "ok";
   }
   /**
    * 模拟抢单(不同人员同时抢)
    * @return
    */
   @GetMapping("/testSend")
   public String testSend(Long id) {
      //模拟创建人员
      Man man = new Man();
      man.setId(System.currentTimeMillis() + new Random().nextInt(1000000));
      man.setUsername("task"+ count);
      // 预减库存
      long stack = redisService.decr(TaskKey.getTaskStock,""+id);
      if (stack<0){
         return "已结束";
      }
      //入队列
      TaskMessage taskMessage = new TaskMessage();
      taskMessage.setTaskId(id);
      taskMessage.setManId(man.getId());
      //发送消息
      mQsender.sendTaskMessage(taskMessage);
      //返回
      return "ok";
   }
}
//package org.springblade.modules.rabbitmq.controller;
//
//import lombok.AllArgsConstructor;
//import org.springblade.modules.rabbitmq.config.MQsender;
//import org.springblade.modules.rabbitmq.redis.TaskKey;
//import org.springblade.modules.rabbitmq.redis.RedisService;
//import org.springblade.modules.rabbitmq.vo.Man;
//import org.springblade.modules.rabbitmq.vo.Task;
//import org.springblade.modules.rabbitmq.vo.TaskMessage;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.Random;
//
///**
// * 消息发送
// * @author zhongrj
// */
//@RestController
//@AllArgsConstructor
//@RequestMapping("/rabbitmq")
//public class SendMessageController {
//
//   private static int count = 0;
//
//   private final MQsender mQsender;
//
//   private final RedisService redisService;
//
//
//   @GetMapping("/sendDirectMessage")
//   public String sendDirectMessage() {
//      String messageData = "test message, hello!";
//      mQsender.send(messageData);
//      return "ok";
//   }
//
//   /**
//    * 模拟抢单
//    * @return
//    */
//   @GetMapping("/createTask")
//   public String createTask(Long id ,Integer num) {
//      //创建任务
//      Task task = new Task();
//      task.setId(id);
//      task.setNum(num);
//      task.setTaskName("测试");
//      //将任务数量和对应的id 存入redis
//      redisService.set(TaskKey.getTaskStock,""+task.getId(),task.getNum());
//      //返回
//      return "ok";
//   }
//
//
//   /**
//    * 模拟抢单(不同人员同时抢)
//    * @return
//    */
//   @GetMapping("/testSend")
//   public String testSend(Long id) {
//      //模拟创建人员
//      Man man = new Man();
//      man.setId(System.currentTimeMillis() + new Random().nextInt(1000000));
//      man.setUsername("task"+ count);
//      // 预减库存
//      long stack = redisService.decr(TaskKey.getTaskStock,""+id);
//      if (stack<0){
//         return "已结束";
//      }
//      //入队列
//      TaskMessage taskMessage = new TaskMessage();
//      taskMessage.setTaskId(id);
//      taskMessage.setManId(man.getId());
//      //发送消息
//      mQsender.sendTaskMessage(taskMessage);
//      //返回
//      return "ok";
//   }
//}