lyhzzz 3 лет назад
Родитель
Сommit
ebf5343dc1
36 измененных файлов с 803 добавлено и 4 удалено
  1. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraSpaceController.java
  2. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneCooperationController.java
  3. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneResourceCameraController.java
  4. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneResourceCooperationController.java
  5. 5 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java
  6. 89 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraSpace.java
  7. 50 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneCooperation.java
  8. 50 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneResourceCamera.java
  9. 50 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneResourceCooperation.java
  10. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  11. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraSpaceMapper.java
  12. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneCooperationMapper.java
  13. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneResourceCameraMapper.java
  14. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneResourceCooperationMapper.java
  15. 3 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java
  16. 2 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java
  17. 17 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraSpaceService.java
  18. 17 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneCooperationService.java
  19. 6 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneProService.java
  20. 17 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneResourceCameraService.java
  21. 19 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneResourceCooperationService.java
  22. 2 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneService.java
  23. 2 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserIncrementService.java
  24. 22 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java
  25. 26 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java
  26. 27 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraSpaceServiceImpl.java
  27. 49 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneCooperationServiceImpl.java
  28. 98 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  29. 27 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneResourceCameraServiceImpl.java
  30. 29 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneResourceCooperationServiceImpl.java
  31. 10 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneServiceImpl.java
  32. 9 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserIncrementServiceImpl.java
  33. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/CameraSpaceMapper.xml
  34. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneCooperationMapper.xml
  35. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneResourceCameraMapper.xml
  36. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneResourceCooperationMapper.xml

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraSpaceController.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 2022-06-17
+ */
+@RestController
+@RequestMapping("/manage/cameraSpace")
+public class CameraSpaceController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneCooperationController.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 2022-06-17
+ */
+@RestController
+@RequestMapping("/manage/sceneCooperation")
+public class SceneCooperationController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneResourceCameraController.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 2022-06-17
+ */
+@RestController
+@RequestMapping("/manage/sceneResourceCamera")
+public class SceneResourceCameraController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneResourceCooperationController.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 2022-06-17
+ */
+@RestController
+@RequestMapping("/manage/sceneResourceCooperation")
+public class SceneResourceCooperationController {
+
+}
+

+ 5 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java

@@ -80,5 +80,10 @@ public class UserController {
         return ResultData.ok(cameraService.getCameraByUserId(pageNum,pageSize,userId));
     }
 
+    @GetMapping("/unbindCamera")
+    public ResultData unbindCamera(@RequestParam(required = false)Long cameraId){
+        cameraService.unbindCamera(cameraId);
+        return ResultData.ok();
+    }
 }
 

+ 89 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraSpace.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机容量表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_camera_space")
+public class CameraSpace implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 容量类型,0表示基础容量,1表示期限容量,2表示扩容容量
+     */
+    @TableField("space_type")
+    private Integer spaceType;
+
+    /**
+     * 生效时间
+     */
+    @TableField("space_start_time")
+    private String spaceStartTime;
+
+    /**
+     * 结束时间
+     */
+    @TableField("space_end_time")
+    private String spaceEndTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+
+}

+ 50 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneCooperation.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_scene_cooperation")
+public class SceneCooperation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("scene_num")
+    private String sceneNum;
+
+    /**
+     * 协作的用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 50 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneResourceCamera.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景资源和相机关联表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_scene_resource_camera")
+public class SceneResourceCamera implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景资源id
+     */
+    @TableField("scene_resource_id")
+    private Long sceneResourceId;
+
+    /**
+     * 协作相机的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 50 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneResourceCooperation.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_scene_resource_cooperation")
+public class SceneResourceCooperation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景资源id
+     */
+    @TableField("scene_resource_id")
+    private Long sceneResourceId;
+
+    /**
+     * 协作用户的id
+     */
+    @TableField("scene_cooperation_id")
+    private Long sceneCooperationId;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
 
         generate(path,"manage", getTables(new String[]{
-                "t_camera_out"
+                "t_scene_cooperation","t_scene_resource_cooperation"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraSpaceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraSpace;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机容量表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Mapper
+public interface ICameraSpaceMapper extends BaseMapper<CameraSpace> {
+
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneCooperationMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.SceneCooperation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Mapper
+public interface ISceneCooperationMapper extends BaseMapper<SceneCooperation> {
+
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneResourceCameraMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.SceneResourceCamera;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景资源和相机关联表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Mapper
+public interface ISceneResourceCameraMapper extends BaseMapper<SceneResourceCamera> {
+
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneResourceCooperationMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.SceneResourceCooperation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Mapper
+public interface ISceneResourceCooperationMapper extends BaseMapper<SceneResourceCooperation> {
+
+}

+ 3 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java

@@ -18,4 +18,7 @@ public interface ICameraDetailService extends IService<CameraDetail> {
 
     HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
 
+    void unbindCamera(Long cameraId);
+
+    CameraDetail getByCameraId(Long cameraId);
 }

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java

@@ -19,4 +19,6 @@ public interface ICameraService extends IService<Camera> {
     List<Camera> getListByCameraIdList(List<Long> cameraIdList);
 
     PageInfo getCameraByUserId(Integer pageNum, Integer pageSize, Long userId);
+
+    void unbindCamera(Long cameraId);
 }

+ 17 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraSpaceService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.CameraSpace;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机容量表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+public interface ICameraSpaceService extends IService<CameraSpace> {
+
+    void unbindCamera(Long cameraId);
+}

+ 17 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneCooperationService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.SceneCooperation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+public interface ISceneCooperationService extends IService<SceneCooperation> {
+
+    void deleteCooperation(Long cameraId);
+}

+ 6 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneProService.java

@@ -17,4 +17,10 @@ import java.util.List;
 public interface ISceneProService extends IService<ScenePro> {
 
     HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
+
+    void unbindCamera(Long cameraId);
+
+    void lockBySpace(Long cameraId);
+
+    List<ScenePro> getListByCameraId(Long cameraId);
 }

+ 17 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneResourceCameraService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.SceneResourceCamera;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 场景资源和相机关联表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+public interface ISceneResourceCameraService extends IService<SceneResourceCamera> {
+
+    void unbindCamera(Long cameraId);
+}

+ 19 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneResourceCooperationService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.SceneResourceCooperation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+public interface ISceneResourceCooperationService extends IService<SceneResourceCooperation> {
+
+    void deleteBatchByCooperationIds(List<Long> cooperationIds);
+}

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneService.java

@@ -17,4 +17,6 @@ import java.util.List;
 public interface ISceneService extends IService<Scene> {
 
     HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
+
+    void unbindCamera(Long cameraId);
 }

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserIncrementService.java

@@ -27,4 +27,6 @@ public interface IUserIncrementService extends IService<UserIncrement> {
     void delayById(Long id, Integer year);
 
     void add(UserIncrementParam param);
+
+    void unbindCamera(Long cameraId);
 }

+ 22 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fdkankan.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.mapper.ICameraDetailMapper;
@@ -28,4 +30,24 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
         return map;
     }
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(CameraDetail::getUserId,null)
+                .set(CameraDetail::getCooperationUser,null)
+                .eq(CameraDetail::getCameraId,cameraId);
+        this.update(wrapper);
+    }
+
+    @Override
+    public CameraDetail getByCameraId(Long cameraId) {
+        LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraDetail::getCameraId,cameraId);
+        List<CameraDetail> list = this.list(wrapper);
+        if(list == null || list.size() <=0){
+            return null;
+        }
+        return list.get(0);
+    }
 }

+ 26 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java

@@ -6,8 +6,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.Camera;
 import com.fdkankan.manage.mapper.ICameraMapper;
-import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.vo.response.CameraDetailVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -23,6 +24,18 @@ import java.util.List;
 @Service
 public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implements ICameraService {
 
+    @Autowired
+    ICameraDetailService cameraDetailService;
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneProService sceneProService;
+    @Autowired
+    IUserIncrementService userIncrementService;
+    @Autowired
+    ISceneResourceCameraService sceneResourceCameraService;
+    @Autowired
+    ISceneCooperationService cooperationService;
 
     @Override
     public List<Camera> getListByCameraIdList(List<Long> cameraIdList) {
@@ -36,4 +49,16 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         Page<CameraDetailVo> page = this.getBaseMapper().getCameraByUserId(new Page<>(pageNum,pageSize),userId);
         return PageInfo.PageInfo(page);
     }
+
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        sceneProService.lockBySpace(cameraId);              //场景封存
+        cameraDetailService.unbindCamera(cameraId);         //取消相机用户关联
+        userIncrementService.unbindCamera(cameraId);        //取消关联用户权益
+        sceneService.unbindCamera(cameraId);                //取消关联场景
+        sceneProService.unbindCamera(cameraId);             //取消关联场景
+        sceneResourceCameraService.unbindCamera(cameraId);  //删除协作相机
+        cooperationService.deleteCooperation(cameraId);     //删除协作场景关系
+    }
 }

+ 27 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraSpaceServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.entity.CameraSpace;
+import com.fdkankan.manage.mapper.ICameraSpaceMapper;
+import com.fdkankan.manage.service.ICameraSpaceService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 相机容量表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Service
+public class CameraSpaceServiceImpl extends ServiceImpl<ICameraSpaceMapper, CameraSpace> implements ICameraSpaceService {
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaQueryWrapper<CameraSpace> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraSpace::getCameraId,cameraId);
+        this.remove(wrapper);
+    }
+}

+ 49 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneCooperationServiceImpl.java

@@ -0,0 +1,49 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.SceneCooperation;
+import com.fdkankan.manage.entity.ScenePro;
+import com.fdkankan.manage.mapper.ISceneCooperationMapper;
+import com.fdkankan.manage.service.ISceneCooperationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.ISceneProService;
+import com.fdkankan.manage.service.ISceneResourceCooperationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Service
+public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMapper, SceneCooperation> implements ISceneCooperationService {
+
+    @Autowired
+    ISceneResourceCooperationService sceneResourceCooperationService;
+    @Autowired
+    ISceneProService sceneProService;
+
+    @Override
+    public void deleteCooperation(Long cameraId) {
+        List<ScenePro> sceneProList = sceneProService.getListByCameraId(cameraId);
+        if(!CollectionUtils.isEmpty(sceneProList)){
+            List<String> numList = sceneProList.stream().map(ScenePro::getNum).collect(Collectors.toList());
+            LambdaQueryWrapper<SceneCooperation> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(SceneCooperation::getSceneNum,numList);
+            List<SceneCooperation> list = this.list(wrapper);
+            List<Long> ids = list.stream().map(SceneCooperation::getId).collect(Collectors.toList());
+            if(ids.size() >0){
+                sceneResourceCooperationService.removeByIds(ids);
+                sceneResourceCooperationService.deleteBatchByCooperationIds(ids);
+            }
+        }
+    }
+}

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

@@ -1,14 +1,26 @@
 package com.fdkankan.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.Constant;
+import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.ScenePro;
 import com.fdkankan.manage.mapper.ISceneProMapper;
+import com.fdkankan.manage.service.ICameraDetailService;
 import com.fdkankan.manage.service.ISceneProService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -21,6 +33,11 @@ import java.util.List;
 @Service
 public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
 
+    @Autowired
+    ICameraDetailService cameraDetailService;
+    @Autowired
+    private UploadToOssUtil uploadToOssUtil;
+
     @Override
     public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
         HashMap<Long,Long> map = new HashMap<>();
@@ -28,4 +45,84 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
         return map;
     }
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(ScenePro::getUserId,null)
+                .eq(ScenePro::getCameraId,cameraId);
+        this.update(wrapper);
+    }
+
+    @Override
+    public List<ScenePro> getListByCameraId(Long cameraId) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getCameraId,cameraId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public void lockBySpace(Long cameraId) {
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(cameraId);
+        if(cameraDetail == null){
+            return;
+        }
+        //恢复10G基本容量
+        cameraDetail.setTotalSpace(Long.parseLong(Constant.EXPANSION_SPACE_VALUE_1G ) * 10L);
+        cameraDetailService.updateById(cameraDetail);
+
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getCameraId,cameraId)
+                .eq(ScenePro::getPayStatus,1)
+                .eq(ScenePro::getSceneScheme,4);
+        List<ScenePro> list = this.list(wrapper);
+        Long beyondSpace = cameraDetail.getUsedSpace() - cameraDetail.getTotalSpace();
+        Long accumulateSpace = 0L;
+        List<Long> lockedIds = new ArrayList<>();
+        if (list != null && list.size() > 0){
+            for (ScenePro scenePro : list){
+                accumulateSpace += scenePro.getSpace();
+                if (accumulateSpace.compareTo(beyondSpace) > 0){
+                    break;
+                }
+                lockedIds.add(scenePro.getId());
+            }
+        }
+        lockOrUnLockScenes(lockedIds,-2);
+    }
+
+    // payStatus 为 -2 封存,为 1 解封
+    private void lockOrUnLockScenes(List<Long> lockedIds,Integer payStatus) {
+        if (lockedIds == null || lockedIds.size() == 0){
+            return;
+        }
+        LambdaUpdateWrapper<ScenePro> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(ScenePro::getPayStatus,payStatus)
+                .in(ScenePro::getId,lockedIds);
+        this.update(updateWrapper);
+
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePro::getId,lockedIds);
+        List<ScenePro> list = this.list(wrapper);
+        for (ScenePro scenePro : list) {
+            try{
+                Map<String, Object> map = new HashMap<>();
+                map.put("payStatus", payStatus);
+                FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + scenePro.getNum() + "/scene.json", map);
+                com.alibaba.fastjson.JSONObject statusJson = new com.alibaba.fastjson.JSONObject();
+
+                //临时将-2改成1,app还没完全更新
+                statusJson.put("status", scenePro.getStatus() == -2 ? 1 : scenePro.getStatus());
+                statusJson.put("webSite", scenePro.getWebSite());
+                statusJson.put("sceneNum", scenePro.getNum());
+                statusJson.put("thumb", scenePro.getThumb());
+                statusJson.put("payStatus", scenePro.getPayStatus());
+                FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+scenePro.getNum()+ File.separator+"status.json", statusJson.toString());
+                uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+scenePro.getNum()+File.separator+"status.json",
+                        "data/data"+scenePro.getNum()+File.separator+"status.json");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
 }

+ 27 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneResourceCameraServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.SceneResourceCamera;
+import com.fdkankan.manage.mapper.ISceneResourceCameraMapper;
+import com.fdkankan.manage.service.ISceneResourceCameraService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 场景资源和相机关联表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Service
+public class SceneResourceCameraServiceImpl extends ServiceImpl<ISceneResourceCameraMapper, SceneResourceCamera> implements ISceneResourceCameraService {
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaQueryWrapper<SceneResourceCamera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneResourceCamera::getCameraId,cameraId);
+        this.remove(wrapper);
+    }
+}

+ 29 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneResourceCooperationServiceImpl.java

@@ -0,0 +1,29 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.SceneResourceCooperation;
+import com.fdkankan.manage.mapper.ISceneResourceCooperationMapper;
+import com.fdkankan.manage.service.ISceneResourceCooperationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Service
+public class SceneResourceCooperationServiceImpl extends ServiceImpl<ISceneResourceCooperationMapper, SceneResourceCooperation> implements ISceneResourceCooperationService {
+
+    @Override
+    public void deleteBatchByCooperationIds(List<Long> cooperationIds) {
+        LambdaQueryWrapper<SceneResourceCooperation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(SceneResourceCooperation::getSceneCooperationId,cooperationIds);
+        this.remove(wrapper);
+    }
+}

+ 10 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneServiceImpl.java

@@ -1,9 +1,10 @@
 package com.fdkankan.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.entity.Scene;
 import com.fdkankan.manage.mapper.ISceneMapper;
 import com.fdkankan.manage.service.ISceneService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.vo.response.GroupByUserIdCount;
 import org.springframework.stereotype.Service;
 
@@ -28,4 +29,12 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
         return map;
     }
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaUpdateWrapper<Scene> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(Scene::getUserId,null)
+                .eq(Scene::getCameraId,cameraId);
+        this.update(wrapper);
+    }
 }

+ 9 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserIncrementServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.exception.BusinessException;
@@ -116,4 +117,12 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
         }
         this.saveBatch(userIncrementList);
     }
+
+    @Override
+    public void unbindCamera(Long cameraId) {
+        LambdaUpdateWrapper<UserIncrement> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(UserIncrement::getCameraId,null)
+                .eq(UserIncrement::getCameraId,cameraId);
+        this.update(wrapper);
+    }
 }

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CameraSpaceMapper.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.ICameraSpaceMapper">
+
+</mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneCooperationMapper.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.ISceneCooperationMapper">
+
+</mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneResourceCameraMapper.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.ISceneResourceCameraMapper">
+
+</mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneResourceCooperationMapper.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.ISceneResourceCooperationMapper">
+
+</mapper>