|
@@ -0,0 +1,110 @@
|
|
|
+package com.fdkankan.fusion.mq.consumer;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.fdkankan.fusion.entity.CaseEntity;
|
|
|
+import com.fdkankan.fusion.entity.ScenePlus;
|
|
|
+import com.fdkankan.fusion.entity.ScenePlusExt;
|
|
|
+import com.fdkankan.fusion.entity.User;
|
|
|
+import com.fdkankan.fusion.mq.vo.LaserSceneGpsVo;
|
|
|
+import com.fdkankan.fusion.request.CaseParam;
|
|
|
+import com.fdkankan.fusion.request.SceneNumParam;
|
|
|
+import com.fdkankan.fusion.service.*;
|
|
|
+import com.rabbitmq.client.Channel;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.amqp.core.Message;
|
|
|
+import org.springframework.amqp.rabbit.annotation.Queue;
|
|
|
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import scala.Int;
|
|
|
+
|
|
|
+import javax.swing.*;
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class CaseAddSceneConsumer {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IScenePlusService scenePlusService;
|
|
|
+ @Autowired
|
|
|
+ ICaseService caseService;
|
|
|
+ @Autowired
|
|
|
+ IUserService userService;
|
|
|
+
|
|
|
+ @RabbitListener(
|
|
|
+ queuesToDeclare = @Queue("${queue.fusion.case-add:queue-aj-add-scene}")
|
|
|
+ )
|
|
|
+ public void consumerQueue(Channel channel, Message message) {
|
|
|
+ try {
|
|
|
+ String messageId = message.getMessageProperties().getMessageId();
|
|
|
+ String msg = new String(message.getBody(), StandardCharsets.UTF_8);
|
|
|
+ log.info("queue-aj-add-scene-mq--messageId:{},msg:{}",messageId,msg);
|
|
|
+
|
|
|
+ channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
|
|
+ JSONObject jsonObject = JSON.parseObject(msg);
|
|
|
+ String num = jsonObject.getString("num");
|
|
|
+ String kNumber = jsonObject.getString("caseId");
|
|
|
+
|
|
|
+ ScenePlus scenePlus = scenePlusService.getByNum(num);
|
|
|
+ if(scenePlus == null){
|
|
|
+ log.info("queue-aj-add-scene------场景为空:{},{}",num,kNumber);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ CaseEntity caseEntity = caseService.getKnumber(kNumber);
|
|
|
+ if(caseEntity == null){
|
|
|
+ User user = userService.getById(scenePlus.getUserId());
|
|
|
+ caseEntity = new CaseEntity();
|
|
|
+ caseEntity.setCaseTitle(kNumber);
|
|
|
+ caseEntity.setUserName(user.getUserName());
|
|
|
+ caseService.save(caseEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ CaseParam caseParam = new CaseParam();
|
|
|
+ caseParam.setCaseId(caseEntity.getCaseId());
|
|
|
+
|
|
|
+ caseParam.setSceneNumParam(getSceneParam(scenePlus));
|
|
|
+
|
|
|
+ caseService.addScene(caseParam);
|
|
|
+
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("queue-aj-add-scene------消费失败",e);
|
|
|
+ }finally {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<SceneNumParam> getSceneParam (ScenePlus scenePlus){
|
|
|
+ List<Integer> typeList = getTypeBySceneSource(scenePlus.getSceneSource());
|
|
|
+
|
|
|
+ List<SceneNumParam> params = new ArrayList<>();
|
|
|
+ for (Integer type : typeList) {
|
|
|
+ SceneNumParam sceneNumParam = new SceneNumParam();
|
|
|
+ sceneNumParam.setNumList(Arrays.asList(scenePlus.getNum()));
|
|
|
+ sceneNumParam.setType(type);
|
|
|
+ params.add(sceneNumParam);
|
|
|
+ }
|
|
|
+ return params;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Integer> getTypeBySceneSource(Integer sceneSource) {
|
|
|
+ switch (sceneSource){
|
|
|
+ case 3 : return Arrays.asList(1);
|
|
|
+ case 4 : return Arrays.asList(2,4);
|
|
|
+ case 5 : return Arrays.asList(5,6);
|
|
|
+ default: return Arrays.asList(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|