lyhzzz 8 months ago
parent
commit
58dccd2bb4
32 changed files with 505 additions and 90 deletions
  1. 1 0
      src/main/java/com/fdkankan/manage/constant/FileTypeEnum.java
  2. 30 5
      src/main/java/com/fdkankan/manage/controller/CaseController.java
  3. 8 2
      src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java
  4. 49 0
      src/main/java/com/fdkankan/manage/entity/JyMoveSceneLog.java
  5. 43 0
      src/main/java/com/fdkankan/manage/entity/JySceneUpload.java
  6. 2 1
      src/main/java/com/fdkankan/manage/entity/ScenePlus.java
  7. 2 2
      src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  8. 18 0
      src/main/java/com/fdkankan/manage/mapper/IJyMoveSceneLogMapper.java
  9. 4 0
      src/main/java/com/fdkankan/manage/mapper/IJySceneAuthMapper.java
  10. 18 0
      src/main/java/com/fdkankan/manage/mapper/IJySceneUploadMapper.java
  11. 18 0
      src/main/java/com/fdkankan/manage/service/IJyMoveSceneLogService.java
  12. 4 0
      src/main/java/com/fdkankan/manage/service/IJySceneAuthService.java
  13. 17 0
      src/main/java/com/fdkankan/manage/service/IJySceneUploadService.java
  14. 2 1
      src/main/java/com/fdkankan/manage/service/IJySceneUserAuthService.java
  15. 3 0
      src/main/java/com/fdkankan/manage/service/IJyUserService.java
  16. 2 0
      src/main/java/com/fdkankan/manage/service/IScenePlusService.java
  17. 10 6
      src/main/java/com/fdkankan/manage/service/impl/CaseServiceImpl.java
  18. 1 1
      src/main/java/com/fdkankan/manage/service/impl/CommonServiceImpl.java
  19. 2 2
      src/main/java/com/fdkankan/manage/service/impl/CommonUploadServiceImpl.java
  20. 32 0
      src/main/java/com/fdkankan/manage/service/impl/JyMoveSceneLogServiceImpl.java
  21. 26 0
      src/main/java/com/fdkankan/manage/service/impl/JySceneAuthServiceImpl.java
  22. 27 0
      src/main/java/com/fdkankan/manage/service/impl/JySceneUploadServiceImpl.java
  23. 56 64
      src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java
  24. 75 2
      src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java
  25. 7 0
      src/main/java/com/fdkankan/manage/service/impl/ScenePlusServiceImpl.java
  26. 14 1
      src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  27. 3 2
      src/main/java/com/fdkankan/manage/util/CaseNumTypeUtil.java
  28. 1 0
      src/main/java/com/fdkankan/manage/vo/request/CaseParam.java
  29. 5 0
      src/main/resources/mapper/manage/JyMoveSceneLogMapper.xml
  30. 13 0
      src/main/resources/mapper/manage/JySceneAuthMapper.xml
  31. 5 0
      src/main/resources/mapper/manage/JySceneUploadMapper.xml
  32. 7 1
      src/main/resources/mapper/manage/SceneProMapper.xml

+ 1 - 0
src/main/java/com/fdkankan/manage/constant/FileTypeEnum.java

@@ -12,6 +12,7 @@ public enum FileTypeEnum {
     MUSIC(2,"音频",Arrays.asList("wav","mp3")),
     MODEL(3,"模型",Arrays.asList("obj","osgb","b3dm","ply","las","laz")),
     OTHER(4,"其他",Arrays.asList("shp")),
+    DOC(5,"文档",Arrays.asList("doc","docx","pdf")),
 
     ;
     int code;

+ 30 - 5
src/main/java/com/fdkankan/manage/controller/CaseController.java

@@ -4,10 +4,7 @@ package com.fdkankan.manage.controller;
 import cn.dev33.satoken.stp.StpUtil;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
-import com.fdkankan.manage.entity.Case;
-import com.fdkankan.manage.entity.JySceneAuth;
-import com.fdkankan.manage.entity.JySceneUserAuth;
-import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.vo.request.CaseNumType;
@@ -43,7 +40,10 @@ public class CaseController {
     IJySceneUserAuthService jySceneUserAuthService;
     @Autowired
     IJyUserService  jyUserService;
-
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IJySceneAuthService jySceneAuthService;
     @PostMapping("/list")
     public ResultData pageList(@RequestBody CaseParam param){
         if(param.getIsShare() == 0){
@@ -70,6 +70,17 @@ public class CaseController {
         return ResultData.ok(map.values());
     }
 
+    @GetMapping("/sceneListHasAi")
+    public ResultData sceneListHasAi(@RequestParam(required = false) Integer caseId){
+        List<CaseNum> caseNums = caseNumService.getByCaseId(caseId);
+        List<ScenePlus> collect = new ArrayList<>();
+        if(!caseNums.isEmpty()){
+            List<String> numList = caseNums.stream().map(CaseNum::getNum).collect(Collectors.toList());
+            collect = scenePlusService.getByNumList(numList);
+        }
+        return ResultData.ok(collect);
+    }
+
     @GetMapping("/getCaseByNum")
     public ResultData getCaseByNum(@RequestParam(required = false) String num){
         return ResultData.ok(caseService.getCaseByNum(num));
@@ -78,9 +89,23 @@ public class CaseController {
     @PostMapping("/addOrUpdate")
     public ResultData addOrUpdate(@RequestBody CaseParam param){
         caseService.addOrUpdate(param);
+        List<String> numList = new ArrayList<>();
+        for (CaseNumType caseNumType : param.getSceneNumParam()) {
+            if(!caseNumType.getNumList().isEmpty()){
+                numList.addAll(caseNumType.getNumList());
+            }
+        }
+        if(!numList.isEmpty()){
+            jySceneAuthService.delByNumList(numList);
+        }
         return ResultData.ok();
     }
 
+    @PostMapping("/getCaseNumByRyId")
+    public ResultData getCaseNumByRyId(@RequestBody CaseParam param){
+        return ResultData.ok(jyUserService.getCaseNumByRyId(param));
+    }
+
     @PostMapping("/del")
     public ResultData del(@RequestBody CaseParam param){
         if(param.getCaseId() == null){

+ 8 - 2
src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java

@@ -140,14 +140,20 @@ public class InnerAPIController extends BaseController {
     public ResultData checkNumAuth(@PathVariable String num){
         String clientIP = ServletUtil.getClientIP(request);
 
-        return ResultData.ok( jySceneUserAuthService.checkNumAuth(num,getToken(),clientIP,getUserName(),getPassword()));
+        return ResultData.ok( jySceneUserAuthService.checkNumAuth(num,null,getToken(),clientIP,getUserName(),getPassword()));
+    }
+    @GetMapping("/checkCaseAuth/{caseId}")
+    public ResultData checkCaseAuth(@PathVariable Integer caseId){
+        String clientIP = ServletUtil.getClientIP(request);
+
+        return ResultData.ok( jySceneUserAuthService.checkNumAuth(null,caseId,getToken(),clientIP,getUserName(),getPassword()));
     }
 
     @PostMapping("/checkNumAuth")
     public ResultData checkNumAuth(@RequestBody JSONObject object){
         String clientIP = ServletUtil.getClientIP(request);
 
-        return ResultData.ok( jySceneUserAuthService.checkNumAuth(object.getString("num"),getToken(),clientIP,object.getString("userName"),object.getString("password")));
+        return ResultData.ok( jySceneUserAuthService.checkNumAuth(object.getString("num"),null,getToken(),clientIP,object.getString("userName"),object.getString("password")));
     }
 
     @PostMapping("/getAuthType")

+ 49 - 0
src/main/java/com/fdkankan/manage/entity/JyMoveSceneLog.java

@@ -0,0 +1,49 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Getter
+@Setter
+@TableName("jy_move_scene_log")
+public class JyMoveSceneLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("num")
+    private String num;
+
+    @TableField("new_user_id")
+    private Long newUserId;
+
+    @TableField("old_user_id")
+    private Long oldUserId;
+
+    @TableField("sys_user_id")
+    private Long sysUserId;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 43 - 0
src/main/java/com/fdkankan/manage/entity/JySceneUpload.java

@@ -0,0 +1,43 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Getter
+@Setter
+@TableName("jy_scene_upload")
+public class JySceneUpload implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("num")
+    private String num;
+
+    @TableField("upload_id")
+    private Long uploadId;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 2 - 1
src/main/java/com/fdkankan/manage/entity/ScenePlus.java

@@ -110,5 +110,6 @@ public class ScenePlus implements Serializable {
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
-
+    @TableField("has_ai")
+    private Integer hasAi;
 }

+ 2 - 2
src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"manage", getTables(new String[]{
-                "t_case","t_case_num"
+                "jy_scene_upload"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -46,7 +46,7 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://192.168.0.25:3306/fd_fusion",
+        FastAutoGenerator.create("jdbc:mysql://192.168.0.25:3306/4dkankan_v4",
                 "root","4dkk2023cuikuan%")
                 .globalConfig(builder -> {
                     builder.author("")               //作者

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IJyMoveSceneLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.JyMoveSceneLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Mapper
+public interface IJyMoveSceneLogMapper extends BaseMapper<JyMoveSceneLog> {
+
+}

+ 4 - 0
src/main/java/com/fdkankan/manage/mapper/IJySceneAuthMapper.java

@@ -3,6 +3,9 @@ package com.fdkankan.manage.mapper;
 import com.fdkankan.manage.entity.JySceneAuth;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IJySceneAuthMapper extends BaseMapper<JySceneAuth> {
 
+    List<JySceneAuth> getNumListByPlatform(@Param("platformId") Integer platformId,@Param("authType") Integer authType);
 }

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IJySceneUploadMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.JySceneUpload;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Mapper
+public interface IJySceneUploadMapper extends BaseMapper<JySceneUpload> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/service/IJyMoveSceneLogService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.JyMoveSceneLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+public interface IJyMoveSceneLogService extends IService<JyMoveSceneLog> {
+
+
+    void saveLog(String num, Long userId, Long userId1, Long loginId);
+}

+ 4 - 0
src/main/java/com/fdkankan/manage/service/IJySceneAuthService.java

@@ -29,4 +29,8 @@ public interface IJySceneAuthService extends IService<JySceneAuth> {
     void updateAuthTypeByCaseId(Integer caseId, Integer authType);
 
     List<JySceneAuth> getAllCase();
+
+    List<String> getNumListByPlatform(Integer platformId, Integer authType);
+
+    void delByNumList(List<String> numList);
 }

+ 17 - 0
src/main/java/com/fdkankan/manage/service/IJySceneUploadService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.JySceneUpload;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+public interface IJySceneUploadService extends IService<JySceneUpload> {
+
+    JySceneUpload getByNum(String num);
+}

+ 2 - 1
src/main/java/com/fdkankan/manage/service/IJySceneUserAuthService.java

@@ -37,7 +37,7 @@ public interface IJySceneUserAuthService extends IService<JySceneUserAuth> {
 
     List<JySceneUserAuth> getByJyUserId(Integer jyUserId);
 
-    Object checkNumAuth(String num,String token,String clientIP,String userName,String password);
+    Object checkNumAuth(String num,Integer caseId,String token,String clientIP,String userName,String password);
 
 
     void delByJyUserId(Integer id);
@@ -52,4 +52,5 @@ public interface IJySceneUserAuthService extends IService<JySceneUserAuth> {
     JySceneUserAuth getByCaseIdAndRyId(Integer caseId, String ryId);
 
     JySceneUserAuth getByCaseIdAndRyNo(Integer caseId, String ryNo);
+
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/IJyUserService.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.service;
 
 import com.fdkankan.manage.entity.JyUser;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.CaseParam;
 import com.fdkankan.manage.vo.request.UserParam;
 
 import java.util.HashMap;
@@ -49,4 +50,6 @@ public interface IJyUserService extends IService<JyUser> {
     JyUser getByNickName(String name);
 
     List<JyUser> getByAddParam(UserParam param);
+
+    Object getCaseNumByRyId(CaseParam param);
 }

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

@@ -34,4 +34,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     Page<UserShareSceneVo> shareScenePageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
     Page<UserShareSceneVo> sceneAuthPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
     Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
+
+    List<ScenePlus> getByNumList(List<String> numList);
 }

+ 10 - 6
src/main/java/com/fdkankan/manage/service/impl/CaseServiceImpl.java

@@ -7,18 +7,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
-import com.fdkankan.manage.entity.Case;
-import com.fdkankan.manage.entity.CaseNum;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.httpClient.client.FdKKClient;
 import com.fdkankan.manage.mapper.ICaseMapper;
-import com.fdkankan.manage.service.ICaseNumService;
-import com.fdkankan.manage.service.ICaseService;
+import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.util.CaseNumTypeUtil;
 import com.fdkankan.manage.vo.request.CaseNumType;
 import com.fdkankan.manage.vo.request.CaseParam;
+import com.fdkankan.manage.vo.response.SceneAuthVo;
+import com.fdkankan.manage.vo.response.UserAuthSceneVo;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -42,6 +43,8 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
 
     @Autowired
     ICaseNumService caseNumService;
+
+
     @Override
     public Object pageList(CaseParam param) {
         LambdaQueryWrapper<Case> wrapper = new LambdaQueryWrapper<>();
@@ -57,6 +60,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
             }
             wrapper.in(Case::getCaseId,param.getCaseIds());
         }
+        wrapper.orderByDesc(Case::getCaseId);
         Page<Case> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
         return PageInfo.PageInfo(page);
     }
@@ -81,6 +85,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
 
     @Autowired
     FdKKClient fdKKClient;
+
     @Override
     public void addOrUpdate(CaseParam param) {
         Case  caseEntity;
@@ -98,7 +103,6 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
             caseNumService.delByCaseId(caseEntity.getCaseId());
             return;
         }
-
         List<CaseNumType> newParam = new ArrayList<>();
         for (CaseNumType caseNumType : param.getSceneNumParam()) {
             List<Integer> numType = CaseNumTypeUtil.getNumType(caseNumType.getType());
@@ -112,7 +116,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
             }
         }
         param.setSceneNumParam(newParam);
-
+        param.setCaseId(caseEntity.getCaseId());
         try {
             ResultData resultData = fdKKClient.addScene(param, StpUtil.getTokenValue());
             if(resultData.getCode() !=0){

+ 1 - 1
src/main/java/com/fdkankan/manage/service/impl/CommonServiceImpl.java

@@ -182,7 +182,7 @@ public class CommonServiceImpl implements ICommonService {
     }
 
     private String uploadB3dm(String unzipPath, File modelFile) {
-       String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(modelFile);
+       String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(new File(unzipPath));
         if(b3dmJsonPath == null){
             throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
         }

+ 2 - 2
src/main/java/com/fdkankan/manage/service/impl/CommonUploadServiceImpl.java

@@ -33,8 +33,8 @@ public class CommonUploadServiceImpl extends ServiceImpl<ICommonUploadMapper, Co
         upload.setNewFileName(uuid);
         upload.setFileType(fileTypeEnum.getCode());
         upload.setFileTypeStr(fileTypeEnum.getMsg());
-        upload.setFileFormat(replace1);
-        upload.setResultFileFormat(resultFormat);
+        upload.setFileFormat(resultFormat);
+        upload.setResultFileFormat(replace1);
         upload.setStatus(status);
         upload.setUnzipPath(unzipPath);
         this.save(upload);

+ 32 - 0
src/main/java/com/fdkankan/manage/service/impl/JyMoveSceneLogServiceImpl.java

@@ -0,0 +1,32 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.JyMoveSceneLog;
+import com.fdkankan.manage.mapper.IJyMoveSceneLogMapper;
+import com.fdkankan.manage.service.IJyMoveSceneLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Service
+public class JyMoveSceneLogServiceImpl extends ServiceImpl<IJyMoveSceneLogMapper, JyMoveSceneLog> implements IJyMoveSceneLogService {
+
+
+    @Override
+    public void saveLog(String num, Long userId, Long userId1, Long loginId) {
+        JyMoveSceneLog jyMoveSceneLog = new JyMoveSceneLog();
+        jyMoveSceneLog.setNum(num);
+        jyMoveSceneLog.setNewUserId(userId1);
+        jyMoveSceneLog.setOldUserId(userId);
+        jyMoveSceneLog.setSysUserId(loginId);
+        this.save(jyMoveSceneLog);
+
+    }
+}

+ 26 - 0
src/main/java/com/fdkankan/manage/service/impl/JySceneAuthServiceImpl.java

@@ -4,9 +4,12 @@ import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.manage.entity.JySceneAuth;
+import com.fdkankan.manage.entity.JySceneUserAuth;
 import com.fdkankan.manage.mapper.IJySceneAuthMapper;
 import com.fdkankan.manage.service.IJySceneAuthService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.IJySceneUserAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -57,6 +60,12 @@ public class JySceneAuthServiceImpl extends ServiceImpl<IJySceneAuthMapper, JySc
     }
 
     @Override
+    public List<String> getNumListByPlatform(Integer platformId, Integer authType) {
+        List<JySceneAuth>  list = this.getBaseMapper().getNumListByPlatform(platformId,authType);
+        return list.stream().map(JySceneAuth::getNum).collect(Collectors.toList());
+    }
+
+    @Override
     public void updateAuthTypeByNum(String num, Integer authType) {
         JySceneAuth auth = this.getByNum(num);
         if(auth == null){
@@ -99,4 +108,21 @@ public class JySceneAuthServiceImpl extends ServiceImpl<IJySceneAuthMapper, JySc
         wrapper.isNotNull(JySceneAuth::getCaseId);
         return this.list(wrapper);
     }
+
+    @Autowired
+    IJySceneUserAuthService jySceneUserAuthService;
+    @Override
+    public void delByNumList(List<String> numList) {
+        if(numList.isEmpty()){
+            return;
+        }
+        LambdaQueryWrapper<JySceneAuth> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(JySceneAuth::getNum,numList);
+        this.remove(wrapper);
+
+        LambdaQueryWrapper<JySceneUserAuth> wrapper2 = new LambdaQueryWrapper<>();
+        wrapper2.in(JySceneUserAuth::getNum,numList);
+        jySceneUserAuthService.remove(wrapper2);
+
+    }
 }

+ 27 - 0
src/main/java/com/fdkankan/manage/service/impl/JySceneUploadServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.JySceneUpload;
+import com.fdkankan.manage.mapper.IJySceneUploadMapper;
+import com.fdkankan.manage.service.IJySceneUploadService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-20
+ */
+@Service
+public class JySceneUploadServiceImpl extends ServiceImpl<IJySceneUploadMapper, JySceneUpload> implements IJySceneUploadService {
+
+    @Override
+    public JySceneUpload getByNum(String num) {
+        LambdaQueryWrapper<JySceneUpload> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JySceneUpload::getNum,num);
+        return this.getOne(wrapper);
+    }
+}

+ 56 - 64
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -252,27 +252,13 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
             throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
         }
 
-        Long sceneUserId = null;
+        Long sceneUserId = getUserId(param.getNum(),param.getCaseId());
         JySceneUserAuth jySceneUserAuth = null;
         if(StringUtils.isNotBlank(param.getNum())){
-            ScenePlus plus = scenePlusService.getByNum(param.getNum());
-            if(plus == null){
-                throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
-            }
             caseService.checkNumInCase(param.getNum());
-            sceneUserId = plus.getUserId();
             jySceneUserAuth = jySceneUserAuthService.getByNumAndJyUserId(jyUser.getId(), param.getNum(),param.getAuthType());
         }
         if(param.getCaseId() != null){
-            Case caseEntity = caseService.getById(param.getCaseId());
-            if(caseEntity == null){
-                throw new BusinessException(ResultCode.CASE_NOT_EXIST);
-            }
-            JyUser jyUser2 = jyUserService.getBySysId(caseEntity.getSysUserId());
-            if(jyUser2 == null){
-                throw new BusinessException(ResultCode.USER_NOT_EXIST);
-            }
-            sceneUserId = jyUser2.getUserId();
             jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), param.getCaseId(),param.getAuthType());
         }
 
@@ -414,26 +400,7 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
         if(StringUtils.isNotBlank(param.getNum()) && param.getCaseId() !=null){
             param.setCaseId(null);
         }
-        Long sceneUserId = null;
-        if(StringUtils.isNotBlank(param.getNum())){
-            ScenePlus plus = scenePlusService.getByNum(param.getNum());
-            if(plus == null){
-                throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
-            }
-            caseService.checkNumInCase(param.getNum());
-            sceneUserId = plus.getUserId();
-        }
-        if(param.getCaseId() != null){
-            Case caseEntity = caseService.getById(param.getCaseId());
-            if(caseEntity == null){
-                throw new BusinessException(ResultCode.CASE_NOT_EXIST);
-            }
-            JyUser jyUser2 = jyUserService.getBySysId(caseEntity.getSysUserId());
-            if(jyUser2 == null){
-                throw new BusinessException(ResultCode.USER_NOT_EXIST);
-            }
-            sceneUserId = jyUser2.getUserId();
-        }
+        Long sceneUserId = getUserId(param.getNum(),param.getCaseId());
 
         CheckOtherVo vo = new CheckOtherVo();
         SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
@@ -475,30 +442,62 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
     @Autowired
     IJyUserPlatformService jyUserPlatformService;
 
+    private Long getUserId(String num ,Integer caseId){
+        if(StringUtils.isNotBlank(num)){
+            ScenePlus plus = scenePlusService.getByNum(num);
+            if( plus == null){
+                throw new BusinessException(ResultCode.SCENE_NOT_EXITS);
+            }
+            return plus.getUserId();
+        }
+        if(caseId != null){
+            Case caseEntity = caseService.getById(caseId);
+            if(caseEntity == null){
+                throw new BusinessException(ResultCode.CASE_NOT_EXIST);
+            }
+            JyUser jyUser2 = jyUserService.getBySysId(caseEntity.getSysUserId());
+            if(jyUser2 == null){
+                throw new BusinessException(ResultCode.USER_NOT_EXIST);
+            }
+           return jyUser2.getUserId();
+        }
+        return null;
+    }
+
+    private JySceneAuth getBySceneAuth(String num ,Integer caseId){
+        if(StringUtils.isNotBlank(num)){
+            return jySceneAuthService.getByNum(num);
+        }
+        if(caseId != null){
+            return jySceneAuthService.getByCaseId(caseId);
+        }
+        return null;
+    }
+
     @Override
-    public Object checkNumAuth(String num,String token,String clientIP,String userName,String password) {
-        if(StringUtils.isBlank(num)){
+    public Object checkNumAuth(String num,Integer caseId,String token,String clientIP,String userName,String password) {
+        if(StringUtils.isBlank(num) && caseId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
-        log.info("checkNumAuth-----------num:{},token:{},userName:{},password:{}",num,token,userName,password);
-        ScenePro pro = sceneProService.getByNum(num);
-        ScenePlus plus = scenePlusService.getByNum(num);
-        if(pro == null && plus == null){
-            throw new BusinessException(ResultCode.SCENE_NOT_EXITS);
-        }
-        Long sceneUserId = pro == null ? plus.getUserId():pro.getUserId();
+        log.info("checkNumAuth-----------num:{},caseId:{},token:{},userName:{},password:{}",num,caseId,token,userName,password);
+        Long sceneUserId = getUserId(num,caseId);
+        JySceneAuth jySceneAuth = getBySceneAuth(num,caseId);
         SceneAuthVo sceneAuthVo = new SceneAuthVo();
 
-        JySceneAuth jySceneAuth = jySceneAuthService.getByNum(num);
+        //公开场景案件,指针对同平台
         if(jySceneAuth!=null && jySceneAuth.getAuthType() == 1){
             sceneAuthVo.setViewAuth(true);
         }
-        List<Case> caseList = caseService.getCaseByNum(num);
-        for (Case aCase : caseList) {
-            JySceneAuth jySceneAuth1 = jySceneAuthService.getByCaseId(aCase.getCaseId());
-            if(jySceneAuth1!=null && jySceneAuth1.getAuthType() == 1){
-                sceneAuthVo.setViewAuth(true);
-                break;
+
+        List<Case> caseList = null;
+        if(StringUtils.isNotBlank(num)){
+            caseList = caseService.getCaseByNum(num);
+            for (Case aCase : caseList) {
+                JySceneAuth jySceneAuth1 = jySceneAuthService.getByCaseId(aCase.getCaseId());
+                if(jySceneAuth1!=null && jySceneAuth1.getAuthType() == 1){
+                    sceneAuthVo.setViewAuth(true);
+                    break;
+                }
             }
         }
 
@@ -553,26 +552,20 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
         if(jySceneAuth != null  ){
             JySceneUserAuth jySceneUserAuth = jySceneUserAuthService.getByNumAndJyUserId(jyUser.getId(), num,jySceneAuth.getAuthType());
             setFlag(jySceneUserAuth,sceneAuthVo);
-        }
-        if(!caseList.isEmpty()){
-            for (Case aCase : caseList) {
-                JySceneUserAuth jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), aCase.getCaseId(),jySceneAuth.getAuthType());
-                setFlag(jySceneUserAuth,sceneAuthVo);
+            if(caseList != null && !caseList.isEmpty()){
+                for (Case aCase : caseList) {
+                    jySceneUserAuth = jySceneUserAuthService.getByCaseIdAndJyUserId(jyUser.getId(), aCase.getCaseId(),jySceneAuth.getAuthType());
+                    setFlag(jySceneUserAuth,sceneAuthVo);
+                }
             }
         }
 
-        if(pro != null && jyUser.getUserId().equals(pro.getUserId())){
-            sceneAuthVo.setViewAuth(true);
-            sceneAuthVo.setEditAuth(true);
-            sceneAuthVo.setIsAuthor(true);
-        }
-        if(plus != null && jyUser.getUserId().equals(plus.getUserId())){
+        if(jyUser.getUserId().equals(sceneUserId)){
             sceneAuthVo.setViewAuth(true);
             sceneAuthVo.setEditAuth(true);
             sceneAuthVo.setIsAuthor(true);
         }
         if(!sceneAuthVo.getViewAuth()){
-
             List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId());
             List<Integer> mainUserIds = jyUserShares.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
             HashMap<Integer,Long> roleMap = new HashMap<>();
@@ -593,7 +586,6 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
             }
 
 
-
         }
         return sceneAuthVo;
     }

+ 75 - 2
src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java

@@ -3,13 +3,17 @@ package com.fdkankan.manage.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.manage.common.ResultCode;
-import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IJyUserMapper;
-import com.fdkankan.manage.service.IJyUserService;
+import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.request.CaseParam;
 import com.fdkankan.manage.vo.request.UserParam;
+import com.fdkankan.manage.vo.response.UserAuthSceneVo;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -170,4 +174,73 @@ public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implem
     public List<JyUser> getByAddParam(UserParam param) {
         return this.getBaseMapper().getByAddParam(param);
     }
+
+    @Autowired
+    IJyUserService jyUserService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
+    @Autowired
+    IJySceneUserAuthService jySceneUserAuthService;
+    @Autowired
+    ICaseNumService caseNumService;
+
+
+    @Override
+    public Object getCaseNumByRyId(CaseParam param) {
+        if(StringUtils.isBlank(param.getRyId()) || param.getCaseId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        JyUser jyUser = jyUserService.getByRyId(param.getRyId());
+        if(jyUser == null || jyUser.getUserId() == null){
+            throw new BusinessException(ResultCode.USER_NOT_EXIST);
+        }
+        List<UserAuthSceneVo> voList = new ArrayList<>();
+
+
+        List<JySceneUserAuth> jySceneUserAuths = jySceneUserAuthService.getByJyUserId(jyUser.getId());
+        if(jySceneUserAuths.isEmpty()){
+            return voList;
+        }
+
+        List<CaseNum> caseNums = caseNumService.getByCaseId(param.getCaseId());
+        if(caseNums.isEmpty()){
+            return voList;
+        }
+        List<String> numList = caseNums.stream().map(CaseNum::getNum).collect(Collectors.toList());
+
+        List<String> authNumList = jySceneUserAuths.stream().map(JySceneUserAuth::getNum).collect(Collectors.toList());
+        List<String> containList = authNumList.stream().filter(numList::contains).collect(Collectors.toList());
+        if(containList.isEmpty()){
+            return voList;
+        }
+        List<ScenePlus> scenePluses = scenePlusService.getByNumList(containList);
+
+        if(scenePluses.isEmpty()){
+            return voList;
+        }
+        List<Long> plusIds = scenePluses.stream().map(ScenePlus::getId).collect(Collectors.toList());
+        HashMap<Long, ScenePlusExt> byPlusIds = scenePlusExtService.getByPlusIds(plusIds);
+
+        HashMap<String,JySceneUserAuth> map = new HashMap<>();
+        jySceneUserAuths.forEach( e ->map.put(e.getNum(),e));
+
+        for (ScenePlus scenePlus : scenePluses) {
+            UserAuthSceneVo vo = new UserAuthSceneVo();
+            BeanUtils.copyProperties(scenePlus,vo);
+            ScenePlusExt ext = byPlusIds.get(scenePlus.getId());
+            if(ext != null){
+                BeanUtils.copyProperties(ext,vo);
+            }
+            JySceneUserAuth jySceneUserAuth = map.get(scenePlus.getNum());
+            if(jySceneUserAuth != null){
+                BeanUtils.copyProperties(jySceneUserAuth,vo);
+            }
+            voList.add(vo);
+        }
+
+
+        return voList;
+    }
 }

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

@@ -88,4 +88,11 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     public Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param) {
         return this.getBaseMapper().sceneAuthVoPageList(objectPage,param);
     }
+
+    @Override
+    public List<ScenePlus> getByNumList(List<String> numList) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlus::getNum,numList);
+        return this.list(wrapper);
+    }
 }

+ 14 - 1
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -98,6 +98,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     IJyUserPlatformService jyUserPlatformService;
     @Autowired
     IUserService userService;
+    @Autowired
+    IJyMoveSceneLogService jyMoveSceneLogService;
+    @Autowired
+    IJySceneUploadService jySceneUploadService;
 
 
     @Override
@@ -321,7 +325,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
 
         if(param.getSceneType() == 1){
-            List<String> openNums = jySceneAuthService.getOpenNumList();
+            //List<String> openNums = jySceneAuthService.getOpenNumList();
+            List<String> openNums = jySceneAuthService.getNumListByPlatform(param.getPlatformId(),1);
             if(!openNums.isEmpty()){
                 param.getAuthNumList().addAll(openNums);
             }
@@ -481,11 +486,19 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(jyUser == null){
             throw new BusinessException(ResultCode.USER_NOT_EXIST);
         }
+        JySceneUpload jySceneUpload = jySceneUploadService.getByNum(param.getNum());
+        if(jySceneUpload == null){
+            jySceneUpload = new JySceneUpload();
+            jySceneUpload.setUploadId(scenePlus.getUserId());
+            jySceneUpload.setNum(scenePlus.getNum());
+            jySceneUploadService.save(jySceneUpload);
+        }
 
         LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(ScenePlus::getId,scenePlus.getId());
         wrapper.set(ScenePlus::getUserId,jyUser.getUserId());
         scenePlusService.update(wrapper);
+        jyMoveSceneLogService.saveLog(scenePlus.getNum(),scenePlus.getUserId(),jyUser.getUserId(),Long.valueOf(StpUtil.getLoginId().toString()));
 
     }
 

+ 3 - 2
src/main/java/com/fdkankan/manage/util/CaseNumTypeUtil.java

@@ -5,7 +5,7 @@ import java.util.List;
 
 public class CaseNumTypeUtil {
 
-    //0 四维看看,1看见场景,2 深时场景,3 三维模型,4深时obj ,5深光点云,6深光obj
+    //0 四维看看,1看见场景,2 深时场景,3 三维模型,4深时obj ,5深光点云,6深光obj,7第三方相机
     public static Integer getCaseNumType(String num,Integer numType){
         String numpre = num.split("-")[0];
         switch (numpre){
@@ -13,6 +13,7 @@ public class CaseNumTypeUtil {
             case "KJ" : return 1;
             case "SS" : return numType == 0?2:4;
             case "SG" : return numType == 0?5:6;
+            case "YZL" : return 7;
             default: return null;
         }
     }
@@ -27,6 +28,6 @@ public class CaseNumTypeUtil {
         if(type == 0){
             return Arrays.asList(2,5);
         }
-        return Arrays.asList(0,1,4,6);
+        return Arrays.asList(0,1,4,6,7);
     }
 }

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

@@ -27,4 +27,5 @@ public class CaseParam extends RequestBase{
 
     private List<Integer> caseIds;
 
+    private String ryId;
 }

+ 5 - 0
src/main/resources/mapper/manage/JyMoveSceneLogMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.manage.mapper.IJyMoveSceneLogMapper">
+
+</mapper>

+ 13 - 0
src/main/resources/mapper/manage/JySceneAuthMapper.xml

@@ -2,4 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.manage.mapper.IJySceneAuthMapper">
 
+    <select id="getNumListByPlatform" resultType="com.fdkankan.manage.entity.JySceneAuth">
+        SELECT au.* from jy_scene_auth au
+              LEFT JOIN t_scene_plus s on au.num = s.num
+              LEFT JOIN jy_user ju on s.user_id = ju.user_id
+        WHERE au.rec_status = 'A'
+        <if test="platformId != null">
+           and  ju.platform_id = #{platformId}
+        </if>
+        <if test="authType != null">
+           and  au.auth_type = #{authType}
+        </if>
+
+    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/manage/JySceneUploadMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.manage.mapper.IJySceneUploadMapper">
+
+</mapper>

+ 7 - 1
src/main/resources/mapper/manage/SceneProMapper.xml

@@ -84,8 +84,14 @@
             and e.is_obj = 1
         </if>
 
+        <if test="param.isObj != null and param.isObj == 0">
+            and s.scene_source in (4,5)
+        </if>
+
         <if test="param.isObj != null and param.isObj == 1">
-            and e.is_obj = 1
+            and ( e.is_obj = 1 or
+                s.scene_source not in (4,5)
+            )
         </if>
 
         <if test="param.snCode != null and param.snCode !='' ">