lyhzzz преди 2 седмици
родител
ревизия
9bfcd7e8fb

+ 6 - 0
pom.xml

@@ -174,6 +174,12 @@
       <version>3.0.0-SNAPSHOT</version>
     </dependency>
 
+    <dependency>
+      <groupId>com.fdkankan</groupId>
+      <artifactId>4dkankan-utils-sign</artifactId>
+      <version>3.0.0-SNAPSHOT</version>
+    </dependency>
+
   </dependencies>
 
   <build>

+ 5 - 0
src/main/java/com/fdkankan/manage/config/ManageConfig.java

@@ -15,4 +15,9 @@ public class ManageConfig {
     @Value("${manage.authRtkExTime:2025-06-30 00:00:00}")
     private String authRtkExTime;
 
+    @Value("${manage.sign.publicKey}")
+    public String publicKey;
+
+    @Value("${manage.sign.appid}")
+    public String appid;
 }

+ 21 - 0
src/main/java/com/fdkankan/manage/controller/AppSecretController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-07-09
+ */
+@RestController
+@RequestMapping("/manage/appSecret")
+public class AppSecretController {
+
+}
+

+ 54 - 0
src/main/java/com/fdkankan/manage/entity/AppSecret.java

@@ -0,0 +1,54 @@
+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.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-07-09
+ */
+@Getter
+@Setter
+@TableName("t_app_secret")
+public class AppSecret implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("app_id")
+    private String appId;
+
+    @TableField("public_key")
+    private String publicKey;
+
+    @TableField("private_key")
+    private String privateKey;
+
+    @TableField("remark")
+    private String remark;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 1 - 1
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_authorize_camera_detail_order"
+                "t_app_secret"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 33 - 0
src/main/java/com/fdkankan/manage/httpClient/SignInterceptor.java

@@ -0,0 +1,33 @@
+package com.fdkankan.manage.httpClient;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.interceptor.Interceptor;
+import com.dtflys.forest.reflection.ForestMethod;
+import com.fdkankan.manage.config.ManageConfig;
+import com.fdkankan.sign.RsaUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.time.Instant;
+import java.util.Date;
+
+@Component
+@Slf4j
+public class SignInterceptor implements Interceptor<JSONObject> {
+
+    @Autowired
+    ManageConfig manageConfig;
+
+    @Override
+    public void onInvokeMethod(ForestRequest request, ForestMethod method, Object[] args) {
+        JSONObject playload = new JSONObject();
+        playload.put("appId", manageConfig.getAppid());
+        playload.put("timestamp", new Date().getTime());
+        request.addHeader("sign", RsaUtils.encipher(playload.toJSONString(),manageConfig.getPublicKey()));
+        request.addHeader("appId", manageConfig.getAppid());
+
+    }
+}

+ 2 - 1
src/main/java/com/fdkankan/manage/httpClient/client/FdKKClient.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.httpClient.client;
 
 import com.alibaba.fastjson.JSONObject;
 import com.dtflys.forest.annotation.*;
+import com.fdkankan.manage.httpClient.SignInterceptor;
 import com.fdkankan.manage.httpClient.address.FdkkAddressSource;
 
 import java.util.HashMap;
@@ -13,7 +14,7 @@ import java.util.HashMap;
 public interface FdKKClient {
 
 
-    @Get(value = "/api/scene/file/rebuildScene" ,timeout = 60000,connectTimeout = 60000)
+    @Get(value = "/api/scene/file/rebuildScene",interceptor = SignInterceptor.class,timeout = 60000,connectTimeout = 60000)
     JSONObject rebuildScene( @Query HashMap<String, Object> param);
 
     @Get("/ucenter/_manage/_copy_scene")

+ 13 - 12
src/main/java/com/fdkankan/manage/httpClient/client/LaserClient.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.httpClient.client;
 
 import com.dtflys.forest.annotation.*;
 import com.fdkankan.manage.common.Result;
+import com.fdkankan.manage.httpClient.SignInterceptor;
 import com.fdkankan.manage.httpClient.address.LaserAddressSource;
 import com.fdkankan.manage.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.manage.httpClient.param.LaserSceneParam;
@@ -22,65 +23,65 @@ public interface LaserClient {
     /**
      * 获取深时场景数据
      */
-    @Post("/laser/4dage/managerSceneList")
+    @Post(value = "/laser/4dage/managerSceneList",interceptor = SignInterceptor.class)
     FdkkResponse sceneList(@JSONBody LaserSceneParam param);
     /**
      * 相机迁移
      */
-    @Post("/laser/4dage/scene/migrate")
+    @Post(value = "/laser/4dage/scene/migrate",interceptor = SignInterceptor.class)
     FdkkResponse migrate(@JSONBody LaserSceneMoveParam param);
     /**
      * 修改场景状态
      */
-    @Get("/indoor/{sceneNum}/scene/useStatus/{status}")
+    @Get(value = "/indoor/{sceneNum}/scene/useStatus/{status}",interceptor = SignInterceptor.class)
     Result updateSceneStatus(@Var("sceneNum") String sceneNum, @Var("status")Integer status);
     /**
      * 获取相机场景数
      * @param param
      */
-    @Post("/laser/4dage/scene/getSceneNumByCamera")
+    @Post(value = "/laser/4dage/scene/getSceneNumByCamera",interceptor = SignInterceptor.class)
     Result getSceneNumByCamera(@JSONBody Map<String, String> param);
     /**
      * 取消相机协作
      * @param param
      */
-    @Post("/laser/4dage/scene/cooperation/disable")
+    @Post(value = "/laser/4dage/scene/cooperation/disable",interceptor = SignInterceptor.class)
     Result cooperationDisable(@JSONBody List<Map<String, String>> param);
     /**
      * 添加相机协作
      * @param param
      */
-    @Post("/laser/4dage/scene/cooperation/cameraSave")
+    @Post(value = "/laser/4dage/scene/cooperation/cameraSave",interceptor = SignInterceptor.class)
     Result cooperationCameraSave(@JSONBody List<Map<String, String> >param);
     /**
      * 添加相机协作
      */
-    @Post("/laser/init/{sceneNum}/saveOrEdit")
+    @Post(value = "/laser/init/{sceneNum}/saveOrEdit",interceptor = SignInterceptor.class)
     Result saveOrEdit(@Var("sceneNum") String sceneNum, @JSONBody  Map<String,Object> params);
 
     /**
      * 下载深时场景
      * status :0:正在生成 1,初次生成  2,已经生成直接下载 3,重新生成
      */
-    @Post("/laser/4dage/downOfflineScene")
+    @Post(value = "/laser/4dage/downOfflineScene",interceptor = SignInterceptor.class)
     Result downOfflineScene(@JSONBody SSDownSceneParam param) ;
     /**
      * 检测深时场景是否需要重新生成
      *
      * status :离线包状态是否需要重新生成 0未生成,1 不需要 2需要
      */
-    @Post("/laser/4dage/downOfflineSceneStatus")
+    @Post(value = "/laser/4dage/downOfflineSceneStatus",interceptor = SignInterceptor.class)
     Result downOfflineSceneStatus(@JSONBody SSDownSceneParam param) ;
 
     /**
      *解绑相机、绑定相机
      */
-    @Post("/laser/4dage/scene/camera/toBind")
+    @Post(value = "/laser/4dage/scene/camera/toBind",interceptor = SignInterceptor.class)
     Result toBind(@JSONBody SsBindParam param) ;
 
-    @Post("/laser/4dage/downE57Status")
+    @Post(value = "/laser/4dage/downE57Status",interceptor = SignInterceptor.class)
     Result downE57Status(@JSONBody SSDownSceneParam param);
 
-    @Post("/laser/4dage/downE57")
+    @Post(value = "/laser/4dage/downE57",interceptor = SignInterceptor.class)
     Result downE57(@JSONBody SSDownSceneParam param);
 }

+ 5 - 4
src/main/java/com/fdkankan/manage/httpClient/client/OpenApiClient.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage.httpClient.client;
 import com.alibaba.fastjson.JSONObject;
 import com.dtflys.forest.annotation.*;
 import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.httpClient.SignInterceptor;
 import com.fdkankan.manage.httpClient.address.OpenApiAddressSource;
 import com.fdkankan.manage.httpClient.param.OpenApiAddParam;
 import com.fdkankan.manage.httpClient.param.OpenApiPageParam;
@@ -20,25 +21,25 @@ public interface OpenApiClient {
     /**
      * 修改状态 是否启用(0-停用,1-启用)
      */
-    @Post("/account/updateStatus")
+    @Post(value = "/account/updateStatus",interceptor = SignInterceptor.class)
     ResultData<Object> updateStatus(@JSONBody OpenApiUpdateParam param);
 
     /**
      * 新增
      */
-    @Post("/account/add")
+    @Post(value = "/account/add",interceptor = SignInterceptor.class)
     ResultData<Object> add(@JSONBody OpenApiAddParam param);
 
 
     /**
      * 新增
      */
-    @Post("/account/page")
+    @Post(value = "/account/page",interceptor = SignInterceptor.class)
     ResultData<JSONObject> page(@JSONBody OpenApiPageParam param);
 
     /**
      * 删除
      */
-    @Post("/account/delete")
+    @Post(value = "/account/delete",interceptor = SignInterceptor.class)
     ResultData<Object> delete(@JSONBody OpenApiUpdateParam param);
 }

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

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.AppSecret;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-07-09
+ */
+@Mapper
+public interface IAppSecretMapper extends BaseMapper<AppSecret> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/manage/service/IAppSecretService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.AppSecret;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-07-09
+ */
+public interface IAppSecretService extends IService<AppSecret> {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/manage/service/impl/AppSecretServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.service.impl;
+
+import com.fdkankan.manage.entity.AppSecret;
+import com.fdkankan.manage.mapper.IAppSecretMapper;
+import com.fdkankan.manage.service.IAppSecretService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-07-09
+ */
+@Service
+public class AppSecretServiceImpl extends ServiceImpl<IAppSecretMapper, AppSecret> implements IAppSecretService {
+
+}

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

@@ -296,6 +296,7 @@ public class DownService implements IDownService {
             LambdaUpdateWrapper<SceneDownloadLog> wrapper = new LambdaUpdateWrapper<>();
             wrapper.eq(SceneDownloadLog::getSceneNum,sceneNum);
             wrapper.eq(SceneDownloadLog::getStatus,0);
+            wrapper.eq(SceneDownloadLog::getSysVersion,"ss");
             wrapper.set(SceneDownloadLog::getDownloadUrl,vo.getUrl());
             wrapper.set(SceneDownloadLog::getStatus,1);
             sceneDownloadLogService.update(wrapper);

+ 1 - 0
src/main/java/com/fdkankan/manage/test/TestController.java

@@ -252,4 +252,5 @@ public class TestController {
 
         return ResultData.ok();
     }
+
 }

+ 5 - 0
src/main/resources/mapper/manage/AppSecretMapper.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.IAppSecretMapper">
+
+</mapper>