浏览代码

修改控制点查询逻辑

tianboguang 2 年之前
父节点
当前提交
eb39ec35a2

+ 6 - 0
pom.xml

@@ -162,6 +162,12 @@
             <version>2.3</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-mongodb</artifactId>
+            <version>3.0.0-SNAPSHOT</version>
+        </dependency>
+
 
     </dependencies>
     <dependencyManagement>

+ 30 - 36
src/main/java/com/fdkankan/openApi/controller/www/SceneController.java

@@ -2,19 +2,16 @@ package com.fdkankan.openApi.controller.www;
 
 
 import cn.dev33.satoken.annotation.SaIgnore;
-import cn.dev33.satoken.stp.StpUtil;
-import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.openApi.common.PageInfo;
-import com.fdkankan.openApi.entity.system.User;
+import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.entity.www.ScenePlus;
-import com.fdkankan.openApi.entity.www.ScenePlusExt;
 import com.fdkankan.openApi.service.laser.SceneService;
+import com.fdkankan.openApi.service.system.IUserAuthService;
 import com.fdkankan.openApi.service.www.IScenePlusExtService;
 import com.fdkankan.openApi.service.www.IScenePlusService;
 import com.fdkankan.openApi.vo.www.SceneVO;
-import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.web.response.ResultData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
@@ -43,7 +40,7 @@ public class SceneController {
     private SceneService sceneService;
 
     @Autowired
-    private RedisUtil redisUtil;
+    private IUserAuthService authService;
 
     /**
      * 根据用户名获取场景列表
@@ -51,9 +48,12 @@ public class SceneController {
      */
     @SaIgnore
     @PostMapping("/getScenesByUsername")
-    public ResultData getScenesByUsername(@RequestBody SceneVO sceneVO,@RequestHeader("token") String token) {
-        User user = JSONObject.parseObject(redisUtil.get("token#"+ StpUtil.getTokenInfo().tokenValue),User.class);
-        PageInfo pageInfo = scenePlusService.getScenesByUserId(user.getId(),sceneVO.getPageNum(),sceneVO.getPageSize());
+    public ResultData getScenesByUsername(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
+        UserAuthInfo authInfo = authService.findByAppKey(appKey);
+        if (ObjectUtils.isEmpty(authInfo)) {
+            throw new BusinessException(ErrorCode.AUTH_FAIL);
+        }
+        PageInfo pageInfo = scenePlusService.getScenesByUserId(authInfo.getUserId(),sceneVO);
         return ResultData.ok(pageInfo);
     }
 
@@ -63,21 +63,21 @@ public class SceneController {
      * @return
      */
     @RequestMapping("/getScenePointInfo")
-    public ResultData getScenePointInfo(@RequestBody SceneVO sceneVO, @RequestHeader("token") String token) {
+    public ResultData getScenePointInfo(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
         ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
         if(ObjectUtils.isEmpty(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        User user = JSONObject.parseObject(redisUtil.get("token#"+ StpUtil.getTokenInfo().tokenValue),User.class);
-        if (user.getId() != scenePlus.getUserId().intValue()) {
+        UserAuthInfo authInfo = authService.findByAppKey(appKey);
+        if (ObjectUtils.isEmpty(authInfo)) {
+            throw new BusinessException(ErrorCode.AUTH_FAIL);
+        }
+        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
             throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
         }
 
-        if(scenePlus.getSceneSource()==4){
-            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
-            if(scenePlusExt.getIsObj() == 0){
-                return ResultData.ok(sceneService.getPointInfo(sceneVO.getSceneCode()));
-            }
+        if (scenePlus.getSceneSource() == 4) {
+            return ResultData.ok(sceneService.getPointInfo(sceneVO.getSceneCode()));
         }
         return ResultData.ok(scenePlusService.getPointInfo(sceneVO.getSceneCode()));
     }
@@ -87,20 +87,17 @@ public class SceneController {
      * @return
      */
     @RequestMapping("/getSceneObjFiles")
-    public ResultData getSceneObjFiles(@RequestBody SceneVO sceneVO,@RequestHeader("token") String token) {
+    public ResultData getSceneObjFiles(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
         ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
         if(ObjectUtils.isEmpty(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        User user = JSONObject.parseObject(redisUtil.get("token#"+ StpUtil.getTokenInfo().tokenValue),User.class);
-        if (user.getId() != scenePlus.getUserId().intValue()) {
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
+        UserAuthInfo authInfo = authService.findByAppKey(appKey);
+        if (ObjectUtils.isEmpty(authInfo)) {
+            throw new BusinessException(ErrorCode.AUTH_FAIL);
         }
-        if(scenePlus.getSceneSource()==4){
-            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
-            if(scenePlusExt.getIsObj() == 0){
-                return ResultData.ok(sceneService.getSceneObjFilePaths(sceneVO.getSceneCode()));
-            }
+        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
         }
         return ResultData.ok(scenePlusService.getSceneObjFilePaths(sceneVO.getSceneCode()));
     }
@@ -110,20 +107,17 @@ public class SceneController {
      * @return
      */
     @RequestMapping("/getScenePanoramicImageFiles")
-    public ResultData getScenePanoramicImageFiles(@RequestBody SceneVO sceneVO,@RequestHeader("token") String token) {
+    public ResultData getScenePanoramicImageFiles(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
         ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
-        if(ObjectUtils.isEmpty(scenePlus)){
+        if (ObjectUtils.isEmpty(scenePlus)) {
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        User user = JSONObject.parseObject(redisUtil.get("token#"+ StpUtil.getTokenInfo().tokenValue),User.class);
-        if (user.getId() != scenePlus.getUserId().intValue()) {
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
+        UserAuthInfo authInfo = authService.findByAppKey(appKey);
+        if (ObjectUtils.isEmpty(authInfo)) {
+            throw new BusinessException(ErrorCode.AUTH_FAIL);
         }
-        if(scenePlus.getSceneSource()==4){
-            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
-            if(scenePlusExt.getIsObj() == 0){
-                return ResultData.ok(sceneService.getScenePanoramicImageFiles(sceneVO.getSceneCode()));
-            }
+        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
         }
         return ResultData.ok(scenePlusService.getScenePanoramicImageFiles(sceneVO.getSceneCode()));
     }

+ 58 - 0
src/main/java/com/fdkankan/openApi/entity/laser/ControlPointEntity.java

@@ -0,0 +1,58 @@
+package com.fdkankan.openApi.entity.laser;
+
+
+import com.fdkankan.mongodb.base.BaseMongoEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * Created by Xiewj on 2021/7/29 0029 18:34
+ * 控制点实体
+ * lat:113, [0], lon:22, [1]
+ */
+@Data
+@Document(collection = "t_control_point")
+public class ControlPointEntity extends BaseMongoEntity {
+
+    private String dataset_id;
+
+    private String sceneCode;
+    
+    // 四维看看控制点
+    private double[] ageControlLocation1;
+
+    private double[] ageControlLocation2;
+
+    // gps坐标
+    private double[] gpsControlCoordinate1;
+
+    private double[] gpsControlCoordinate2;
+    // gps坐标
+    private double[] gps84ControlCoordinate1;
+
+    private double[] gps84ControlCoordinate2;
+
+
+    private double[] defaultGisP1;
+
+    private double[] defaultGisP2;
+
+    private double[] defaultLocation1;
+
+    private double[] defaultLocation2;
+
+    private Integer status;
+
+    private String[] gpsRaw1;
+
+    private String[] gpsRaw2;
+
+    private String outType;
+
+    private String epsg;
+
+    private String roamingPointId1;
+
+    private String roamingPointId2;
+
+}

+ 51 - 0
src/main/java/com/fdkankan/openApi/entity/laser/FilterEntity.java

@@ -0,0 +1,51 @@
+package com.fdkankan.openApi.entity.laser;
+
+
+import com.fdkankan.mongodb.base.BaseMongoEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * Created by Xiewj on 2021/7/29 0029 18:34
+ * 控制点实体
+ * lat:113, [0], lon:22, [1]
+ */
+@Data
+@Document(collection = "t_filter")
+public class FilterEntity extends BaseMongoEntity {
+
+    // 场景码, 这个一定要场景码, 多条记录
+    private String sceneCode;
+
+    private String sceneNum;
+
+    private String panoId;
+
+    private String dataset_id;
+
+    private Double[] gis;
+
+    private Double[] location;
+
+    private Double[] floor_location;
+
+    private Double[] dataset_location;
+
+    private Double[] dataset_floor_location;
+
+    private Double[] orientation;
+
+    private String file_id;
+
+    private Double[] dataset_orientation;
+
+    private Double[] dataset_floor_orientation;
+
+    private Double[] gga_location;
+
+    private boolean isControlPointA = false;
+
+    private boolean isControlPointB = false;
+
+
+}

+ 8 - 0
src/main/java/com/fdkankan/openApi/service/laser/ControlPointService.java

@@ -0,0 +1,8 @@
+package com.fdkankan.openApi.service.laser;
+
+import com.fdkankan.mongodb.service.MongodbBaseService;
+import com.fdkankan.openApi.entity.laser.ControlPointEntity;
+
+public interface ControlPointService extends MongodbBaseService<ControlPointEntity> {
+    ControlPointEntity findByDatasetId(String datasetId);
+}

+ 10 - 0
src/main/java/com/fdkankan/openApi/service/laser/FilterService.java

@@ -0,0 +1,10 @@
+package com.fdkankan.openApi.service.laser;
+
+import com.fdkankan.mongodb.service.MongodbBaseService;
+import com.fdkankan.openApi.entity.laser.FilterEntity;
+
+import java.util.List;
+
+public interface FilterService extends MongodbBaseService<FilterEntity> {
+    List<FilterEntity> getAllByDatasetId(String datasetId);
+}

+ 0 - 9
src/main/java/com/fdkankan/openApi/service/laser/SceneService.java

@@ -1,13 +1,8 @@
 package com.fdkankan.openApi.service.laser;
 
-import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.openApi.entity.laser.SceneEntity;
 
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Created by Xiewj on 2021/7/28 0028 9:10
  */
@@ -15,8 +10,4 @@ public interface SceneService extends IService<SceneEntity> {
     SceneEntity findBySceneCode(String sceneCode);
 
     Object getPointInfo(String sceneCode);
-
-    List<String> getSceneObjFilePaths(String sceneCode);
-
-    List<String> getScenePanoramicImageFiles(String sceneCode);
 }

+ 18 - 0
src/main/java/com/fdkankan/openApi/service/laser/impl/ControlPointServiceImpl.java

@@ -0,0 +1,18 @@
+package com.fdkankan.openApi.service.laser.impl;
+
+import com.fdkankan.mongodb.service.impl.MongodbBaseServiceImpl;
+import com.fdkankan.openApi.entity.laser.ControlPointEntity;
+import com.fdkankan.openApi.service.laser.ControlPointService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class ControlPointServiceImpl extends MongodbBaseServiceImpl<ControlPointEntity> implements ControlPointService {
+    public ControlPointEntity findByDatasetId(String datasetId){
+        Query query = new Query(Criteria.where("dataset_id").is(datasetId));
+        return findOne(query);
+    }
+}

+ 21 - 0
src/main/java/com/fdkankan/openApi/service/laser/impl/FilterServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fdkankan.openApi.service.laser.impl;
+
+import com.fdkankan.mongodb.service.impl.MongodbBaseServiceImpl;
+import com.fdkankan.openApi.entity.laser.FilterEntity;
+import com.fdkankan.openApi.service.laser.FilterService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@Slf4j
+public class FilterServiceImpl extends MongodbBaseServiceImpl<FilterEntity> implements FilterService {
+    @Override
+    public List<FilterEntity> getAllByDatasetId(String datasetId) {
+        Query query = new Query(Criteria.where("dataset_id").is(datasetId));
+        return find(query);
+    }
+}

+ 48 - 36
src/main/java/com/fdkankan/openApi/service/laser/impl/SceneServiceImpl.java

@@ -1,39 +1,24 @@
 package com.fdkankan.openApi.service.laser.impl;
 
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.ConcurrentHashSet;
-import cn.hutool.core.date.DateField;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.file.FileReader;
-import cn.hutool.core.io.file.FileWriter;
-import cn.hutool.core.thread.ThreadUtil;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.ZipUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.openApi.entity.laser.ControlPointEntity;
+import com.fdkankan.openApi.entity.laser.FilterEntity;
 import com.fdkankan.openApi.entity.laser.SceneEntity;
 import com.fdkankan.openApi.mapper.laser.SceneMapper;
+import com.fdkankan.openApi.service.laser.ControlPointService;
+import com.fdkankan.openApi.service.laser.FilterService;
 import com.fdkankan.openApi.service.laser.SceneService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -43,6 +28,17 @@ import java.util.regex.Matcher;
 @DS("laser")
 @Service
 public class SceneServiceImpl extends ServiceImpl<SceneMapper, SceneEntity> implements SceneService {
+
+    @Autowired
+    private SceneService sceneService;
+
+    @Autowired
+    private FilterService filterService;
+
+    @Autowired
+    private ControlPointService controlPointService;
+
+
     @Override
     public SceneEntity findBySceneCode(String sceneCode) {
         LambdaQueryWrapper<SceneEntity> wrapper=new LambdaQueryWrapper<>();
@@ -52,20 +48,36 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, SceneEntity> impl
 
     @Override
     public Object getPointInfo(String sceneCode) {
-        // TODO 根据场景码获取点位信息
-        return null;
-    }
+        Map<String,Object> pointInfo = new HashMap<>(2);
+        SceneEntity scene = sceneService.findBySceneCode(sceneCode);
 
-    @Override
-    public List<String> getSceneObjFilePaths(String sceneCode) {
-        // TODO 根据场景码获取obj文件路径
-        return null;
-    }
+        List<FilterEntity> filters = filterService.getAllByDatasetId(scene.getDatasetId());
+        pointInfo.put("point", filters);
 
-    @Override
-    public List<String> getScenePanoramicImageFiles(String sceneCode) {
-        // TODO 根据场景码获取全景图文件路径
-        return null;
+        ControlPointEntity ctrlPoint = controlPointService.findByDatasetId(scene.getDatasetId());
+        if (ctrlPoint.getStatus() == 0) {
+            return pointInfo;
+        }
+        Map<String,Object> ctrlResult = new HashMap<>(5);
+        ctrlResult.put("ageControlLocation1", ctrlPoint.getAgeControlLocation1());
+        ctrlResult.put("ageControlLocation2", ctrlPoint.getAgeControlLocation2());
+        ctrlResult.put("epsg", ctrlPoint.getEpsg());
+        ctrlResult.put("gps84ControlCoordinate1", ctrlPoint.getGps84ControlCoordinate1());
+        ctrlResult.put("gps84ControlCoordinate2", ctrlPoint.getGps84ControlCoordinate2());
+
+        if (!ObjectUtils.isEmpty(ctrlPoint.getRoamingPointId1()) && !ObjectUtils.isEmpty(ctrlPoint.getRoamingPointId2())) {
+            ctrlResult.put("roamingPointId1", ctrlPoint.getRoamingPointId1());
+            ctrlResult.put("roamingPointId2", ctrlPoint.getRoamingPointId2());
+            ctrlResult.put("gps84ControlCoordinate1", filters.stream().
+                    filter(filter -> filter.isControlPointA() && filter.getId().equals(ctrlPoint.getRoamingPointId1()))
+                    .map(FilterEntity::getGga_location).collect(Collectors.toList()));
+            ctrlResult.put("gps84ControlCoordinate2", filters.stream().
+                    filter(filter -> filter.isControlPointB() && filter.getId().equals(ctrlPoint.getRoamingPointId2()))
+                    .map(FilterEntity::getGga_location).collect(Collectors.toList()));
+        }
+        pointInfo.put("ctrlPoint", ctrlResult);
+        return pointInfo;
     }
+
 }
 

+ 1 - 2
src/main/java/com/fdkankan/openApi/service/www/IScenePlusService.java

@@ -1,6 +1,5 @@
 package com.fdkankan.openApi.service.www;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.openApi.common.PageInfo;
 import com.fdkankan.openApi.entity.www.ScenePlus;
@@ -24,7 +23,7 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     ResultData createVirtualScene(CreateFicTitiousSceneParamVO param) throws Exception;
 
-    PageInfo<SceneVO> getScenesByUserId(Integer userName, Integer pageNum, Integer pageSize);
+    PageInfo<SceneVO> getScenesByUserId(Integer userName, SceneVO sceneVO);
 
     Object getPointInfo(String sceneCode);
 

+ 37 - 8
src/main/java/com/fdkankan/openApi/service/www/impl/ScenePlusServiceImpl.java

@@ -1,15 +1,14 @@
 package com.fdkankan.openApi.service.www.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.DateUtil;
@@ -22,10 +21,12 @@ import com.fdkankan.model.utils.ComputerUtil;
 import com.fdkankan.model.utils.CreateObjUtil;
 import com.fdkankan.openApi.bean.www.SceneJsonBean;
 import com.fdkankan.openApi.common.PageInfo;
+import com.fdkankan.openApi.entity.laser.SceneEntity;
 import com.fdkankan.openApi.entity.www.*;
 import com.fdkankan.openApi.mapper.www.IScenePlusMapper;
+import com.fdkankan.openApi.service.laser.FilterService;
+import com.fdkankan.openApi.service.laser.SceneService;
 import com.fdkankan.openApi.service.www.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.openApi.vo.www.CreateFicTitiousSceneParamVO;
 import com.fdkankan.openApi.vo.www.SceneEditControlsVO;
 import com.fdkankan.openApi.vo.www.SceneVO;
@@ -35,9 +36,12 @@ import com.fdkankan.web.response.ResultData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
-import java.io.File;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -76,6 +80,12 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     @Autowired
     private FYunFileConfig fYunFileConfig;
 
+    @Autowired
+    private FilterService filterService;
+
+    @Autowired
+    private SceneService sceneService;
+
     @Override
     public ScenePlus getByNum(String num) {
         return this.getOne(new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, num));
@@ -290,12 +300,23 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
 
     @Override
-    public PageInfo<SceneVO> getScenesByUserId(Integer userId,Integer pageNum,Integer pageSize) {
+    public PageInfo<SceneVO> getScenesByUserId(Integer userId, SceneVO sceneVO) {
         LambdaQueryWrapper<ScenePlus> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ScenePlus::getUserId,userId);
+
+        if (!ObjectUtils.isEmpty(sceneVO.getCameraType())) {
+            switch (sceneVO.getCameraType()){
+                case "mega":
+                    queryWrapper.eq(ScenePlus::getSceneSource, 4);
+                    break;
+                case "kankan":
+                    queryWrapper.ne(ScenePlus::getSceneSource, 4);
+                    break;
+            }
+        }
         Map<Long, String> cameraMap = cameraService.list().stream().collect(Collectors.toMap(Camera::getId, Camera::getSnCode));
-        Page<ScenePlus> scenePage = this.page(new Page<>(pageNum, pageSize), queryWrapper);
-        List<SceneVO> sceneVos = scenePage.getRecords().stream().map(scenePlus -> {
+        Page<ScenePlus> scenePage = this.page(new Page<>(sceneVO.getPageNum(), sceneVO.getPageSize()), queryWrapper);
+        List<SceneVO> sceneVos = scenePage.getRecords().parallelStream().map(scenePlus -> {
             SceneVO vo = new SceneVO();
             vo.setSceneCode(scenePlus.getNum());
             vo.setSceneName(scenePlus.getTitle());
@@ -303,6 +324,14 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
             ScenePlusExt plusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
             vo.setShootCount(plusExt.getShootCount());
             vo.setSnCode(cameraMap.get(scenePlus.getCameraId()));
+            vo.setCameraType("kankan");
+            if (scenePlus.getSceneSource() == 4) {
+                SceneEntity scene = sceneService.findBySceneCode(scenePlus.getNum());
+                if (ObjectUtils.isEmpty(scene.getTitle())) {
+                    vo.setSceneName(scene.getTitle());
+                }
+                vo.setCameraType("mega");
+            }
             return vo;
         }).collect(Collectors.toList());
         return PageInfo.PageInfo(scenePage.getCurrent(),scenePage.getSize(),scenePage.getTotal(),sceneVos);

+ 5 - 0
src/main/java/com/fdkankan/openApi/vo/www/SceneVO.java

@@ -26,6 +26,11 @@ public class SceneVO extends PageVo implements Serializable {
 
     private String userName;
 
+    /**
+     * 相机类型,mega:激光相机,kankan:八目或者转台相机
+     */
+    private String cameraType;
+
     private String sceneCode;
 
     private String sceneName;