lyhzzz 3 years ago
parent
commit
6588d8aa9e

+ 2 - 2
src/main/java/com/fdkankan/ucenter/controller/api/VoidController.java

@@ -19,11 +19,11 @@ public class VoidController {
      * type  2计算失败
      */
     @GetMapping("/scene/status")
-    public Result setStatus(@RequestParam(required = false) String num,
+    public Result setStatus(@RequestParam(required = false) Long plusId,
                             @RequestParam(required = false) Integer type,
                             @RequestHeader String token){
 
-        scenePlusVoidService.setStatus(num,type,token);
+        scenePlusVoidService.setStatus(plusId,type,token);
         return Result.success();
     }
 

+ 3 - 5
src/main/java/com/fdkankan/ucenter/entity/ScenePlusVoid.java

@@ -27,11 +27,6 @@ public class ScenePlusVoid implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    /**
-     * 场景码
-     */
-    @TableField("num")
-    private String num;
 
     /**
      * 0计算中,1计算完成,2计算失败
@@ -42,6 +37,9 @@ public class ScenePlusVoid implements Serializable {
     @TableField("user_id")
     private Long userId;
 
+    @TableField("plus_id")
+    private Long plusId;
+
     @TableField("create_time")
     private Date createTime;
 

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

@@ -35,4 +35,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     ScenePlus getByNum(String sceneNum);
 
     void copyV4Scene(ScenePlus scenePlus,String newNum, CameraDetail cameraDetail) throws IOException, Exception;
+
+    List<ScenePlus> getByIds(List<Long> plusIds);
 }

+ 6 - 1
src/main/java/com/fdkankan/ucenter/service/IScenePlusVoidService.java

@@ -5,6 +5,9 @@ import com.fdkankan.ucenter.entity.ScenePlusVoid;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 
+import java.util.HashMap;
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -15,7 +18,9 @@ import com.fdkankan.ucenter.vo.request.SceneParam;
  */
 public interface IScenePlusVoidService extends IService<ScenePlusVoid> {
 
-    void setStatus(String num, Integer type,String token);
+    void setStatus(Long plusId, Integer type,String token);
 
     PageInfo scenePageList(SceneParam param, String token);
+
+    HashMap<Long, ScenePlusVoid> getByPlusIds(List<Long> plusIds);
 }

+ 5 - 4
src/main/java/com/fdkankan/ucenter/service/impl/FusionService.java

@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.ucenter.constant.LoginConstant;
-import com.fdkankan.ucenter.entity.Camera;
-import com.fdkankan.ucenter.entity.ScenePlus;
-import com.fdkankan.ucenter.entity.ScenePlusExt;
-import com.fdkankan.ucenter.entity.User;
+import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.ScenePlusVo;
@@ -31,6 +28,8 @@ public class FusionService implements IFusionService {
     IUserService userService;
     @Autowired
     ICameraService cameraService;
+    @Autowired
+    IScenePlusVoidService scenePlusVoidService;
 
     @Override
     public PageInfo scenePageList(SceneParam param, String token) {
@@ -69,6 +68,7 @@ public class FusionService implements IFusionService {
         List<Long> cameraIds = page.getRecords().parallelStream().map(ScenePlus::getCameraId).collect(Collectors.toList());
         List<ScenePlusVo> list = new ArrayList<>();
         HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
+        HashMap<Long, ScenePlusVoid> voidMap = scenePlusVoidService.getByPlusIds(plusIds);
         HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
         for (ScenePlus record : page.getRecords()) {
             ScenePlusVo scenePlusVo = new ScenePlusVo();
@@ -77,6 +77,7 @@ public class FusionService implements IFusionService {
             scenePlusVo.setPlusExt(extMap.get(record.getId()));
             scenePlusVo.setSnCode(snCode);
             scenePlusVo.setSceneType(param.getType());
+            scenePlusVo.setPlusVoid(voidMap.get(record.getId()));
             list.add(scenePlusVo);
         }
         Page<ScenePlusVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());

+ 7 - 0
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java

@@ -110,6 +110,13 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
 
     @Override
+    public List<ScenePlus> getByIds(List<Long> plusIds) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlus::getId,plusIds);
+        return  this.list(wrapper);
+    }
+
+    @Override
     public void copyV4Scene(ScenePlus scenePlus,String newNum, CameraDetail cameraDetail) throws Exception {
         String num = scenePlus.getNum();
         Long plusId = scenePlus.getId();

+ 34 - 6
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusVoidServiceImpl.java

@@ -2,11 +2,16 @@ package com.fdkankan.ucenter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePlusExt;
 import com.fdkankan.ucenter.entity.ScenePlusVoid;
 import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.mapper.IScenePlusVoidMapper;
 import com.fdkankan.ucenter.service.IFusionService;
+import com.fdkankan.ucenter.service.IScenePlusService;
 import com.fdkankan.ucenter.service.IScenePlusVoidService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.service.IUserService;
@@ -14,6 +19,8 @@ import com.fdkankan.ucenter.vo.request.SceneParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.BatchUpdateException;
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -32,21 +39,26 @@ public class ScenePlusVoidServiceImpl extends ServiceImpl<IScenePlusVoidMapper,
     IFusionService fusionService;
     @Autowired
     IUserService userService;
+    @Autowired
+    IScenePlusService scenePlusService;
 
     @Override
-    public void setStatus(String num, Integer type,String token) {
+    public void setStatus(Long plusId, Integer type,String token) {
+        if(plusId == null || type == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
         if(type == 0){
             User user = userService.getByToken(token);
             ScenePlusVoid plusVoid = new ScenePlusVoid();
             plusVoid.setUserId(user.getId());
-            plusVoid.setNum(num);
+            plusVoid.setPlusId(plusId);
             this.save(plusVoid);
         }else{
             LambdaUpdateWrapper<ScenePlusVoid> wrapper = new LambdaUpdateWrapper<>();
             if(type == 1){
-                wrapper.eq(ScenePlusVoid::getNum,num).set(ScenePlusVoid::getStatus,1);
+                wrapper.eq(ScenePlusVoid::getPlusId,plusId).set(ScenePlusVoid::getStatus,1);
             }else {
-                wrapper.eq(ScenePlusVoid::getNum,num).set(ScenePlusVoid::getStatus,2);
+                wrapper.eq(ScenePlusVoid::getPlusId,plusId).set(ScenePlusVoid::getStatus,2);
             }
             this.update(wrapper);
         }
@@ -61,9 +73,25 @@ public class ScenePlusVoidServiceImpl extends ServiceImpl<IScenePlusVoidMapper,
             wrapper.eq(ScenePlusVoid::getStatus,1)
                     .eq(ScenePlusVoid::getUserId,user.getId());
             List<ScenePlusVoid> list = this.list(wrapper);
-            List<String> numList = list.parallelStream().map(ScenePlusVoid::getNum).collect(Collectors.toList());
-            param.setNumList(numList);
+            if(list.size() >0){
+                List<Long> plusIds = list.parallelStream().map(ScenePlusVoid::getPlusId).collect(Collectors.toList());
+                List<ScenePlus> plusList = scenePlusService.getByIds(plusIds);
+                if(plusList.size() >0){
+                    List<String> numList = plusList.parallelStream().map(ScenePlus::getNum).collect(Collectors.toList());
+                    param.setNumList(numList);
+                }
+            }
         }
         return fusionService.scenePageList(param,token);
     }
+
+    @Override
+    public HashMap<Long, ScenePlusVoid> getByPlusIds(List<Long> plusIds) {
+        LambdaQueryWrapper<ScenePlusVoid> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlusVoid::getPlusId,plusIds);
+        List<ScenePlusVoid> list = this.list(wrapper);
+        HashMap<Long,ScenePlusVoid> map = new HashMap<>();
+        list.forEach(entity -> map.put(entity.getPlusId(),entity));
+        return map;
+    }
 }

+ 3 - 2
src/main/java/com/fdkankan/ucenter/vo/response/ScenePlusVo.java

@@ -2,11 +2,12 @@ package com.fdkankan.ucenter.vo.response;
 
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePlusExt;
+import com.fdkankan.ucenter.entity.ScenePlusVoid;
 import lombok.Data;
 
 @Data
 public class ScenePlusVo extends ScenePlus {
-    private ScenePlusExt plusExt;
-
     private String snCode;
+    private ScenePlusExt plusExt;
+    private ScenePlusVoid plusVoid;
 }