Bladeren bron

修改场景归属逻辑

tianboguang 2 jaren geleden
bovenliggende
commit
66e76952e6

+ 16 - 1
src/main/java/com/fdkankan/contro/controller/SceneFileController.java

@@ -8,8 +8,10 @@ import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.SnowflakeIdGenerator;
 import com.fdkankan.contro.constant.RedisConstants;
 import com.fdkankan.contro.entity.SceneFileBuild;
+import com.fdkankan.contro.entity.User;
 import com.fdkankan.contro.service.ISceneFileBuildService;
 import com.fdkankan.contro.service.IScenePlusService;
+import com.fdkankan.contro.service.IUserService;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.model.constants.ConstantFilePath;
 import com.fdkankan.redis.util.RedisLockUtil;
@@ -48,6 +50,9 @@ public class SceneFileController{
     private RedisUtil redisUtil;
 
     @Autowired
+    private IUserService userService;
+
+    @Autowired
     private IScenePlusService scenePlusService;
 
     @Value("${nas.dir.base:/mnt}")
@@ -64,9 +69,13 @@ public class SceneFileController{
     public ResultData sendCallAlgorithm(@RequestBody Map<String,String> params) throws Exception {
         log.info("sendCallAlgorithm 参数为:{}",JSONObject.toJSONString(params));
         String filePath = params.get("filePath");
+        String userName = params.get("userName");
         if(ObjectUtils.isEmpty(filePath)){
             throw new BusinessException(ErrorCode.PARAM_ERROR,"filePath为空。");
         }
+        if(ObjectUtils.isEmpty(userName)){
+            throw new BusinessException(ErrorCode.PARAM_ERROR,"userName为空。");
+        }
         if(!filePath.endsWith(File.separator)){
             filePath = filePath.concat(File.separator);
         }
@@ -79,6 +88,12 @@ public class SceneFileController{
             throw new BusinessException(ErrorCode.PARAM_ERROR,"缺少 config.json 文件");
         }
 
+        // 手机号校验
+        User user = userService.getUserByUserName(userName);
+        if (ObjectUtils.isEmpty(user)) {
+            throw new BusinessException(ErrorCode.PARAM_ERROR, "userName 未注册!");
+        }
+
         JSONObject configJson = JSONObject.parseObject(FileUtils.readFile(filePath + "config.json"));
 
         String folderName = configJson.getString("id");
@@ -110,7 +125,7 @@ public class SceneFileController{
         fYunFileService.uploadFileByCommand(filePath.concat(folderName), ConstantFilePath.OSS_PREFIX.concat(subFolder));
 
         // 通知计算
-        return sceneFileBuildService.copyDataAndBuild(null,dataSource ,"V4");
+        return sceneFileBuildService.copyDataAndBuild(null,dataSource ,"V4",user);
     }
 
     private String getFileIdByFolderName(String folderName) {

+ 2 - 2
src/main/java/com/fdkankan/contro/service/ISceneFileBuildService.java

@@ -2,7 +2,7 @@ package com.fdkankan.contro.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.contro.entity.SceneFileBuild;
-import com.fdkankan.contro.vo.ResponseSceneFile;
+import com.fdkankan.contro.entity.User;
 import com.fdkankan.web.response.ResultData;
 
 import java.io.IOException;
@@ -21,7 +21,7 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
     ResultData rebuildScene(String num,Boolean force,Boolean deleteExtras) throws IOException;
 
-    ResultData copyDataAndBuild(String sourceBucet,String dataSource,String sceneVer) throws Exception;
+    ResultData copyDataAndBuild(String sourceBucet, String dataSource, String sceneVer, User user) throws Exception;
 
     SceneFileBuild findByUnicode(String folderName);
 }

+ 1 - 0
src/main/java/com/fdkankan/contro/service/IUserService.java

@@ -18,4 +18,5 @@ public interface IUserService extends IService<User> {
 
     SSOUser getSSOUserByUserId(Long userId);
 
+    User getUserByUserName(String userName);
 }

+ 4 - 10
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -133,17 +133,11 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
 
     private ScenePlusVO buildScenePost(String dataSource, JSONObject jsonObject, String buildType, long cameraType,
-                                       String sceneNum, CameraDetail cameraDetail, int rebuild,String icon) throws Exception {
+                                       String sceneNum, CameraDetail cameraDetail, int rebuild,String icon,User user) throws Exception {
         String localDataPath = String.format(ConstantFilePath.DATABUFFER_FORMAT, sceneNum);
         String imgViewPath = String.format(UploadFilePath.IMG_VIEW_PATH, sceneNum);
         String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, sceneNum);
 
-        String userName = null;
-        if (!ObjectUtils.isEmpty(cameraDetail.getUserId())) {
-            SSOUser user = userService.getSSOUserByUserId(cameraDetail.getUserId());
-            userName = ObjectUtils.isEmpty(user) ? null : user.getUserName();
-        }
-
         JSONObject firmwareVersion = new JSONObject();
         if (!ObjectUtils.isEmpty(jsonObject.getString("camSoftwareVersion"))) {
             firmwareVersion.put("camSoftwareVersion", jsonObject.getString("camSoftwareVersion"));
@@ -168,7 +162,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         String algorithm = jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam";
 
         ScenePlusVO scenePlusVO = this.createScenePlus(sceneNum, cameraDetail.getCameraId(), jsonObject.getString("creator"),
-                jsonObject.getString("pwd"),cameraType, dataSource, icon,  cameraDetail.getUserId(), userName,algorithm,
+                jsonObject.getString("pwd"),cameraType, dataSource, icon,user.getId() , user.getUserName(),algorithm,
                 jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                 jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                 jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, cameraDetail.getCooperationUser());
@@ -447,7 +441,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     }
 
     @Override
-    public ResultData copyDataAndBuild(String sourceBucet,String dataSource,String sceneVer) throws Exception {
+    public ResultData copyDataAndBuild(String sourceBucet,String dataSource,String sceneVer,User user) throws Exception {
         if(!StringUtils.equals(sceneVer,"V3") && ! StringUtils.equals(sceneVer,"V4")){
             throw new BusinessException(ErrorCode.PARAM_FORMAT_ERROR.code(),"版本有误,请填写 V3 或者 V4");
         }
@@ -507,7 +501,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                     icon = fYunFileConfig.getHost() + imgViewPath + fdageData.getString("icon");
                     log.info("上传icon成功....");
                 }
-                buildScenePost(dataSource, fdageData, "V3", cameraType, sceneNum, detailEntity, rebuild, icon);
+                buildScenePost(dataSource, fdageData, "V3", cameraType, sceneNum, detailEntity, rebuild, icon,user);
                 break;
         }
         Map<String,Object> result = new HashMap<>();

+ 14 - 0
src/main/java/com/fdkankan/contro/service/impl/UserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.contro.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
@@ -8,6 +9,8 @@ import com.fdkankan.contro.entity.User;
 import com.fdkankan.contro.mapper.IUserMapper;
 import com.fdkankan.contro.service.IUserService;
 import com.fdkankan.redis.util.RedisUtil;
+
+import java.util.List;
 import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -48,6 +51,17 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         return this.getSsoUserByUserName(user,user.getUserName());
     }
 
+    @Override
+    public User getUserByUserName(String userName) {
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(User::getUserName,userName);
+        List<User> list = this.list(wrapper);
+        if(list != null && list.size() >0){
+            return list.get(0);
+        }
+        return null;
+    }
+
 }