Procházet zdrojové kódy

产品运营管理/相机场景管理

lyhzzz před 3 roky
rodič
revize
1292116a8c

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

+ 47 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/SceneCopyLog.java

@@ -0,0 +1,47 @@
+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-22
+ */
+@Getter
+@Setter
+@TableName("t_scene_copy_log")
+public class SceneCopyLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("old_num")
+    private String oldNum;
+
+    @TableField("new_num")
+    private String newNum;
+
+    @TableField("copy_user_id")
+    private Integer copyUserId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

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

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

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

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

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.SceneCopyLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-22
+ */
+public interface ISceneCopyLogService extends IService<SceneCopyLog> {
+
+    Long getCountBySceneNum(String num);
+}

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

@@ -21,7 +21,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     void unbindCamera(Long cameraId);
 
-    void lockBySpace(CameraDetail cameraDetail,Long cameraId);
+    void lockOrUnLockBySpace(CameraDetail cameraDetail,Long cameraId,Integer payStatus);
 
     List<ScenePro> getListByCameraId(Long cameraId);
 

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

@@ -29,4 +29,6 @@ public interface IUserIncrementService extends IService<UserIncrement> {
     void add(UserIncrementParam param);
 
     void unbindCamera(Long cameraId);
+
+    Long getValidCountByCameraId(Long cameraId);
 }

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

@@ -64,7 +64,7 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         cameraDetail.setTotalSpace(Long.parseLong(Constant.EXPANSION_SPACE_VALUE_1G ) * 10L);
         this.updateById(cameraDetail);
 
-        sceneProService.lockBySpace(cameraDetail,cameraId);     //封存场景
+        sceneProService.lockOrUnLockBySpace(cameraDetail,cameraId,-2);     //封存场景
     }
 
     @Override

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

@@ -0,0 +1,27 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.SceneCopyLog;
+import com.fdkankan.manage.mapper.ISceneCopyLogMapper;
+import com.fdkankan.manage.service.ISceneCopyLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-22
+ */
+@Service
+public class SceneCopyLogServiceImpl extends ServiceImpl<ISceneCopyLogMapper, SceneCopyLog> implements ISceneCopyLogService {
+
+    @Override
+    public Long getCountBySceneNum(String num) {
+        LambdaQueryWrapper<SceneCopyLog> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneCopyLog::getOldNum,num);
+        return this.count(wrapper);
+    }
+}

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

@@ -15,10 +15,7 @@ import com.fdkankan.manage.entity.Camera;
 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.ICameraService;
-import com.fdkankan.manage.service.ISceneProService;
-import com.fdkankan.manage.service.ISceneService;
+import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.util.SceneStatusUtil;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
@@ -51,6 +48,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Autowired
     ISceneService sceneService;
     @Autowired
+    ISceneCopyLogService copyLogService;
+    @Autowired
+    IUserIncrementService userIncrementService;
+    @Autowired
     private UploadToOssUtil uploadToOssUtil;
 
     private ScenePro getByNum(String num) {
@@ -95,25 +96,32 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public void lockBySpace(CameraDetail cameraDetail,Long cameraId) {
+    public void lockOrUnLockBySpace(CameraDetail cameraDetail,Long cameraId,Integer payStatus) {
         LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        Long count = 0L;
+        if(payStatus == 1){ //解封,判断用户权益,用户会员权益无限容量
+            count = userIncrementService.getValidCountByCameraId(cameraId);
+            wrapper.orderByAsc(ScenePro::getCreateTime);
+        }else {
+            wrapper.orderByDesc(ScenePro::getCreateTime);
+        }
         wrapper.eq(ScenePro::getCameraId,cameraId)
-                .eq(ScenePro::getPayStatus,1)
+                .eq(ScenePro::getPayStatus,payStatus)
                 .eq(ScenePro::getSceneScheme,4);
         List<ScenePro> list = this.list(wrapper);
-        Long beyondSpace = cameraDetail.getUsedSpace() - cameraDetail.getTotalSpace();
+        Long beyondSpace = Math.abs(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){
+                if (count ==0 && accumulateSpace.compareTo(beyondSpace) > 0){
                     break;
                 }
                 lockedIds.add(scenePro.getId());
             }
         }
-        lockOrUnLockScenes(lockedIds,-2);
+        lockOrUnLockScenes(lockedIds,payStatus);
     }
 
     // payStatus 为 -2 封存,为 1 解封
@@ -196,6 +204,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
         Long oldUseSpace = oldCameraDetail.getUsedSpace() - scenePro.getSpace() < 0 ? 0 : oldCameraDetail.getUsedSpace() - scenePro.getSpace();
         oldCameraDetail.setUsedSpace(oldUseSpace);
+        Long subSpace =  oldCameraDetail.getTotalSpace() - oldUseSpace;
+        if(subSpace >0){    //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(oldCameraDetail,oldCameraDetail.getCameraId(),1);
+        }
+
         cameraDetailService.updateById(oldCameraDetail);
 
         cameraDetail.setUsedSpace(newUseSpace);
@@ -213,9 +226,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(sourceScene == null){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
         }
+
+        Long count = copyLogService.getCountBySceneNum(num);
         ScenePro targetScene = new ScenePro();
         BeanUtils.copyProperties(sourceScene,targetScene);
         targetScene.setId(null);
+        targetScene.setNum(sourceScene.getNum() +"-cp-"+ count + 1); //复制场景在原场景上添加标识
 
     }
 }

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

@@ -125,4 +125,12 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
                 .eq(UserIncrement::getCameraId,cameraId);
         this.update(wrapper);
     }
+
+    @Override
+    public Long getValidCountByCameraId(Long cameraId) {
+        LambdaQueryWrapper<UserIncrement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserIncrement::getCameraId,cameraId);
+        wrapper.gt(UserIncrement::getIncrementEndTime, DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        return this.count(wrapper);
+    }
 }

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

+ 21 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/controller/AppFileController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.platform.agent.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-22
+ */
+@RestController
+@RequestMapping("/agent/appFile")
+public class AppFileController {
+
+}
+