Browse Source

Merge branch 'test'

lyhzzz 2 years ago
parent
commit
dc01d5f169
61 changed files with 677 additions and 237 deletions
  1. 15 0
      README.md
  2. 2 0
      src/main/java/com/fdkankan/manage/common/ResultCode.java
  3. 2 0
      src/main/java/com/fdkankan/manage/controller/OverallController.java
  4. 9 6
      src/main/java/com/fdkankan/manage/controller/SceneController.java
  5. 11 4
      src/main/java/com/fdkankan/manage/controller/SysMenuController.java
  6. 56 0
      src/main/java/com/fdkankan/manage/controller/TakeLookController.java
  7. 2 2
      src/main/java/com/fdkankan/manage/entity/Agent.java
  8. 2 2
      src/main/java/com/fdkankan/manage/entity/AgentNewLog.java
  9. 2 2
      src/main/java/com/fdkankan/manage/entity/CameraOut.java
  10. 3 3
      src/main/java/com/fdkankan/manage/entity/DownloadOrder.java
  11. 2 2
      src/main/java/com/fdkankan/manage/entity/FolderScene.java
  12. 3 3
      src/main/java/com/fdkankan/manage/entity/IncrementOrder.java
  13. 2 2
      src/main/java/com/fdkankan/manage/entity/Invoice.java
  14. 2 2
      src/main/java/com/fdkankan/manage/entity/InvoiceRegister.java
  15. 4 4
      src/main/java/com/fdkankan/manage/entity/News.java
  16. 1 1
      src/main/java/com/fdkankan/manage/entity/Order.java
  17. 2 2
      src/main/java/com/fdkankan/manage/entity/OrderItem.java
  18. 2 2
      src/main/java/com/fdkankan/manage/entity/Scene3dNum.java
  19. 2 2
      src/main/java/com/fdkankan/manage/entity/SceneEditControls.java
  20. 2 2
      src/main/java/com/fdkankan/manage/entity/SceneEditInfo.java
  21. 2 2
      src/main/java/com/fdkankan/manage/entity/SceneEditInfoExt.java
  22. 2 2
      src/main/java/com/fdkankan/manage/entity/ScenePlusExt.java
  23. 1 1
      src/main/java/com/fdkankan/manage/entity/SpaceSdk.java
  24. 1 1
      src/main/java/com/fdkankan/manage/entity/User.java
  25. 9 0
      src/main/java/com/fdkankan/manage/exception/GlobalExceptionHandler.java
  26. 20 0
      src/main/java/com/fdkankan/manage/httpClient/address/TakeLookAddressSource.java
  27. 15 0
      src/main/java/com/fdkankan/manage/httpClient/client/LaserClient.java
  28. 25 0
      src/main/java/com/fdkankan/manage/httpClient/client/TakeLookClient.java
  29. 1 1
      src/main/java/com/fdkankan/manage/httpClient/param/LaserSceneMoveParam.java
  30. 7 0
      src/main/java/com/fdkankan/manage/httpClient/param/LaserSceneParam.java
  31. 8 0
      src/main/java/com/fdkankan/manage/httpClient/param/SSDownSceneParam.java
  32. 12 0
      src/main/java/com/fdkankan/manage/httpClient/param/TakeLookParam.java
  33. 116 41
      src/main/java/com/fdkankan/manage/httpClient/service/LaserService.java
  34. 24 0
      src/main/java/com/fdkankan/manage/httpClient/vo/OverallParam.java
  35. 11 0
      src/main/java/com/fdkankan/manage/httpClient/vo/TakeLookResponse.java
  36. 3 3
      src/main/java/com/fdkankan/manage/service/IDownService.java
  37. 0 2
      src/main/java/com/fdkankan/manage/service/IScene3dNumService.java
  38. 2 0
      src/main/java/com/fdkankan/manage/service/ISceneProService.java
  39. 3 0
      src/main/java/com/fdkankan/manage/service/ISysRoleMenuService.java
  40. 109 3
      src/main/java/com/fdkankan/manage/service/impl/DownService.java
  41. 0 10
      src/main/java/com/fdkankan/manage/service/impl/ExcelServiceImpl.java
  42. 3 2
      src/main/java/com/fdkankan/manage/service/impl/InvoiceServiceImpl.java
  43. 4 1
      src/main/java/com/fdkankan/manage/service/impl/NewsServiceImpl.java
  44. 0 100
      src/main/java/com/fdkankan/manage/service/impl/Scene3dNumServiceImpl.java
  45. 20 4
      src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  46. 14 0
      src/main/java/com/fdkankan/manage/service/impl/SysRoleMenuServiceImpl.java
  47. 1 1
      src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java
  48. 27 0
      src/main/java/com/fdkankan/manage/util/FiledUtil.java
  49. 2 2
      src/main/java/com/fdkankan/manage/vo/InvoiceVO.java
  50. 2 2
      src/main/java/com/fdkankan/manage/vo/PageNewsVO.java
  51. 3 0
      src/main/java/com/fdkankan/manage/vo/request/CameraParam.java
  52. 45 1
      src/main/java/com/fdkankan/manage/vo/request/SceneParam.java
  53. 1 1
      src/main/java/com/fdkankan/manage/vo/request/SpaceSdkParam.java
  54. 10 0
      src/main/java/com/fdkankan/manage/vo/response/SSDownSceneVo.java
  55. 2 0
      src/main/java/com/fdkankan/manage/vo/response/SceneVo.java
  56. 1 1
      src/main/resources/bootstrap.yml
  57. 9 0
      src/main/resources/mapper/manage/CameraMapper.xml
  58. 13 13
      src/main/resources/mapper/manage/InvoiceMapper.xml
  59. 10 1
      src/main/resources/mapper/manage/SceneMapper.xml
  60. 13 1
      src/main/resources/mapper/manage/SceneProMapper.xml
  61. BIN
      src/main/resources/template/cameraOut.xlsx

+ 15 - 0
README.md

@@ -29,4 +29,19 @@
     添加参数 agentId
 5.出库模板 
     添加经销商名称导入
+~~~~
+
+
+###**v1.2.0** 
+~~~~
+1.添加产品运营管理/带看房间管理
+    /service/manage/takeLook/roomList
+    /service/manage/takeLook/updateRoomShow
+    /service/manage/takeLook/deleteRoom
+2.设备管理列表  /service/manage/camera/list
+    添加参数    private Integer bindStatus;         //绑定状态查询 0 未绑定,1已绑定
+               private String bindUserName;        //绑定账号查询
+3.场景管理 /service/manage/scene/list
+    添加参数 num      场景码查询
+            timeList 拍摄时间查询
 ~~~~

+ 2 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -65,6 +65,8 @@ public enum ResultCode  {
     INCREMENT_TYPE_ERROR(50048, "权益类型错误!"),
     DEL_UCENTER_ERROR(50049, "该用户已绑定相机,请先解绑再删除用户。"),
     DATA_TOO_LONG(50050, "长度超出限制!"),
+    SS_SCENE_DOWN_ERROR(50051, "获取深时下载状态失败!"),
+    SS_GET_ERROR(50052, "访问深时失败!"),
 
     ;
 

+ 2 - 0
src/main/java/com/fdkankan/manage/controller/OverallController.java

@@ -35,6 +35,8 @@ public class OverallController {
 
     @PostMapping("/list")
     public ResultData list(@RequestBody OverallParam param){
+
+
         OverallVo vo = overallClient.list(param,appId,key);
         if(vo.getCode() != 0 ){
             return ResultData.error(vo.getCode(),vo.getMsg());

+ 9 - 6
src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -88,8 +88,9 @@ public class SceneController {
      * num      场景码
      */
     @GetMapping("/checkDownLoad")
-    public ResultData checkDownLoad(@RequestParam(required = false) String num){
-        return ResultData.ok(downService.checkDownLoad(num));
+    public ResultData checkDownLoad(@RequestParam(required = false) String num,
+                                    @RequestParam(required = false,defaultValue = "0") Integer isObj){
+        return ResultData.ok(downService.checkDownLoad(num,isObj));
     }
 
     /**
@@ -97,8 +98,9 @@ public class SceneController {
      * num      场景码
      */
     @GetMapping("/downScene")
-    public ResultData downScene(@RequestParam(required = false) String num){
-        return ResultData.ok(downService.down(num));
+    public ResultData downScene(@RequestParam(required = false) String num,
+                                @RequestParam(required = false,defaultValue = "0") Integer isObj){
+        return ResultData.ok(downService.down(num,isObj));
     }
 
     /**
@@ -106,8 +108,9 @@ public class SceneController {
      * num      场景码
      */
     @GetMapping("/downloadProcess")
-    public ResultData downloadProcess(@RequestParam(required = false) String num){
-        return ResultData.ok(downService.downloadProcess(num));
+    public ResultData downloadProcess(@RequestParam(required = false) String num,
+                                      @RequestParam(required = false,defaultValue = "0") Integer isObj){
+        return ResultData.ok(downService.downloadProcess(num,isObj));
     }
 
     /**

+ 11 - 4
src/main/java/com/fdkankan/manage/controller/SysMenuController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.config.MenuInit;
 import com.fdkankan.manage.exception.BusinessException;
+import com.fdkankan.manage.service.ISysRoleMenuService;
 import com.fdkankan.manage.vo.request.RequestBase;
 import com.fdkankan.manage.common.ResultData;
 import com.fdkankan.common.util.DateUtil;
@@ -27,12 +28,14 @@ public class SysMenuController extends BaseController{
     @Autowired
     ISysMenuService menuService;
     @Autowired
+    ISysRoleMenuService roleMenuService;
+    @Autowired
     MenuInit menuInit;
 
     @PostMapping("/add")
     public ResultData add(@RequestBody SysMenu param){
-        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
-        menuService.saveOrUpdate(param);
+        menuService.save(param);
+        roleMenuService.addByMenuId(param.getId(),1L);  //添加菜单,自动为超管添加权限
         menuInit.initMenu();
         return ResultData.ok();
     }
@@ -42,18 +45,22 @@ public class SysMenuController extends BaseController{
         if(StringUtils.isEmpty(param.getId())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
-        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
-        menuService.saveOrUpdate(param);
+        param.setUpdateTime(null);
+        menuService.updateById(param);
         menuInit.initMenu();
         return ResultData.ok();
     }
 
     @PostMapping("/delete")
     public ResultData delete(@RequestBody SysMenu param){
+        if(param.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
         LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysMenu::getParentId,param.getId());
         menuService.remove(wrapper);
         menuService.removeById(param.getId());
+        roleMenuService.deleteByMenuId(param.getId());
         menuInit.initMenu();
         return ResultData.ok();
     }

+ 56 - 0
src/main/java/com/fdkankan/manage/controller/TakeLookController.java

@@ -0,0 +1,56 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.httpClient.client.TakeLookClient;
+import com.fdkankan.manage.httpClient.param.TakeLookParam;
+import com.fdkankan.manage.httpClient.vo.TakeLookResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/service/manage/takeLook")
+public class TakeLookController {
+
+
+    @Autowired
+    TakeLookClient takeLookClient;
+
+    /**
+     * 全部房间列表
+     */
+    @PostMapping("/roomList")
+    public Object list(@RequestBody TakeLookParam param){
+        TakeLookResponse takeLookResponse = takeLookClient.roomList(param);
+        if(takeLookResponse.getCode() != 0){
+            throw new BusinessException(takeLookResponse.getCode(),takeLookResponse.getMessage());
+        }
+        return takeLookResponse;
+    }
+    /**
+     * 修改显示状态
+     */
+    @PostMapping("/updateRoomShow")
+    public ResultData updateRoomShow(@RequestBody TakeLookParam param){
+        TakeLookResponse takeLookResponse = takeLookClient.updateRoomShow(param);
+        if(takeLookResponse.getCode() != 0){
+            throw new BusinessException(takeLookResponse.getCode(),takeLookResponse.getMessage());
+        }
+        return ResultData.ok();
+    }
+    /**
+     * 删除
+     */
+    @PostMapping("/deleteRoom")
+    public ResultData deleteRoom(@RequestBody TakeLookParam param){
+        TakeLookResponse takeLookResponse =takeLookClient.deleteRoom(param);
+        if(takeLookResponse.getCode() != 0){
+            throw new BusinessException(takeLookResponse.getCode(),takeLookResponse.getMessage());
+        }
+        return ResultData.ok();
+    }
+
+}

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

@@ -86,13 +86,13 @@ public class Agent implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 记录的状态,A: 生效,I: 禁用

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

@@ -57,10 +57,10 @@ public class AgentNewLog implements Serializable {
     private Integer count;
 
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

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

@@ -50,10 +50,10 @@ public class CameraOut implements Serializable {
     private Integer type;
 
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")

+ 3 - 3
src/main/java/com/fdkankan/manage/entity/DownloadOrder.java

@@ -69,7 +69,7 @@ public class DownloadOrder implements Serializable {
      * 交易时间
      */
     @TableField("trade_time")
-    private Date tradeTime;
+    private String tradeTime;
 
     /**
      * 用户表t_user的id
@@ -93,7 +93,7 @@ public class DownloadOrder implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 记录的状态,A: 生效,I: 禁用
@@ -106,7 +106,7 @@ public class DownloadOrder implements Serializable {
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 场景码

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

@@ -39,10 +39,10 @@ public class FolderScene implements Serializable {
     private String recStatus;
 
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

+ 3 - 3
src/main/java/com/fdkankan/manage/entity/IncrementOrder.java

@@ -69,7 +69,7 @@ public class IncrementOrder implements Serializable {
      * 交易时间
      */
     @TableField("trade_time")
-    private Date tradeTime;
+    private String tradeTime;
 
     /**
      * 用户表t_user的id
@@ -99,7 +99,7 @@ public class IncrementOrder implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 记录的状态,A: 生效,I: 禁用
@@ -112,7 +112,7 @@ public class IncrementOrder implements Serializable {
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

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

@@ -67,7 +67,7 @@ public class Invoice implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 公司名称
@@ -140,7 +140,7 @@ public class Invoice implements Serializable {
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 收货地址

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

@@ -59,7 +59,7 @@ public class InvoiceRegister {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 修改人id
@@ -71,7 +71,7 @@ public class InvoiceRegister {
      * 修改时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 0-有效,1-删除, 2-禁用

+ 4 - 4
src/main/java/com/fdkankan/manage/entity/News.java

@@ -78,20 +78,20 @@ public class News  {
      * 发布时间
      */
     @TableField("public_time")
-    private Date publicTime;
+    private String publicTime;
 
     /**
      * 置顶时间
      */
     @TableField("top_time")
-    private Date topTime;
+    private String topTime;
 
 
     /**
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 修改人id
@@ -108,7 +108,7 @@ public class News  {
      * 修改时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 0-有效,1-删除, 2-禁用

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

@@ -36,7 +36,7 @@ public class Order implements Serializable {
      * 下单时间
      */
     @TableField("order_time")
-    private Date orderTime;
+    private String orderTime;
 
     /**
      * 交易号

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

@@ -93,7 +93,7 @@ public class OrderItem implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 记录的状态,A: 生效,I: 禁用
@@ -106,7 +106,7 @@ public class OrderItem implements Serializable {
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

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

@@ -48,13 +48,13 @@ public class Scene3dNum implements Serializable {
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
 
 }

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

@@ -95,13 +95,13 @@ public class SceneEditControls implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 0-有效,1-删除, 2-禁用

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

@@ -173,13 +173,13 @@ public class SceneEditInfo implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 修改时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 0-有效,1-删除, 2-禁用

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

@@ -89,13 +89,13 @@ public class SceneEditInfoExt implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 修改时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 0-有效,1-删除, 2-禁用

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

@@ -140,13 +140,13 @@ public class ScenePlusExt implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")

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

@@ -47,7 +47,7 @@ public class SpaceSdk implements Serializable {
      * 发布时间
      */
     @TableField("publish_time")
-    private Date publishTime;
+    private String publishTime;
 
     /**
      * 是否置顶 1 -置顶  0-不置顶

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

@@ -47,7 +47,7 @@ public class User implements Serializable {
      * 注册时间
      */
     @TableField("register_time")
-    private Date registerTime;
+    private String registerTime;
 
     /**
      * 用户名

+ 9 - 0
src/main/java/com/fdkankan/manage/exception/GlobalExceptionHandler.java

@@ -40,6 +40,15 @@ public class GlobalExceptionHandler {
      * 处理业务异常
      */
     @ResponseBody
+    @ExceptionHandler(value = com.fdkankan.common.exception.BusinessException.class)
+    public ResultData businessExceptionHandler(com.fdkankan.common.exception.BusinessException e) {
+        log.info("业务异常code:{},message:{}", e.getCode(), e.getMessage());
+        return ResultData.error(e.getCode(), e.getMessage());
+    }
+    /**
+     * 处理业务异常
+     */
+    @ResponseBody
     @ExceptionHandler(value = DataIntegrityViolationException.class)
     public ResultData DataIntegrityViolationExceptionHandler(DataIntegrityViolationException e) {
         log.error("mysql服务错误:", e);

+ 20 - 0
src/main/java/com/fdkankan/manage/httpClient/address/TakeLookAddressSource.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.httpClient.address;
+
+import com.dtflys.forest.callback.AddressSource;
+import com.dtflys.forest.http.ForestAddress;
+import com.dtflys.forest.http.ForestRequest;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TakeLookAddressSource implements AddressSource {
+
+    @Value("${4dkk.takeLookService.basePath}")
+    private String basePath;
+
+
+    @Override
+    public ForestAddress getAddress(ForestRequest forestRequest) {
+        return new ForestAddress("","",null,basePath);
+    }
+}

+ 15 - 0
src/main/java/com/fdkankan/manage/httpClient/client/LaserClient.java

@@ -5,6 +5,7 @@ import com.fdkankan.manage.common.Result;
 import com.fdkankan.manage.httpClient.address.LaserAddressSource;
 import com.fdkankan.manage.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.manage.httpClient.param.LaserSceneParam;
+import com.fdkankan.manage.httpClient.param.SSDownSceneParam;
 import com.fdkankan.manage.httpClient.vo.FdkkResponse;
 
 import java.util.HashMap;
@@ -55,4 +56,18 @@ public interface LaserClient {
      */
     @Post("/laser/init/{sceneNum}/saveOrEdit")
     Result saveOrEdit(@Var("sceneNum") String sceneNum, @JSONBody  Map<String,Object> params);
+
+    /**
+     * 下载深时场景
+     * status :0:正在生成 1,初次生成  2,已经生成直接下载 3,重新生成
+     */
+    @Post("/laser/4dage/downOfflineScene")
+    Result downOfflineScene(@JSONBody SSDownSceneParam param) ;
+    /**
+     * 检测深时场景是否需要重新生成
+     *
+     * status :离线包状态是否需要重新生成 0未生成,1 不需要 2需要
+     */
+    @Post("/laser/4dage/downOfflineSceneStatus")
+    Result downOfflineSceneStatus(@JSONBody SSDownSceneParam param) ;
 }

+ 25 - 0
src/main/java/com/fdkankan/manage/httpClient/client/TakeLookClient.java

@@ -0,0 +1,25 @@
+package com.fdkankan.manage.httpClient.client;
+
+import com.dtflys.forest.annotation.*;
+import com.fdkankan.manage.httpClient.address.OverallAddressSource;
+import com.fdkankan.manage.httpClient.address.TakeLookAddressSource;
+import com.fdkankan.manage.httpClient.param.TakeLookParam;
+import com.fdkankan.manage.httpClient.vo.OverallParam;
+import com.fdkankan.manage.httpClient.vo.OverallVo;
+import com.fdkankan.manage.httpClient.vo.TakeLookResponse;
+
+/**
+ * 获取,调用带看服务
+ */
+@Address(source = TakeLookAddressSource.class)
+public interface TakeLookClient {
+
+    @Post("/_inner/roomList")
+    TakeLookResponse roomList(@JSONBody TakeLookParam param);
+
+    @Post("/_inner/updateRoomShow")
+    TakeLookResponse updateRoomShow(@JSONBody TakeLookParam param);
+
+    @Post("/_inner/deleteRoom")
+    TakeLookResponse deleteRoom(@JSONBody TakeLookParam param);
+}

+ 1 - 1
src/main/java/com/fdkankan/manage/httpClient/param/LaserSceneMoveParam.java

@@ -9,5 +9,5 @@ public class LaserSceneMoveParam {
     private String sceneCode;
     private String snCode;
     private String toSnCode;
-    private Integer userId;
+    private Long userId;
 }

+ 7 - 0
src/main/java/com/fdkankan/manage/httpClient/param/LaserSceneParam.java

@@ -13,4 +13,11 @@ public class LaserSceneParam {
     private String phone;
     private String snCode;
     private List<String> snCodes = new ArrayList<>();
+
+    private List<String> sceneCodes;
+    private String startTime;
+    private String endTime;
+
+    private String orderBy = "shoot_time";
+    private String sortBy = "DESC";
 }

+ 8 - 0
src/main/java/com/fdkankan/manage/httpClient/param/SSDownSceneParam.java

@@ -0,0 +1,8 @@
+package com.fdkankan.manage.httpClient.param;
+
+import lombok.Data;
+
+@Data
+public class SSDownSceneParam {
+    private String sceneCode;
+}

+ 12 - 0
src/main/java/com/fdkankan/manage/httpClient/param/TakeLookParam.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.httpClient.param;
+
+import com.fdkankan.manage.vo.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class TakeLookParam extends RequestBase {
+    private String roomId;
+    private String roomTitle;
+    private String roomUserName;
+    private Integer isShow;
+}

+ 116 - 41
src/main/java/com/fdkankan/manage/httpClient/service/LaserService.java

@@ -6,17 +6,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.Result;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.Camera;
 import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.User;
+import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.httpClient.client.LaserClient;
 import com.fdkankan.manage.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.manage.httpClient.param.LaserSceneParam;
+import com.fdkankan.manage.httpClient.param.SSDownSceneParam;
 import com.fdkankan.manage.httpClient.vo.FdkkResponse;
 import com.fdkankan.manage.service.ICameraDetailService;
 import com.fdkankan.manage.service.ICameraService;
 import com.fdkankan.manage.service.IUserService;
 import com.fdkankan.manage.vo.request.SceneParam;
+import com.fdkankan.manage.vo.response.SSDownSceneVo;
 import com.fdkankan.manage.vo.response.SceneVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -47,48 +51,56 @@ public class LaserService {
 
 
     public PageInfo pageList(SceneParam param) {
-        if( !CacheUtil.uploadType.equals("oss")){
-            return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
-        }
-        LaserSceneParam laserSceneParam = getLaserSceneParam(param);
-        if(laserSceneParam == null ){
-            return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
-        }
-        FdkkResponse response = laserClient.sceneList(laserSceneParam);
-        JSONObject jsonObject =response.getData();
-        if(jsonObject == null){
-            return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
-        }
-        JSONArray list = jsonObject.getJSONArray("list");
-        long total =jsonObject.getLong("total");
-
-        List<SceneVo> sceneVoList = new ArrayList<>();
-        String newBasePath = basePath;
-        newBasePath = newBasePath.contains("dev")? newBasePath + "/dev" : newBasePath;
-        newBasePath = newBasePath.contains("uat")? newBasePath + "/uat" : newBasePath;
-        newBasePath =  newBasePath.replace("/backend","");
-        for (Object o : list) {
-            String res = JSONObject.toJSONString(o);
-            SceneVo vo = JSONObject.parseObject(res,SceneVo.class);
-            //深时状态,-1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4生成OBJ中
-            JSONObject obj = (JSONObject) o;
-            vo.setStatusString(getLaserStatus(vo.getStatus()));
-            vo.setStatus(toFdStatus(vo.getStatus()));
-            if(vo.getStatus() == -3){
-                vo.setPayStatus(-1);
-            }else {
+        try {
+            if( !CacheUtil.uploadType.equals("oss")){
+                return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
+            }
+            LaserSceneParam laserSceneParam = getLaserSceneParam(param);
+            if(laserSceneParam == null ){
+                return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
+            }
+            FdkkResponse response = laserClient.sceneList(laserSceneParam);
+            JSONObject jsonObject =response.getData();
+            if(jsonObject == null){
+                return PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize());
+            }
+            JSONArray list = jsonObject.getJSONArray("list");
+            long total =jsonObject.getLong("total");
+
+            List<SceneVo> sceneVoList = new ArrayList<>();
+            String newBasePath = basePath;
+            newBasePath = newBasePath.contains("dev")? newBasePath + "/dev" : newBasePath;
+            newBasePath = newBasePath.contains("uat")? newBasePath + "/uat" : newBasePath;
+            newBasePath =  newBasePath.replace("/backend","");
+            for (Object o : list) {
+                String res = JSONObject.toJSONString(o);
+                SceneVo vo = JSONObject.parseObject(res,SceneVo.class);
+                //深时状态,-1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4生成OBJ中
+                JSONObject obj = (JSONObject) o;
+                vo.setStatusString(getLaserStatus(vo.getStatus()));
+                vo.setStatus(toFdStatus(vo.getStatus()));
+                if(vo.getStatus() == -3){
+                    vo.setPayStatus(-1);
+                }else {
+                    vo.setPayStatus(1);
+                }
+                vo.setSceneName(obj.getString("title"));
+                vo.setUserName(obj.getString("phone"));
+                vo.setThumb(newBasePath +"/index.html?m="+vo.getNum() );
                 vo.setPayStatus(1);
+                vo.setIsObj(obj.getInteger("buildObjStatus"));
+                sceneVoList.add(vo);
             }
-            vo.setSceneName(obj.getString("title"));
-            vo.setUserName(obj.getString("phone"));
-            vo.setThumb(newBasePath +"/index.html?m="+vo.getNum() );
-            vo.setPayStatus(1);
-            sceneVoList.add(vo);
-        }
 
+            Page<SceneVo> voPage = new Page<>(param.getPageNum(),param.getPageSize());
+            voPage.setRecords(sceneVoList);
+            voPage.setTotal(total);
+            return PageInfo.PageInfo(voPage);
+        }catch (Exception e){
+            log.error("访问深时失败:",e);
+            //throw new BusinessException(ResultCode.SS_GET_ERROR);
+        }
         Page<SceneVo> voPage = new Page<>(param.getPageNum(),param.getPageSize());
-        voPage.setRecords(sceneVoList);
-        voPage.setTotal(total);
         return PageInfo.PageInfo(voPage);
     }
 
@@ -103,15 +115,35 @@ public class LaserService {
         }
         if(StringUtils.isNotBlank(param.getUserName())){
             List<CameraDetail> cameraDetails = cameraDetailService.getByUserName(param.getUserName());
-            param.setSnCodes(this.setSnCodes(cameraDetails));
+            List<String> snCodes = this.setSnCodes(cameraDetails);
+            if(param.getCompanyId() == null){
+                param.setSnCodes(snCodes);
+            }else {
+                if(snCodes == null || snCodes.size() <=0){
+                    return null;
+                }
+                //取交集
+                List<String> intersection = param.getSnCodes().stream().filter(snCodes::contains).collect(Collectors.toList());
+                param.setSnCodes(intersection);
+            }
         }
         if(StringUtils.isNotBlank(param.getUserName()) && StringUtils.isBlank(param.getSnCode()) &&
                 (param.getSnCodes() == null || param.getSnCodes().size() <=0)){
             param.setSnCode("phoneEmptySelect");
         }
-
+        if(StringUtils.isNotBlank(param.getNum())){
+            newParam.setSceneCodes(Arrays.asList(param.getNum()));
+        }
         BeanUtils.copyProperties(param,newParam);
         newParam.setTitle(param.getSceneName());
+
+        if(StringUtils.isNotBlank(param.getField()) && param.getField().equals("create_time")){
+            newParam.setOrderBy("shoot_time");
+        }else {
+            newParam.setOrderBy(param.getField());
+        }
+        newParam.setSortBy(param.getOrder());
+
         return newParam;
     }
 
@@ -152,11 +184,18 @@ public class LaserService {
         }
     }
 
-    public void move(String num, String snCode, String toSnCode) {
+    public void move(String num, String snCode, String toSnCode,Long userId) {
         LaserSceneMoveParam param = new LaserSceneMoveParam();
         param.setSceneCode(num);
         param.setSnCode(snCode);
         param.setToSnCode(toSnCode);
+        param.setUserId(userId);
+        if(userId != null){
+            User user = userService.getById(userId);
+            if(user != null){
+                param.setPhone(user.getUserName());
+            }
+        }
         laserClient.migrate(param);
     }
 
@@ -218,5 +257,41 @@ public class LaserService {
         laserClient.cooperationDisable(params);
     }
 
+    public SSDownSceneVo downOfflineSceneStatus(String num) {
+        try {
+            SSDownSceneVo vo ;
+            SSDownSceneParam param = new SSDownSceneParam();
+            param.setSceneCode(num);
+            Result responseEntity = laserClient.downOfflineSceneStatus(param);
+            if( responseEntity.getCode() != HttpStatus.OK.value()){
+                log.error("downOfflineSceneStatus-根据场景码获取激光转台下载状态失败:{}",responseEntity);
+                return null;
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo;
+
+        }catch (Exception e){
+            log.error("downOfflineSceneStatus-根据场景码获取激光转台下载状态失败!",e);
+        }
+        return null ;
+    }
+
+    public SSDownSceneVo downOfflineScene(String num) {
+        try {
+            SSDownSceneVo vo ;
+            SSDownSceneParam param = new SSDownSceneParam();
+            param.setSceneCode(num);
+            Result responseEntity = laserClient.downOfflineScene(param);
+            if( responseEntity.getCode() != HttpStatus.OK.value()){
+                log.error("downOfflineScene-根据场景码获取激光转台下载失败:{}",responseEntity);
+                return null;
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo ;
+        }catch (Exception e){
+            log.error("downOfflineScene-根据场景码获取激光转台下载状态失败!",e);
+        }
+        return null ;
+    }
 
 }

+ 24 - 0
src/main/java/com/fdkankan/manage/httpClient/vo/OverallParam.java

@@ -1,5 +1,7 @@
 package com.fdkankan.manage.httpClient.vo;
 
+import com.fdkankan.manage.util.FiledUtil;
+import jodd.util.StringUtil;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
 
@@ -15,6 +17,14 @@ public class OverallParam {
     private String sceneName;
     private String userName;
 
+    private String filed;
+
+    private String order;
+
+    private String orderBy ;
+
+    private String sort ;
+
     public String getSearchKey() {
         if(StringUtils.isNotBlank(sceneName)){
             return sceneName;
@@ -28,4 +38,18 @@ public class OverallParam {
         return userId;
     }
 
+    public String getOrderBy() {
+        if(StringUtil.isNotBlank(filed)){
+            return FiledUtil.upperCharToUnderLine(filed);
+        }
+        return "time";
+    }
+
+    public String getSort() {
+        if(StringUtil.isNotBlank(order) && order.contains("end")){
+            return order.split("end")[0];
+        }
+        return "DESC";
+    }
+
 }

+ 11 - 0
src/main/java/com/fdkankan/manage/httpClient/vo/TakeLookResponse.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.httpClient.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+
+@Data
+public class TakeLookResponse<T> {
+    private Integer code;
+    private String message;
+    private Object data;
+}

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

@@ -5,9 +5,9 @@ import com.fdkankan.manage.vo.response.DownloadProcessVo;
 
 public interface IDownService {
 
-    DownVo checkDownLoad(String sceneNum);
+    DownVo checkDownLoad(String sceneNum,Integer isObj);
 
-    DownVo down(String sceneNum);
+    DownVo down(String sceneNum,Integer isObj);
 
-    DownloadProcessVo downloadProcess(String num);
+    DownloadProcessVo downloadProcess(String num,Integer isObj);
 }

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

@@ -12,6 +12,4 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2022-08-12
  */
 public interface IScene3dNumService extends IService<Scene3dNum> {
-
-    String generateSceneNum(Integer type);
 }

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

@@ -2,6 +2,7 @@ package com.fdkankan.manage.service;
 
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.entity.ScenePlus;
 import com.fdkankan.manage.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.request.SceneParam;
@@ -23,6 +24,7 @@ public interface ISceneProService extends IService<ScenePro> {
     void unbindCamera(Long cameraId);
 
     void lockOrUnLockBySpace(CameraDetail cameraDetail,Long cameraId,Integer payStatus);
+    void lockOrUnLockBySpace(ScenePro scenePro, ScenePlus scenePlus,Integer payStatus);
 
     List<ScenePro> getListByCameraId(Long cameraId);
 

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

@@ -22,4 +22,7 @@ public interface ISysRoleMenuService extends IService<SysRoleMenu> {
 
     List<SysRoleMenu> getByRoleId(Long roleId);
 
+    void deleteByMenuId(Long menuId);
+
+    void addByMenuId(Long menuId, Long  roleId);
 }

+ 109 - 3
src/main/java/com/fdkankan/manage/service/impl/DownService.java

@@ -1,16 +1,20 @@
 package com.fdkankan.manage.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.common.constant.SceneConstant;
 import com.fdkankan.manage.common.DownloadStatusEnum;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.entity.*;
+import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.vo.response.DownVo;
 import com.fdkankan.manage.vo.response.DownloadProcessVo;
+import com.fdkankan.manage.vo.response.SSDownSceneVo;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 @Service
+@Slf4j
 public class DownService implements IDownService {
 
     @Autowired
@@ -35,10 +40,12 @@ public class DownService implements IDownService {
     ISceneEditInfoService sceneEditInfoService;
     @Autowired
     RedisUtil redisUtil;
+    @Autowired
+    LaserService laserService;
 
 
     @Override
-    public DownVo checkDownLoad(String sceneNum) {
+    public DownVo checkDownLoad(String sceneNum,Integer isObj) {
         if(StringUtils.isEmpty(sceneNum)){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS.code(),ResultCode.MISSING_REQUIRED_PARAMETERS.message());
         }
@@ -47,6 +54,11 @@ public class DownService implements IDownService {
         if(scenePro == null && plus == null){
             throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
         }
+        Integer sceneType = scenePro !=null ? scenePro.getSceneSource() : plus.getSceneSource();
+        log.info("checkDownLoad--sceneType:{},isObj:{}",sceneType,isObj);
+        if(sceneType == 4 && isObj !=1){ //深时场景
+            return SSCheckDownload(sceneNum);
+        }
         SceneDownloadLog sceneDownloadLog;
         int isUp = 0;
         if(scenePro == null){
@@ -100,7 +112,7 @@ public class DownService implements IDownService {
     }
 
     @Override
-    public DownVo down(String sceneNum) {
+    public DownVo down(String sceneNum,Integer isObj) {
         if(StringUtils.isEmpty(sceneNum) ){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS.code(),ResultCode.MISSING_REQUIRED_PARAMETERS.message());
         }
@@ -110,6 +122,13 @@ public class DownService implements IDownService {
             throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
         }
         Long userId = scenePro == null ? scenePlus.getUserId() : scenePro.getUserId();
+
+        Integer sceneType = scenePro !=null ? scenePro.getSceneSource() : scenePlus.getSceneSource();
+        log.info("down--sceneType:{},isObj:{}",sceneType,isObj);
+        if(sceneType == 4 && isObj !=1){ //深时场景
+            return SSDownload(sceneNum,userId);
+        }
+
         DownVo downVo = new DownVo();
         Integer sceneVersion = getSceneVersion(scenePro, scenePlus);
 
@@ -136,7 +155,7 @@ public class DownService implements IDownService {
     }
 
     @Override
-    public DownloadProcessVo downloadProcess(String sceneNum) {
+    public DownloadProcessVo downloadProcess(String sceneNum,Integer isObj) {
         if (StringUtils.isEmpty(sceneNum)) {
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS.code(),ResultCode.MISSING_REQUIRED_PARAMETERS.message());
         }
@@ -145,6 +164,11 @@ public class DownService implements IDownService {
         if(scenePro == null && scenePlus == null){
             throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
         }
+        Integer sceneType = scenePro !=null ? scenePro.getSceneSource() : scenePlus.getSceneSource();
+        log.info("downloadProcess--sceneType:{},isObj:{}",sceneType,isObj);
+        if(sceneType == 4 && isObj !=1){ //深时场景
+            return SSDownloadProcess(sceneNum);
+        }
         String redisKey = RedisKey.PREFIX_DOWNLOAD_PROGRESS;
         if(scenePro == null){
             redisKey = RedisKey.PREFIX_DOWNLOAD_PROGRESS_V4;
@@ -180,4 +204,86 @@ public class DownService implements IDownService {
         return downloadProcessVo;
     }
 
+    /**
+     * status :离线包状态是否需要重新生成  0 未生成:1 不需要  2需要   3 生成中
+     */
+    private DownVo SSCheckDownload(String sceneNum) {
+        DownVo downVo = new DownVo();
+        SSDownSceneVo vo = laserService.downOfflineSceneStatus(sceneNum);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+        downVo.setDownloadStatus(0);
+        if(vo.getStatus() == 1){
+            downVo.setDownloadStatus(3);
+            downVo.setDownloadUrl(vo.getUrl());
+        }
+        if(vo.getStatus() == 2){
+            downVo.setDownloadStatus(2);
+        }
+        if(vo.getStatus() == 3){
+            downVo.setDownloadStatus(1);
+        }
+        return downVo;
+    }
+
+    /**
+     * downloadStatus -1下载失败  1下载成功
+     */
+    private DownVo SSDownload(String sceneNum,Long userId) {
+        DownVo downVo = new DownVo();
+
+        //status :0:正在生成 1,初次生成  2,已经生成直接下载 3,重新生成
+        SSDownSceneVo vo = laserService.downOfflineScene(sceneNum);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+
+        SceneDownloadLog sceneDownloadLogEntity = new SceneDownloadLog();
+        sceneDownloadLogEntity.setUserId(userId);
+        sceneDownloadLogEntity.setSceneNum(sceneNum);
+        sceneDownloadLogEntity.setSceneVersion(0);
+        sceneDownloadLogEntity.setStatus(0);
+        sceneDownloadLogEntity.setSysVersion("ss");
+        sceneDownloadLogService.save(sceneDownloadLogEntity);
+        downVo.setDownloadStatus(1);
+        return downVo;
+    }
+
+    public static HashMap<String,Integer> ssNumProcessNumMap = new HashMap<>();
+
+    private DownloadProcessVo SSDownloadProcess(String sceneNum) {
+        DownloadProcessVo downVo = new DownloadProcessVo();
+        SSDownSceneVo vo = laserService.downOfflineSceneStatus(sceneNum);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+        downVo.setStatus(1003);
+
+        if(vo.getStatus() == 0 || vo.getStatus() == 2 || vo.getStatus() == 3){    //下载中
+            ssNumProcessNumMap.merge(sceneNum, 1, Integer::sum);
+            Integer percent = ssNumProcessNumMap.get(sceneNum);
+            percent = percent /2;
+            if(percent >50){
+                percent = 50;
+            }
+            downVo.setStatus(1001);
+            downVo.setPercent(percent);
+        }
+        if(vo.getStatus() == 1){    //下载完成
+            ssNumProcessNumMap.remove(sceneNum);
+            downVo.setPercent(100);
+            downVo.setUrl(vo.getUrl());
+            downVo.setStatus(1002);
+
+            LambdaUpdateWrapper<SceneDownloadLog> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(SceneDownloadLog::getSceneNum,sceneNum);
+            wrapper.eq(SceneDownloadLog::getStatus,0);
+            wrapper.set(SceneDownloadLog::getDownloadUrl,vo.getUrl());
+            wrapper.set(SceneDownloadLog::getStatus,1);
+            sceneDownloadLogService.update(wrapper);
+        }
+        return downVo;
+    }
+
 }

+ 0 - 10
src/main/java/com/fdkankan/manage/service/impl/ExcelServiceImpl.java

@@ -135,16 +135,6 @@ public class ExcelServiceImpl implements IExcelService {
                     int outType = outTypeEnum.getCode();
                     param.setOutType(outType);
                 }
-                if(param.getOutType() != null && param.getOutType() == 4 && StringUtils.isBlank(agentName)){
-                    log.error("outError-->出库错误:经销商为空错误:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
-                            ,snCode,outTypeString,companyName,orderSn,agentName);
-                    errorIndex.add(index -3);
-                }
-                if(param.getOutType() != null && param.getOutType() != 4 && StringUtils.isNotBlank(agentName)){
-                    log.error("outError-->出库错误:出库类型错误:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
-                            ,snCode,outTypeString,companyName,orderSn,agentName);
-                    errorIndex.add(index -3);
-                }
                 if(StringUtils.isNotBlank(agentName)){
                     AgentNew agentNew = agentNewService.getByName(agentName);
                     if(agentNew == null){

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

@@ -13,6 +13,7 @@ import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.common.Dict;
 import com.fdkankan.manage.mapper.IInvoiceMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceRegisterDetailVO;
 import com.fdkankan.manage.vo.InvoiceVO;
@@ -59,7 +60,7 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
 
     @Autowired
     private IInvoiceRegisterService invoiceRegisterService;
-    @Reference
+    @Autowired
     private FYunFileServiceInterface fYunFileServiceInterface;
 
     @Autowired
@@ -103,7 +104,7 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
             invoiceRegister.setCreaterId(userId);
         }else{
             invoiceRegister.setUpdaterId(userId);
-            invoiceRegister.setUpdateTime(new Date());
+            invoiceRegister.setUpdateTime(Dateutils.getDate(new Date()));
         }
         //普通发票
         if(InvoiceType.ORDINARY.code().equals(type)){

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

@@ -12,6 +12,7 @@ import com.fdkankan.manage.entity.News;
 import com.fdkankan.manage.mapper.INewsMapper;
 import com.fdkankan.manage.service.INewsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.vo.BaseParamVO;
 import com.fdkankan.manage.vo.NewsDisplayParamVO;
 import com.fdkankan.manage.vo.NewsPublicParamVO;
@@ -21,6 +22,8 @@ import com.fdkankan.manage.vo.PageNewsVO;
 import com.fdkankan.manage.vo.SaveNewsParamVO;
 import com.fdkankan.manage.vo.UpdateNewsParamVO;
 import java.util.Calendar;
+import java.util.Date;
+
 import org.springframework.stereotype.Service;
 
 /**
@@ -109,7 +112,7 @@ public class NewsServiceImpl extends ServiceImpl<INewsMapper, News> implements I
     @Override
     public ResultData updateNews(Long userId, UpdateNewsParamVO param) {
         News news = BeanUtil.copyProperties(param, News.class);
-        news.setUpdateTime(Calendar.getInstance().getTime());
+        news.setUpdateTime(Dateutils.getDate(new Date()));
         news.setUpdaterId(userId);
         this.updateById(news);
         return ResultData.ok();

+ 0 - 100
src/main/java/com/fdkankan/manage/service/impl/Scene3dNumServiceImpl.java

@@ -31,106 +31,6 @@ import java.util.stream.Collectors;
 @Slf4j
 public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3dNum> implements IScene3dNumService {
 
-    @Autowired
-    RedisUtil redisUtil;
 
-    @Override
-    public String generateSceneNum(Integer cameraType) {
-        String sceneNum = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS);
-        if(!StringUtils.isEmpty(sceneNum)){
-            return addPrefix(sceneNum,cameraType);
-        }
-        long incr = redisUtil.incr(RedisKeyUtil.SCENE_NUMS_LOADING, 1);
-        if(incr == 1){
-            try {
-                log.info("开始从数据库加载场景码");
-                List<String> numList = this.getSceneNum();
-                redisUtil.lRightPushAll(RedisKeyUtil.SCENE_UNUSED_NUMS,numList);
-                log.info("场景码加载完成");
-            }catch ( Exception e){
-                e.printStackTrace();
-            }finally {
-                redisUtil.del(RedisKeyUtil.SCENE_NUMS_LOADING);
-            }
-        }else {
-            // 等待1秒加载缓存
-            try {
-                Thread.sleep(1000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-        }
-        String num = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS);
-        if(ObjectUtils.isEmpty(num)){
-            log.error("场景码加载失败");
-            throw new BusinessException(-1,"场景码生成失败,请重试");
-        }
-        return addPrefix(num,cameraType);
-    }
-
-    private  static  String addPrefix( String num,Integer cameraType){
-        if(cameraType == null){
-            return num;
-        }
-        return CameraTypeEnum.getSceneNumPrefixByType(cameraType) + num;
-    }
-
-    private List<String> getSceneNum() {
-        LambdaQueryWrapper<Scene3dNum> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Scene3dNum::getUsed,0);
-        long count = this.count(wrapper);
-        List<Scene3dNum> numList ;
-        if(count < 10){
-            log.info("场景码数量不足生成场景码");
-            numList = this.createNum(10);
-        }else {
-            wrapper.last("limit 100");
-            numList = this.list(wrapper);
-            for (Scene3dNum scene3dNum : numList) {
-                scene3dNum.setUsed(1);
-            }
-            this.updateBatchById(numList);
-        }
-        return  numList.parallelStream().map(Scene3dNum::getCode).collect(Collectors.toList());
-    }
-
-    private List<Scene3dNum> createNum(Integer size) {
-        //uuid 作为生成批次
-        List<Scene3dNum> scene3dNums = new ArrayList<>();
-        String uuid = UUID.randomUUID().toString().replace("-", "");
-        HashSet<String> codeList = this.createCode(size);
-        while (codeList.size() < size){
-            codeList.addAll(this.createCode(size - codeList.size()));
-        }
-        for (String code : codeList) {
-            Scene3dNum scene3dNum = new Scene3dNum();
-            scene3dNum.setUsed(1);
-            scene3dNum.setCode(code);
-            scene3dNum.setFolderName(uuid);
-            scene3dNum.setCreateTime(new Date());
-            scene3dNum.setUpdateTime(new Date());
-            scene3dNums.add(scene3dNum);
-        }
-        this.saveBatch(scene3dNums);
-        return scene3dNums;
-    }
-
-    private HashSet<String> createCode(Integer size) {
-        HashSet<String> codeList = new HashSet<>();
-        while (codeList.size() < size){
-            String code = RandomUtil.generateShortUuid().substring(0,8);
-            codeList.add(code);
-        }
-        LambdaQueryWrapper<Scene3dNum> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(Scene3dNum::getCode,codeList);
-        List<Scene3dNum> list = this.list(wrapper);
-        if(list.size() <=0){
-            return codeList;
-        }
-        for (Scene3dNum scene3dNum : list) {
-            codeList.remove(scene3dNum.getCode());
-        }
-        return codeList;
-    }
 
 }

+ 20 - 4
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -199,9 +199,19 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         lockOrUnLockScenes(lockedIds,payStatus);
     }
 
+    @Override
+    public void lockOrUnLockBySpace(ScenePro scenePro, ScenePlus scenePlus,Integer payStatus) {
+        List<Long> lockedIds = new ArrayList<>();
+        if(scenePro!= null){
+            lockedIds.add(scenePro.getId());
+        }
+        if(scenePlus!= null){
+            lockedIds.add(scenePlus.getId());
+        }
+        lockOrUnLockScenes(lockedIds,payStatus);  //  无限容量 全部解封
+    }
 
-
-    private void getSceneLockedIds(List<Long> lockedIds ,List<ScenePro> list,Long beyondSpace,Long accumulateSpace){
+    private void getSceneLockedIds(List<Long> lockedIds , List<ScenePro> list, Long beyondSpace, Long accumulateSpace){
         if (list != null && list.size() > 0){
             for (ScenePro scenePro : list){
                 accumulateSpace += scenePro.getSpace();
@@ -386,9 +396,15 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         oldCameraDetail.setUsedSpace(oldUseSpace);
         Long subSpace =  oldCameraDetail.getTotalSpace() - oldUseSpace;
 
-        if(cameraDetail.getType() != 10 && subSpace >0){    //有剩余容量解封容量内场景
+        if(oldCameraDetail.getType() != 10 && subSpace >0){           //有剩余容量解封容量内场景
             this.lockOrUnLockBySpace(oldCameraDetail,oldCameraDetail.getCameraId(),1);
         }
+
+        Integer payStatus =  scenePro == null ? scenePlus.getPayStatus() : scenePro.getPayStatus();
+
+        if(cameraDetail.getType() != 10 && payStatus!=1){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(scenePro,scenePlus,1);
+        }
         cameraDetailService.updateById(oldCameraDetail);
         cameraDetail.setUsedSpace(newUseSpace);
         cameraDetailService.updateById(cameraDetail);
@@ -413,7 +429,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             folderSceneService.delBySceneId(scenePlus.getId());
         }
         if(cameraDetail.getType() == 10){       //深时场景
-            laserService.move(param.getNum(),oldCamera.getSnCode(),camera.getSnCode());
+            laserService.move(param.getNum(),oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId());
         }
 
     }

+ 14 - 0
src/main/java/com/fdkankan/manage/service/impl/SysRoleMenuServiceImpl.java

@@ -86,4 +86,18 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysR
         return this.list(wrapper);
     }
 
+    @Override
+    public void deleteByMenuId(Long menuId) {
+        LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysRoleMenu::getMenuId,menuId);
+        this.remove(wrapper);
+    }
+
+    @Override
+    public void addByMenuId(Long menuId, Long roleId) {
+        SysRoleMenu roleMenu = new SysRoleMenu();
+        roleMenu.setRoleId(roleId);
+        roleMenu.setMenuId(menuId);
+        this.save(roleMenu);
+    }
 }

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

@@ -193,7 +193,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
             user.setPassword(passwordMd5);
             user.setStatus(1);
             user.setIsNotice(1);
-            user.setRegisterTime(new Date());
+            user.setRegisterTime(Dateutils.getDate(new Date()));
             user.setUserName(param.getUserName());
             user.setNickName(param.getNickName());
             user.setCountry("86");

+ 27 - 0
src/main/java/com/fdkankan/manage/util/FiledUtil.java

@@ -0,0 +1,27 @@
+package com.fdkankan.manage.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class FiledUtil {
+
+    public static String upperCharToUnderLine(String param) {
+        Pattern p=Pattern.compile("[A-Z]");
+        if(param==null ||param.equals("")){
+            return "";
+        }
+        StringBuilder builder=new StringBuilder(param);
+        Matcher mc=p.matcher(param);
+        int i=0;
+        while (mc.find()) {
+            builder.replace(mc.start()+i, mc.end()+i, "_"+mc.group().toLowerCase());
+            i++;
+        }
+
+        if('_' == builder.charAt(0)){
+            builder.deleteCharAt(0);
+        }
+        return builder.toString();
+    }
+
+}

+ 2 - 2
src/main/java/com/fdkankan/manage/vo/InvoiceVO.java

@@ -39,14 +39,14 @@ public class InvoiceVO {
      */
     @ColumnWidth(20)
     @ExcelProperty("支付时间")
-    private Date payTime;
+    private String payTime;
 
     /**
      * 开票时间
      */
     @ColumnWidth(20)
     @ExcelProperty("开票申请时间")
-    private Date invoiceTime;
+    private String invoiceTime;
 
     /**
      * 开票金额

+ 2 - 2
src/main/java/com/fdkankan/manage/vo/PageNewsVO.java

@@ -56,12 +56,12 @@ public class PageNewsVO{
     /**
      * 发布时间
      */
-    private Date publicTime;
+    private String publicTime;
 
     /**
      * 创建时间
      */
-    private Date createTime;
+    private String createTime;
 
     /**
      * 创建人

+ 3 - 0
src/main/java/com/fdkankan/manage/vo/request/CameraParam.java

@@ -23,6 +23,9 @@ public class CameraParam extends RequestBase {
 
     private String  agentName;
 
+    private Integer bindStatus;         //绑定状态查询 0 未绑定,1已绑定
+    private String bindUserName;        //绑定账号查询
+
 
 
     public String getActivatedStartTime() {

+ 45 - 1
src/main/java/com/fdkankan/manage/vo/request/SceneParam.java

@@ -1,10 +1,15 @@
 package com.fdkankan.manage.vo.request;
 
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.manage.util.Dateutils;
+import com.fdkankan.manage.util.FiledUtil;
 import com.fdkankan.manage.vo.request.RequestBase;
+import jodd.util.StringUtil;
 import lombok.Data;
+import org.springframework.web.bind.annotation.GetMapping;
 
+import java.security.GeneralSecurityException;
 import java.util.List;
-
 @Data
 public class SceneParam extends RequestBase {
     private String num;
@@ -15,4 +20,43 @@ public class SceneParam extends RequestBase {
     private Integer companyId;
 
     private List<String> snCodes;
+
+    private List<String> timeList;
+
+    private String startTime;
+    private String endTime;
+
+    private String field;
+
+    private String order;
+
+    public String getStartTime() {
+        if(timeList != null && timeList.size() >1){
+            return Dateutils.getStartTime(timeList.get(0));
+        }
+        return Dateutils.getStartTime(startTime);
+    }
+
+    public String getEndTime() {
+        if(timeList != null && timeList.size() >1){
+            return Dateutils.getEndTime(timeList.get(1));
+        }
+        return Dateutils.getEndTime(endTime);
+    }
+
+    public String getField() {
+        if(StringUtil.isNotBlank(field)){
+            return FiledUtil.upperCharToUnderLine(field);
+        }
+        return "create_time";
+    }
+
+    public String getOrder() {
+        if(StringUtil.isNotBlank(order) && order.contains("end")){
+            return order.split("end")[0];
+        }
+        return "DESC";
+    }
+
+
 }

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

@@ -22,7 +22,7 @@ public class SpaceSdkParam extends RequestBase implements Serializable {
     private String imprint;
 
 
-    private Date publishTime;
+    private String publishTime;
 
     /**
      * 是否置顶 1 -置顶  0-不置顶

+ 10 - 0
src/main/java/com/fdkankan/manage/vo/response/SSDownSceneVo.java

@@ -0,0 +1,10 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class SSDownSceneVo {
+                                //离线包状态是否需要重新生成 1 不需要 2需要
+    private Integer status;     //0:正在生成 1,初次生成  2,已经生成直接下载 3,重新生成
+    private String url;         //下载地址
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/vo/response/SceneVo.java

@@ -22,4 +22,6 @@ public class SceneVo {
 
     private String algorithmTime;  //v4场景计算完成时间
 
+    private Integer isObj =1 ;
+
 }

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: local-kj
+    active: test
 logging:
   config: classpath:logback-spring.xml
 mybatis-plus:

+ 9 - 0
src/main/resources/mapper/manage/CameraMapper.xml

@@ -41,6 +41,15 @@
         <if test="param.agentName !=null and param.agentName !=''  ">
             and an.name like  concat('%',#{param.agentName},'%')
         </if>
+        <if test="param.bindUserName !=null and param.bindUserName !=''  ">
+            and u.user_name like  concat('%',#{param.bindUserName},'%')
+        </if>
+        <if test="param.bindStatus !=null and param.bindStatus ==0 ">
+            and u.user_name is null
+        </if>
+        <if test="param.bindStatus !=null and param.bindStatus ==1 ">
+            and u.user_name is not null
+        </if>
         order by c.activated_time desc
     </select>
     <select id="getByOutSnCodes" resultType="com.fdkankan.manage.entity.Camera">

+ 13 - 13
src/main/resources/mapper/manage/InvoiceMapper.xml

@@ -8,7 +8,7 @@
       SELECT distinct
       i.`id`,
       o.`order_sn`,
-      o.`finish_time` AS payTime,
+      o.`order_time` AS payTime,
       i.`create_time` AS invoiceTime,
       i.`money`,
       i.`type`,
@@ -31,16 +31,16 @@
         and o.`order_sn` like  concat('%', #{param.orderSn}, '%')
       </if>
       <if test="param.invoiceTimeStart != null">
-        and i.`create_time` >=  #{param.invoiceTimeStart}
+        and i.`create_time` &gt;=  #{param.invoiceTimeStart}
       </if>
       <if test="param.invoiceTimeEnd != null">
-        and i.`create_time` <![CDATA[ <= ]]>  #{param.invoiceTimeEnd}
+        and i.`create_time` &lt;= #{param.invoiceTimeEnd}
       </if>
       <if test="param.payTimeStart != null">
-        and o.`finish_time` >=  #{param.payTimeStart}
+        and o.`finish_time` &gt;=  #{param.payTimeStart}
       </if>
       <if test="param.payTimeEnd != null">
-        and o.`finish_time` <![CDATA[ <= ]]>  #{param.payTimeEnd}
+        and o.`finish_time` &lt;=  #{param.payTimeEnd}
       </if>
 
       UNION
@@ -72,16 +72,16 @@
         and o.`order_sn` like  concat('%', #{param.orderSn}, '%')
       </if>
       <if test="param.invoiceTimeStart != null">
-        and i.`create_time` >=  #{param.invoiceTimeStart}
+        and i.`create_time` &gt;=  #{param.invoiceTimeStart}
       </if>
       <if test="param.invoiceTimeEnd != null">
-        and i.`create_time` <![CDATA[ <= ]]>  #{param.invoiceTimeEnd}
+        and i.`create_time` &lt;=  #{param.invoiceTimeEnd}
       </if>
       <if test="param.payTimeStart != null">
-        and o.`trade_time` >=  #{param.payTimeStart}
+        and o.`trade_time` &gt;=  #{param.payTimeStart}
       </if>
       <if test="param.payTimeEnd != null">
-        and o.`trade_time` <![CDATA[ <= ]]>  #{param.payTimeEnd}
+        and o.`trade_time` &lt;=  #{param.payTimeEnd}
       </if>
 
       UNION
@@ -113,16 +113,16 @@
         and o.`order_sn` like  concat('%', #{param.orderSn}, '%')
       </if>
       <if test="param.invoiceTimeStart != null">
-        and i.`create_time` >=  #{param.invoiceTimeStart}
+        and i.`create_time` &gt;=  #{param.invoiceTimeStart}
       </if>
       <if test="param.invoiceTimeEnd != null">
-        and i.`create_time` <![CDATA[ <= ]]>  #{param.invoiceTimeEnd}
+        and i.`create_time` &lt;=  #{param.invoiceTimeEnd}
       </if>
       <if test="param.payTimeStart != null">
-        and o.`trade_time` >=  #{param.payTimeStart}
+        and o.`trade_time` &gt;=  #{param.payTimeStart}
       </if>
       <if test="param.payTimeEnd != null">
-        and o.`trade_time` <![CDATA[ <= ]]>  #{param.payTimeEnd}
+        and o.`trade_time` &lt;=  #{param.payTimeEnd}
       </if>
     ) t
     <if test="param.orderBy != null and param.orderBy!='' and param.sortBy !=null and param.sortBy !='' ">

+ 10 - 1
src/main/resources/mapper/manage/SceneMapper.xml

@@ -46,6 +46,15 @@
         <if test="param.companyId !=null ">
             and co.id = #{param.companyId}
         </if>
-        order by s.id desc
+        <if test="param.num !=null and param.num !='' ">
+            and s.num like concat ('%',#{param.num},'%')
+        </if>
+        <if test="param.startTime !=null and param.startTime !='' ">
+            and s.create_time &gt;= #{param.startTime}
+        </if>
+        <if test="param.endTime !=null and param.endTime !='' ">
+            and s.create_time &lt;= #{param.endTime}
+        </if>
+        order by s.${param.field}  ${param.order}
     </select>
 </mapper>

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

@@ -49,7 +49,7 @@
             and s.title like concat ('%',#{param.sceneName},'%')
         </if>
         ) as tb
-        order by create_time desc
+        order by ${param.field}  ${param.order}
     </select>
 
     <sql id="commonWhere">
@@ -70,8 +70,20 @@
         <if test="param.type !=null and param.type == 1">
             and s.scene_source = 3
         </if>
+        <if test="param.type !=null and param.type == 5">
+            and s.scene_source = 4 and is_obj = 1
+        </if>
         <if test="param.companyId !=null ">
             and co.id = #{param.companyId}
         </if>
+        <if test="param.num !=null and param.num !='' ">
+            and s.num like concat ('%',#{param.num},'%')
+        </if>
+        <if test="param.startTime !=null and param.startTime !='' ">
+            and s.create_time &gt;= #{param.startTime}
+        </if>
+        <if test="param.endTime !=null and param.endTime !='' ">
+            and s.create_time &lt;= #{param.endTime}
+        </if>
     </sql>
 </mapper>

BIN
src/main/resources/template/cameraOut.xlsx