lyhzzz 6 months ago
parent
commit
387babf975

+ 3 - 0
src/main/java/com/fdkankan/manage/entity/ScenePlus.java

@@ -58,6 +58,9 @@ public class ScenePlus implements Serializable {
     @TableField("title")
     private String title;
 
+    @TableField("laser_title")
+    private String laserTitle;
+
     /**
      * 场景描述
      */

+ 3 - 0
src/main/java/com/fdkankan/manage/entity/ScenePro.java

@@ -30,6 +30,9 @@ public class ScenePro implements Serializable {
     @TableField("scene_name")
     private String sceneName;
 
+    @TableField("laser_title")
+    private String laserTitle;
+
     /**
      * 场景描述
      */

+ 57 - 0
src/main/java/com/fdkankan/manage/mq/consumer/LaserSceneTitleConsumer.java

@@ -0,0 +1,57 @@
+package com.fdkankan.manage.mq.consumer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.manage.mq.param.LaserSceneTitleVo;
+import com.fdkankan.manage.service.IScenePlusService;
+import com.fdkankan.manage.service.ISceneProService;
+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 java.nio.charset.StandardCharsets;
+
+/**
+ * 场景封存解封 mq
+ */
+@Slf4j
+@Component
+public class LaserSceneTitleConsumer {
+
+
+    @Autowired
+    ISceneProService sceneProService;
+
+    @Autowired
+    IScenePlusService scenePlusService;
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.laser.update-scene.title:laser-update-scene-title}")
+    )
+    public void consumerQueue(Channel channel, Message message)  {
+        try {
+            String messageId = message.getMessageProperties().getMessageId();
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            log.info("laser-update-scene-title-mq--messageId:{},msg:{}",messageId,msg);
+
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+
+            LaserSceneTitleVo vo = JSONObject.parseObject(msg, LaserSceneTitleVo.class);
+            if(vo == null || StringUtils.isBlank(vo.getSceneNum()) || StringUtils.isBlank(vo.getSceneNewTitle())){
+                return;
+            }
+            sceneProService.updateTitleByNum(vo.getSceneNum(),vo.getSceneNewTitle());
+            scenePlusService.updateTitleByNum(vo.getSceneNum(),vo.getSceneNewTitle());
+
+        }catch (Exception e){
+            log.info("laser-scene-title-----消费失败",e);
+        }finally {
+
+        }
+
+    }
+
+}

+ 12 - 0
src/main/java/com/fdkankan/manage/mq/param/LaserSceneTitleVo.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.mq.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class LaserSceneTitleVo implements Serializable {
+    private String sceneNum;
+    private String sceneNewTitle;
+
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IScenePlusService.java

@@ -39,4 +39,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     List<ScenePlus> getByUserIds(List<Long> userIds);
 
     List<ScenePlus> getByUserIdsAndLocation(List<Long> userIds, Integer location);
+
+    void updateTitleByNum(String sceneNum, String sceneNewTitle);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/ISceneProService.java

@@ -63,4 +63,6 @@ public interface ISceneProService extends IService<ScenePro> {
     Object getRestStoreProcess(String num);
 
     void restStoreSuccess(String num);
+
+    void updateTitleByNum(String sceneNum, String sceneNewTitle);
 }

+ 8 - 0
src/main/java/com/fdkankan/manage/service/impl/ScenePlusServiceImpl.java

@@ -133,4 +133,12 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         }
         return this.getBaseMapper().getByUserIdsAndLocation(userIds,location);
     }
+
+    @Override
+    public void updateTitleByNum(String sceneNum, String sceneNewTitle) {
+        LambdaUpdateWrapper<ScenePlus> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(ScenePlus::getNum,sceneNum);
+        updateWrapper.set(ScenePlus::getLaserTitle,sceneNewTitle);
+        this.update(updateWrapper);
+    }
 }

+ 11 - 17
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -28,6 +28,7 @@ import com.fdkankan.manage.mq.param.SceneRestStoreVo;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.util.CameraUtils;
 import com.fdkankan.manage.util.DateUtils;
+import com.fdkankan.manage.util.NumTypeUtils;
 import com.fdkankan.manage.util.SceneStatusUtil;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.*;
@@ -234,23 +235,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
         }
         HashMap<String, JSONObject> laserMap = new HashMap<>();
-        if(param.getType() == 2 && StringUtils.isNotBlank(param.getSceneName())){
-            laserMap = laserService.list(param.getSceneName(), 4);
-            if(laserMap.isEmpty()){
-                return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
-            }
-            param.setSceneName(null);
-        }
-        if(param.getType() == 6 && StringUtils.isNotBlank(param.getSceneName())){
-            laserMap = laserService.list(param.getSceneName(), 5);
-            param.setSceneName(null);
-            if(laserMap.isEmpty()){
-                return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
-            }
-        }
-        if(!laserMap.isEmpty()){
-            Set<String> keySet = laserMap.keySet();
-            param.setNumList(new ArrayList<>(keySet));
+        if(param.getType()!=null){
+            param.setIsLaser(NumTypeUtils.isLaser(param.getType()));
         }
 
         Page<SceneVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
@@ -950,4 +936,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         wrapper.in(ScenePro::getStatus,0,-2);
         return this.count(wrapper);
     }
+
+    @Override
+    public void updateTitleByNum(String sceneNum, String sceneNewTitle) {
+        LambdaUpdateWrapper<ScenePro> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(ScenePro::getNum,sceneNum);
+        updateWrapper.set(ScenePro::getLaserTitle,sceneNewTitle);
+        this.update(updateWrapper);
+    }
 }

+ 20 - 0
src/main/java/com/fdkankan/manage/util/NumTypeUtils.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.util;
+
+public class NumTypeUtils {
+
+    public static Boolean isLaser(Integer type){
+        switch (type){
+            case 0:
+            case 1:
+            case 3:
+            case 4:
+            case 5:
+            case 7:
+                return false;
+            case 2:
+            case 6:
+                return true;
+        }
+        return false;
+    }
+}

+ 1 - 0
src/main/java/com/fdkankan/manage/vo/request/SceneParam.java

@@ -39,6 +39,7 @@ public class SceneParam extends RequestBase {
     private Integer shootCountMax;
     private List<Integer> locations;
     private Integer locationType;
+    private Boolean isLaser;
 
     private List<String> numList = new ArrayList<>();
     public String getStartTime() {

+ 1 - 0
src/main/java/com/fdkankan/manage/vo/response/SceneVo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 @Data
 public class SceneVo {
     private String sceneName;       //场景标题
+    private String laserTitle;       //场景标题
     private String num;             //场景码
     private String createTime;      //拍摄时间
     private String snCode;          //相机sn码

+ 10 - 4
src/main/resources/mapper/manage/SceneProMapper.xml

@@ -24,12 +24,15 @@
         SELECT * FROM(
         select s.scene_name ,s.num,s.create_time,s.space as sceneSize
         ,s.view_count,s.status,s.pay_status,'v3' as scene_version ,s.web_site , s.thumb
-        ,null as algorithmTime,data_source,s.shoot_count,s.gps,s.user_id,s.camera_id,s.compute_time,null as location,null as mixture
+        ,null as algorithmTime,data_source,s.shoot_count,s.gps,s.user_id,s.camera_id,s.compute_time,null as location,null as mixture,s.laser_title
         from t_scene_pro s
         <include refid="commonWhere"></include>
-        <if test="param.sceneName != null and param.sceneName!='' ">
+        <if test="param.isLaser ==0 and param.sceneName != null and param.sceneName!='' ">
             and s.scene_name like concat ('%',#{param.sceneName},'%')
         </if>
+        <if test="param.isLaser ==1 and param.sceneName != null and param.sceneName!='' ">
+            and s.laser_title like concat ('%',#{param.sceneName},'%')
+        </if>
         <if test="param.shootCountMin != null  ">
             and s.shoot_count &gt;= #{param.shootCountMin}
         </if>
@@ -43,13 +46,16 @@
         UNION ALL
         select s.title as sceneName ,s.num,s.create_time,e.space as sceneSize
         ,e.view_count,s.scene_status as status,s.pay_status,'v4' as scene_version,e.web_site,e.thumb
-        ,algorithm_time,data_source,e.shoot_count,e.gps,s.user_id,s.camera_id,e.compute_time,e.location,e.mixture
+        ,algorithm_time,data_source,e.shoot_count,e.gps,s.user_id,s.camera_id,e.compute_time,e.location,e.mixture,s.laser_title
         from t_scene_plus s
         left join t_scene_plus_ext e on s.id = e.plus_id
         <include refid="commonWhere"></include>
-        <if test="param.sceneName != null and param.sceneName!='' ">
+        <if test="param.isLaser ==0 and param.sceneName != null and param.sceneName!='' ">
             and s.title like concat ('%',#{param.sceneName},'%')
         </if>
+        <if test="param.isLaser ==1 and param.sceneName != null and param.sceneName!='' ">
+            and s.laser_title like concat ('%',#{param.sceneName},'%')
+        </if>
         <if test="param.shootCountMin != null  ">
             and e.shoot_count &gt;= #{param.shootCountMin}
         </if>