Browse Source

场景中心业务代码迁移

dengsixing 3 years ago
parent
commit
14aa0a9d5f
17 changed files with 2851 additions and 76 deletions
  1. 15 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformGoodsClient.java
  2. 6 0
      4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformUserClient.java
  3. 8 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/feign/UserFeign.java
  4. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java
  5. 29 4
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java
  6. 2399 5
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java
  7. 4 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/mapper/ISceneMapper.java
  8. 14 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IFdkkLaserService.java
  9. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneFileBuildService.java
  10. 11 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java
  11. 58 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/IFdkkLaserServiceImpl.java
  12. 154 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java
  13. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  14. 101 24
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java
  15. 3 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneParamVO.java
  16. 26 26
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneVO.java
  17. 18 4
      4dkankan-center-scene/src/main/resources/mapper/scene/SceneMapper.xml

+ 15 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformGoodsClient.java

@@ -39,4 +39,19 @@ public interface PlatformGoodsClient {
      */
     @PostMapping("/getCameraBySnCode")
     ResultData<Camera> getCameraBySnCode(@RequestParam(value = "snCode", required = false) String snCode);
+
+    /**
+     *
+     * @return Camera
+     */
+    @PostMapping("/getByChildNameAndChildPassword")
+    ResultData<Camera> getByChildNameAndChildPassword(@RequestParam(value = "appUserName") String appUserName,
+                                                      @RequestParam(value = "appPassword") String appPassword);
+
+    /**
+     *
+     * @return Camera
+     */
+    @PostMapping("/getCameraById")
+    ResultData<Camera> getCameraById(@RequestParam(value = "cameraId") Long cameraId);
 }

+ 6 - 0
4dkankan-center-api/4dkankan-center-platform-api/src/main/java/com/fdkankan/platform/api/feign/PlatformUserClient.java

@@ -36,4 +36,10 @@ public interface PlatformUserClient {
      */
     @PostMapping("/getUserIncrementByCameraId")
     ResultData<UserIncrement> getUserIncrementByCameraId(@RequestParam(value = "cameraId", required = false) Long cameraId);
+    /**
+     *
+     * @return UserIncrement
+     */
+    @PostMapping("/getNickNameByUserId")
+    ResultData<String> getNickNameByUserId(@RequestParam(value = "userId") Long userId);
 }

+ 8 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/feign/UserFeign.java

@@ -60,5 +60,13 @@ public class UserFeign {
         return entity;
     }
 
+    @PostMapping("/getNickNameByUserId")
+    public String getNickNameByUserId(@RequestParam(value = "userId")  Long userId) {
+        log.info("feign调用: getNickNameByUserId,参数:userId:{},",userId);
+        String nickName = userService.getNickNameByUserId(userId);
+        log.info("feign调用: getNickNameByUserId,返回:{},",nickName);
+        return nickName;
+    }
+
 }
 

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java

@@ -82,4 +82,6 @@ public interface IUserService extends IService<User> {
     SSOUser getSSOUserByUserId(Long userId);
 
     SSOUser getByNickName(String nickName);
+
+    String getNickNameByUserId(Long userId);
 }

+ 29 - 4
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fdkankan.platform.user.service.impl;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,6 +11,7 @@ import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.util.SsoUtil;
 import com.fdkankan.common.validation.Variable;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
 import com.fdkankan.platform.goods.entity.CameraDetail;
@@ -29,6 +32,7 @@ import com.fdkankan.platform.user.vo.ReceiverInfoVo;
 import com.fdkankan.platform.user.vo.ResponseCamera;
 import com.fdkankan.platform.user.vo.ResponseUser;
 import com.fdkankan.platform.user.vo.SSOUserVo;
+import com.fdkankan.redis.util.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,10 +40,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -67,6 +68,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     private ICameraService cameraService;
     @Autowired
     private ICameraDetailService cameraDetailService;
+    @Autowired
+    RedisUtil redisUtil;
 
     @Override
     public String register(RequestUser user) {
@@ -473,4 +476,26 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         User user = list.get(0);
         return  this.getSsoUserByUserName(user,user.getUserName());
     }
+
+    @Override
+    public String getNickNameByUserId(Long userId) {
+        String key = SsoUtil.PREFIX_CACHE_NICKNAME + userId;
+        String nickName = redisUtil.get(key);
+        if(StrUtil.isNotEmpty(nickName)){
+            return nickName;
+        }
+        User user = this.getOne(
+                new LambdaQueryWrapper<User>()
+                .select(User::getNickName)
+                .eq(User::getRecStatus, RecStatus.VALID.code())
+                .eq(User::getId, userId));
+
+        if(Objects.isNull(user)){
+            return null;
+        }
+
+        nickName = user.getNickName();
+        redisUtil.set(key, nickName);
+        return nickName;
+    }
 }

File diff suppressed because it is too large
+ 2399 - 5
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java


+ 4 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/mapper/ISceneMapper.java

@@ -34,9 +34,11 @@ public interface ISceneMapper extends BaseMapper<Scene> {
 
     List<ScenePO> findAllByYesterday();
 
-    List<SceneProPO> findAllScene(SceneParamVO param);
+    Page<SceneProPO> findAllScene(Page page, SceneParamVO param);
 
-    List<ScenePO> unionSearchBySceneName(@Param("searchKey") String searchKey);
+    Page<ScenePO> unionSearchBySceneName(Page<ScenePO> page, @Param("searchKey") String searchKey);
 
     List<SceneProPO> getOnlySceneList(SceneParamVO param);
+
+    Page<ScenePO> selectScenePoByCondition(Page<ScenePO> page, @Param("param")SceneParamVO param);
 }

+ 14 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IFdkkLaserService.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.service;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/14
+ **/
+public interface IFdkkLaserService {
+
+    void updateSceneStatus(String sceneCode,int status);
+}

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneFileBuildService.java

@@ -47,4 +47,6 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
     ResultData buildScene(@RequestBody BuildSceneParamVO buildScene) throws Exception;
 
+    ResultData rebuildScene(String sceneCode) throws Exception;
+
 }

+ 11 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.scene.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.ScenePO;
@@ -9,6 +10,7 @@ import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.common.response.ResultData;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -27,7 +29,7 @@ public interface ISceneService extends IService<Scene> {
 
     Scene getValidById(long id);
 
-    List<SceneVO> convert(List<ScenePO> list) throws Exception;
+    List<SceneVO> convert(List<ScenePO> list);
 
     List<SceneVO> convertPro(List<SceneProPO> list) throws Exception;
 
@@ -75,12 +77,9 @@ public interface ISceneService extends IService<Scene> {
 
     ResultData saveScreencapFile(SceneEditParamVO base) throws Exception;
 
-    List<SceneProPO> findAllScene(String order, String sceneType, Integer sceneScheme,
-                                  Integer pageNum, Integer pageSize, Long userId,
-                                  String sceneName, Long cameraId, Date startDate,
-                                  Date endDate, String num, String type, String likeNum, List<String> nums);
+    Page<SceneProPO> findAllScene(SceneParamVO param);
 
-    List<ScenePO> unionSearchBySceneName(String searchKey);
+    Page<ScenePO> unionSearchBySceneName(SceneParamVO param);
 
     List<SceneProPO> getOnlySceneList(SceneParamVO param) throws Exception;
 
@@ -88,6 +87,12 @@ public interface ISceneService extends IService<Scene> {
 
     void updatePv();
 
+    Page search(SceneParamVO param);
+
+    Page loadScene(SceneParamVO param);
+
+    Page loadAllScene2(SceneParamVO param);
+
 
 
 }

+ 58 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/IFdkkLaserServiceImpl.java

@@ -0,0 +1,58 @@
+package com.fdkankan.scene.service.impl;
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.HttpCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.scene.service.IFdkkLaserService;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.Serializable;
+
+@Service
+public class IFdkkLaserServiceImpl implements IFdkkLaserService {
+
+    private final String UPDATE_SCENE_STATUS_URL_TEMPLATE="/indoor/%s/scene/useStatus/%s";
+
+    @Value("${4dkk.laserService.host}")
+    private String laserHost;
+
+    private RestTemplate restTemplate = new RestTemplate();
+
+    public void updateSceneStatus(String sceneCode,int status){
+        String url = laserHost + String.format(UPDATE_SCENE_STATUS_URL_TEMPLATE,sceneCode,status);
+        ResponseEntity<Result> response = restTemplate.getForEntity(url, Result.class);
+        if(response.getStatusCode() != HttpStatus.OK){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_7001);
+        }
+        if(response.getBody().getCode() != HttpCode.SC_SUCCESS){
+            throw new BusinessException(response.getBody().getCode(), response.getBody().getMsg());
+        }
+    }
+
+    @Data
+    public static class Result<T> implements Serializable {
+        private static final long serialVersionUID = -1491499610244557029L;
+        public static final String SUCCESS_MSG = "操作成功";
+        public static int CODE_SUCCESS = 0;
+        public static int CODE_FAILURE = -1;
+        public static String[] NOOP = new String[]{};
+
+        /**
+         * 处理状态:0: 成功, 1: 失败
+         */
+        private int code;
+        /**
+         * 消息
+         */
+        private String msg;
+        /**
+         * 返回数据
+         */
+        private T data;
+    }
+}

+ 154 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java

@@ -29,6 +29,7 @@ import com.fdkankan.scene.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.BuildSceneParamVO;
 import com.fdkankan.scene.vo.ResponseSceneFile;
+import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
@@ -42,6 +43,8 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.xml.transform.Result;
 import java.io.BufferedReader;
 import java.io.File;
@@ -129,6 +132,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     ISceneService sceneService;
     @Autowired
     ISceneExtService sceneExtService;
+    @Autowired
+    IFdkkLaserService fdkkLaserService;
 
     @Override
     public SceneFileBuild findByFileId(String fileId) {
@@ -1974,6 +1979,155 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         return filePathName;
     }
 
+    public ResultData rebuildScene(String sceneCode) throws Exception {
+        if (StringUtils.isEmpty(sceneCode)) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(sceneCode);
+        SceneProExt sceneProExt = null;
+        ScenePO scenePO = null;
+        String path = "";
+        if(scenePro == null){
+            scenePO = sceneService.findBySceneNum(sceneCode);
+            if(scenePO == null){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+            }else {
+                path = ConstantFilePath.BUILD_MODEL_PATH + scenePO.getDataSource().split("/")[scenePO.getDataSource().split("/").length - 2];
+            }
+        }else {
+            sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+            path = sceneProExt.getDataSource();
+
+        }
+        //重新计算时需要删除文件夹,否知使用缓存
+        FileUtils.delAllFile(path + File.separator + "results");
+
+        String fileId = path.split("/")[path.split("/").length - 2];
+        log.info("fileId:" + fileId);
+        //获取解压后的资源的data.fdage中的数据
+        File folderPath = new File(path);
+
+        if ("s3".equals(type)) {
+            CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, ""),
+                    path + "/capture/");
+        } else {
+            if(scenePro!=null && sceneProExt.getSceneSource().equals(4)){
+                CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "") + "/data.fdage", path + "/capture/");
+            }else{
+                CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, "") + "/data.fdage", path + "/capture/");
+            }
+        }
+        String data = FileUtils.readFile(folderPath.getAbsolutePath() + File.separator + "capture" + File.separator + "data.fdage");
+        com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(data);
+        if(ObjectUtils.isEmpty(jsonObject)){
+            log.error("data.fdage文件不存在");
+            return ResultData.error(CameraConstant.FAILURE_6009.code(), CameraConstant.FAILURE_6009.message());
+        }
+
+        //有points字段的是八目
+        if (!jsonObject.containsKey("points")) {
+            String cameraName = jsonObject.getString("camid");
+            ResultData<Camera> cameraResult = platformGoodsClient.getCameraByChildName(cameraName);
+            Camera camera = cameraResult.getData();
+            if (camera == null) {
+                log.error("该相机不存在:" + cameraName);
+                throw new BusinessException(CameraConstant.FAILURE_6003);
+            }
+
+            ResultData<CameraDetail> detailResult = platformGoodsClient.getCameraDetailByCameraId(camera.getId());
+            CameraDetail detail = detailResult.getData();
+            if (detail == null) {
+                log.error("该相机详情不存在:" + cameraName);
+                throw new BusinessException(CameraConstant.FAILURE_6003);
+            }
+
+            Long userId = null;
+            String userName = null;
+
+            if (detail.getUserId() != null) {
+                ResultData<SSOUser> ssoUserResult = platformUserClient.getSSOUserByUserId(detail.getUserId());
+                SSOUser user = ssoUserResult.getData();
+                if (user == null) {
+                    log.error("用户id不存在:" + detail.getUserId());
+                } else {
+                    userId = user.getId();
+                    userName = user.getUserName();
+                }
+            }
+
+            String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
+            scenePO = this.createScene(sceneCode, camera.getId(),
+                    cameraName, jsonObject.getString("creator"),
+                    jsonObject.getString("pwd"), unicode, detail.getGoodsId(),
+                    fileId, "http://creator.4dkankan.com/" + unicode + File.separator, "zip.Zip",
+                    jsonObject.getString("scenePic"), "0", userId, userName,
+                    jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+                    jsonObject.getJSONArray("imgs").size(), jsonObject.getString("name"), jsonObject.getString("info"),
+                    jsonObject.getInteger("scenetype"), jsonObject.getString("gps"),
+                    1, mainUrl + sceneUrl, ecsType);
+
+        } else {
+            String cameraName = jsonObject.getJSONObject("cam").getString("uuid");
+            String userName = null;
+            if (!ObjectUtils.isEmpty(scenePro.getUserId())) {
+                ResultData<SSOUser> ssoUserResult = platformUserClient.getSSOUserByUserId(scenePro.getUserId());
+                SSOUser user = ssoUserResult.getData();
+                userName = user.getUserName();
+            }
+            String buildType = scenePro.getBuildType();
+            //重算的场景,先移除该场景对应的容量
+            sceneProService.rebuildReduceSpaceBySceneNum(sceneCode);
+
+            JSONObject statusJson = new JSONObject();
+            //临时将-2改成1,app还没完全更新
+            statusJson.put("status", scenePro.getSceneStatus() == -2 ? 1 : scenePro.getSceneStatus());
+            statusJson.put("webSite", scenePro.getWebSite());
+            statusJson.put("sceneNum", scenePro.getSceneCode());
+            statusJson.put("thumb", scenePro.getThumb());
+            statusJson.put("payStatus", scenePro.getPayStatus());
+            FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneCode + File.separator + "status.json", statusJson.toString());
+            uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "data/data" + sceneCode + File.separator + "status.json",
+                    "data/data" + sceneCode + File.separator + "status.json");
+            String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
+
+            Long cameraType = (long)scenePro.getSceneScheme() == 3? 12 : (long)scenePro.getSceneScheme();
+            //判断是否转台相机
+            if(scenePro != null && sceneProExt.getSceneSource() == 3){
+                cameraType = 13L;
+            }
+
+            if(scenePro != null && sceneProExt.getSceneSource() == 4){
+                cameraType = 14L;
+            }
+
+
+            if(sceneProExt.getSceneSource().intValue() == 4){
+                fdkkLaserService.updateSceneStatus(sceneCode,0);
+                String mqMsg = ComputerUtil.getMQMsg(sceneCode,cameraName,unicode,cameraType,fileId,
+                        sceneProExt.getDataSource().replace(ConstantFilePath.BUILD_MODEL_PATH, "")
+                                .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
+                        "zip.Zip", "0",userName,
+                        jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+                        jsonObject.getInteger("resolution"),buildType,ConstantFilePath.BUILD_MODEL_LASER_PATH + unicode);
+                mqProducer.syncSend(topicLaserA, mqMsg.concat(":;1"));
+            }else{
+                String mqMsg = ComputerUtil.getMQMsg(sceneCode,cameraName,unicode,cameraType,fileId,
+                        sceneProExt.getDataSource().replace(ConstantFilePath.BUILD_MODEL_PATH, "")
+                                .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
+                        "zip.Zip", "0",userName,
+                        jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+                        jsonObject.getInteger("resolution"),buildType,ConstantFilePath.BUILD_MODEL_PATH + unicode);
+                mqProducer.syncSend(topicModelingA, mqMsg.concat(":;1"));
+            }
+            sceneProService.updateStatus(sceneCode,0);
+            // 更新imageVersion
+            sceneProEditService.updateImageVersionByProId(scenePro.getId());
+        }
+        log.error("生成新的场景重新计算");
+        return ResultData.ok();
+    }
+
     public static void main(String[] args) {
 //        ScenePro scenePro = new ScenePro();
 //        scenePro.setCameraId(1l);

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -4434,7 +4434,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
         SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
 
-        platformGoodsClient.updateCameraDetailByCameraIdAndSpace(scenePro.getCameraId(), sceneProExt.getSpace());
+        platformGoodsClient.updateCameraDetailByCameraIdAndSpace(scenePro.getCameraId(), -sceneProExt.getSpace());
 
         sceneProExt.setSpace(Long.parseLong("0"));
         sceneProExt.setUpdateTime(Calendar.getInstance().getTime());

+ 101 - 24
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -18,6 +18,7 @@ import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
+import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
@@ -33,12 +34,14 @@ import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -80,6 +83,10 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     RedisLockUtil redisLockUtil;
     @Autowired
     ISceneProExtService sceneProExtService;
+    @Autowired
+    PlatformUserClient platformUserClient;
+    @Autowired
+    ISceneService sceneService;
 
     @Override
     public void updateUserIdByCameraId(Long userId, Long cameraId) {
@@ -986,34 +993,16 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
     @Override
-    public List<SceneProPO> findAllScene(String order, String sceneType, Integer sceneScheme,
-                                             Integer pageNum, Integer pageSize,Long userId,
-                                             String sceneName, Long cameraId, Date startDate,
-                                             Date endDate, String num, String type, String likeNum, List<String> nums) {
-
-        SceneParamVO param = new SceneParamVO();
-        param.setOrder(order);
-        param.setSceneType(sceneType);
-        param.setSceneScheme(sceneScheme);
-        param.setUserId(userId);
-        param.setSceneName(sceneName);
-        param.setCameraId(cameraId);
-        param.setStartTime(startDate);
-        param.setEndTime(endDate);
-        param.setNum(num);
-        //增加搜索条件,根据用户名搜索分配了该协作者的场景
-        param.setNumList(nums);
-        param.setType(type);
-        //加多搜索场景码,由于sceneName是搜索条件,因此搜索场景码条件也是sceneName的值,模糊搜索
-        param.setLikeNum(likeNum);
-
-        return baseMapper.findAllScene(param);
+    public Page<SceneProPO> findAllScene(SceneParamVO param) {
+        Page<SceneProPO> page = new Page<>(param.getPageNum(), param.getPageSize());
+        return baseMapper.findAllScene(page, param);
     }
 
 
     @Override
-    public List<ScenePO> unionSearchBySceneName(String searchKey) {
-        return baseMapper.unionSearchBySceneName(searchKey);
+    public Page<ScenePO> unionSearchBySceneName(SceneParamVO param) {
+        Page<ScenePO> page = new Page<>(param.getPageNum(), param.getPageSize());
+        return baseMapper.unionSearchBySceneName(page, param.getSearchKey());
     }
 
     @Override
@@ -1091,8 +1080,96 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
             redisLockUtil.unlockLua(RedisLockKey.LOCK_SCENE_VISIT_UPDATE);
 
         }
+    }
+
+    @Override
+    public Page search(@RequestBody SceneParamVO param) {
 
+        param.setOrderBy("view_count desc");
 
+        Page<ScenePO> scenePOPage = this.unionSearchBySceneName(param);
+        if(CollUtil.isEmpty(scenePOPage.getRecords())){
+            return scenePOPage;
+        }
+        List<SceneVO> voList = this.convert(scenePOPage.getRecords());
+        for (SceneVO vo : voList){
+            if (vo.getUserId() != null){
+                ResultData<String> nickNameResult = platformUserClient.getNickNameByUserId(vo.getUserId());
+                String nickName = nickNameResult.getData();
+                vo.setNickName(nickName);
+            }
+        }
+        Page<SceneVO> result= new Page<>(param.getPageNum(), param.getPageSize());
+        result.setTotal(scenePOPage.getTotal());
+        result.setRecords(voList);
+        return result;
     }
 
+    @Override
+    public Page loadScene(SceneParamVO param){
+        String orderBy = null;
+        if (StringUtils.isEmpty(param.getSceneInterest()) || "1".equals(param.getSceneInterest())){
+            orderBy = " recommend desc, create_time  ";
+        }else if ("2".equals(param.getSceneInterest())){
+            orderBy = " create_time desc ";
+        }else if ("3".equals(param.getSceneInterest())){
+            orderBy = " view_count desc ";
+        }
+        param.setOrderBy(orderBy);
+
+        Page<SceneProPO> page = this.findAllScene(param);
+        if(CollUtil.isEmpty(page.getRecords())){
+            return page;
+        }
+
+        List<SceneVO> voList = this.convertPro(page.getRecords());
+        for (SceneVO vo : voList){
+            ResultData<String> nickNameResult = platformUserClient.getNickNameByUserId(vo.getUserId());
+            vo.setNickName(nickNameResult.getData());
+        }
+
+        Page<SceneVO> result = new Page<>(param.getPageNum(), param.getPageSize());
+        result.setTotal(page.getTotal());
+        result.setRecords(voList);
+        return result;
+    }
+
+    @Override
+    public Page loadAllScene2(SceneParamVO param) {
+        param.setOrderBy("create_time desc");
+        if(param.getSceneScheme()!= null && param.getSceneScheme() == 4){
+            Page<ScenePro> page = new Page<>(param.getPageNum(), param.getPageSize());
+            Page<ScenePro> sceneProPage = sceneProService.page(page, new LambdaQueryWrapper<ScenePro>()
+                    .eq(ScenePro::getRecStatus, RecStatus.VALID.code())
+                    .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
+                    .and(wrapper -> wrapper.or().like(ScenePro::getSceneName, "%" + param.getSceneKey() + "%")
+                            .or().like(ScenePro::getSceneCode, "%" + param.getSceneKey() + "%")).orderByDesc(ScenePro::getId));
+            if(CollUtil.isEmpty(sceneProPage.getRecords())){
+                return sceneProPage;
+            }
+            List<SceneVO> sceneList = sceneProService.convert(sceneProPage.getRecords());
+
+            Page<SceneVO> result = new Page<>(param.getPageNum(), param.getPageSize());
+            result.setTotal(sceneProPage.getTotal());
+            result.setRecords(sceneList);
+            return result;
+        }
+
+
+        Page<ScenePO> page = new Page<>(param.getPageNum(), param.getPageSize());
+        Page<ScenePO> scenePOPage = baseMapper.selectScenePoByCondition(page, param);
+        if(CollUtil.isEmpty(scenePOPage.getRecords())){
+            return scenePOPage;
+        }
+        List<SceneVO> sceneList = sceneService.convert(scenePOPage.getRecords());
+
+        Page<SceneVO> result = new Page<>(param.getPageNum(), param.getPageSize());
+        result.setTotal(scenePOPage.getTotal());
+        result.setRecords(sceneList);
+
+        return result;
+    }
+
+
+
 }

+ 3 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneParamVO.java

@@ -1,5 +1,7 @@
 package com.fdkankan.scene.vo;
 
+import com.fdkankan.common.request.RequestBase;
+import com.fdkankan.common.response.PageInfo;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -7,7 +9,7 @@ import java.util.Date;
 import java.util.List;
 
 @Data
-public class SceneParamVO implements Serializable {
+public class SceneParamVO extends RequestBase implements Serializable {
 
     private static final long serialVersionUID = 3939730189762555357L;
 
@@ -165,7 +167,4 @@ public class SceneParamVO implements Serializable {
 
     private String likeNum;
 
-    private int pageNum;
-
-    private int pageSize;
 }

+ 26 - 26
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneVO.java

@@ -26,33 +26,33 @@ public class SceneVO implements Serializable{
 
     private String sceneDec;
 
-    private int sceneType;
+    private Integer sceneType;
 
-    private int thumbImg;
+    private Integer thumbImg;
 
-    private int version;
+    private Integer version;
 
     private String markerLogo;
 
     private String floorLogo;
 
-    private int floorLogoSize;
+    private Integer floorLogoSize;
 
     private String entry;
 
     private String createTime;
 
-    private int shootCount;
+    private Integer shootCount;
 
-    private int status;
+    private Integer status;
 
-    private int sceneIndex;
+    private Integer sceneIndex;
 
     private String hasBGM;
 
-    private int cameraType;
+    private Integer cameraType;
 
-    private int isPublic;
+    private Integer isPublic;
 
     private String gps;
 
@@ -62,29 +62,29 @@ public class SceneVO implements Serializable{
 
     private String nickName;
 
-    private int viewCount;
+    private Integer viewCount;
 
     private String webSite;
 
     private String dataSource;
 
-    private int payStatus;
+    private Integer payStatus;
 
     private String phoneId;
 
     private String num;
 
-    private int recommend;
+    private Integer recommend;
 
-    private int thumbStatus;
+    private Integer thumbStatus;
 
     private String hotsIds;
 
     private String initialPointId;
 
-    private int style;
+    private Integer style;
 
-    private int sceneScheme;
+    private Integer sceneScheme;
 
     private String bgMusic;
 
@@ -98,11 +98,11 @@ public class SceneVO implements Serializable{
 
     private String shareLogo;
 
-    private int mapVisi;
+    private Integer mapVisi;
 
-    private int tourVisi;
+    private Integer tourVisi;
 
-    private int vrVisi;
+    private Integer vrVisi;
 
 
     /**
@@ -134,12 +134,12 @@ public class SceneVO implements Serializable{
     /**
      * 重新建模的版本
      */
-    private int floorEditVer;
+    private Integer floorEditVer;
 
     /**
      * 正式发布重新建模的版本
      */
-    private int floorPublishVer;
+    private Integer floorPublishVer;
 
     /**
      * 录屏图片
@@ -159,20 +159,20 @@ public class SceneVO implements Serializable{
     /**
      * 展示页面是否显示标尺
      */
-    private int rulerVisi;
+    private Integer rulerVisi;
 
     /**
      * 展示页面cad图在平面图是否显示
      */
-    private int cadImgVisi;
+    private Integer cadImgVisi;
 
-    private int panoVisi;
+    private Integer panoVisi;
 
-    private int m2dVisi;
+    private Integer m2dVisi;
 
-    private int m3dVisi;
+    private Integer m3dVisi;
 
-    private int measureVisi;
+    private Integer measureVisi;
 
     private String videos;
 

+ 18 - 4
4dkankan-center-scene/src/main/resources/mapper/scene/SceneMapper.xml

@@ -87,7 +87,7 @@
         FROM t_scene t
         left join  t_scene_ext ext on t.id = ext.scene_id
         WHERE (DATEDIFF(t.create_time,NOW())=-1)
-        AND t.scene_code in (1, -2)
+        AND t.scene_status in (1, -2)
         AND pay_status = 0
         AND scene_scheme != 4
         AND rec_status = 'A'
@@ -209,12 +209,12 @@
             LEFT JOIN  t_scene_ext ext ON t.id = ext.scene_id
             UNION
             SELECT t.id,t.scene_name, t.scene_dec, t.web_site, t.thumb, t.scene_type,
-            t.create_time, ext.scene_status, t.user_id, ext.pay_status, t.camera_id, t.scene_code, t.scene_scheme, t.shoot_count,
-            t.rec_status, ext.space, ext.recommend, t.view_count, t.build_type
+            t.create_time, t.scene_status, t.user_id, t.pay_status, t.camera_id, t.scene_code, t.scene_scheme, ext.shoot_count,
+            t.rec_status, ext.space, ext.recommend, ext.view_count, t.build_type
             FROM `t_scene_pro` t
             LEFT JOIN t_scene_pro_ext ext ON t.id = ext.scene_pro_id
         ) a
-        where scene_status = 1 and rec_status = 'A' and pay_status = 1
+        where scene_status = 0
         <if test="searchKey != null and searchKey!= ''">
             AND scene_name LIKE CONCAT('%',#{searchKey},'%')
         </if>
@@ -264,4 +264,18 @@
         
     </select>
 
+    <select id="selectScenePoByCondition" resultType="com.fdkankan.scene.entity.ScenePO">
+        SELECT
+        <include refid="Scene_column" />,
+        <include refid="SceneExt_column" />
+        FROM t_scene t
+        left join  t_scene_ext ext on t.id = ext.scene_id
+        WHERE rec_status = 'A'
+        AND t.scene_status in (1, -2)
+        and (t.scene_name like CONCAT('%',#{param.searchKey},'%') or t.scene_code like CONCAT('%',#{param.searchKey},'%'))
+        <if test="param.orderBy != null and param.orderBy != ''">
+            order by ${param.orderBy}
+        </if>
+    </select>
+
 </mapper>