Forráskód Böngészése

返回超容量的场景码的status.json

lyhzzz 2 éve
szülő
commit
6e4f362d4a

+ 77 - 0
src/main/java/com/fdkankan/ucenter/entity/ExceedSpaceScene.java

@@ -0,0 +1,77 @@
+package com.fdkankan.ucenter.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 超出容量场景码表
+ * </p>
+ *
+ * @author 
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+@TableName("t_exceed_space_scene")
+public class ExceedSpaceScene implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 初次上传用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    @TableField("file_id")
+    private String fileId;
+
+    @TableField("unicode")
+    private String unicode;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("version")
+    private String version;
+}

+ 1 - 1
src/main/java/com/fdkankan/ucenter/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"ucenter", getTables(new String[]{
-                "t_increment_type",
+                "t_exceed_space_scene",
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/ucenter/mapper/IExceedSpaceSceneMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.ucenter.mapper;
+
+import com.fdkankan.ucenter.entity.ExceedSpaceScene;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 超出容量场景码表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-06-30
+ */
+@Mapper
+public interface IExceedSpaceSceneMapper extends BaseMapper<ExceedSpaceScene> {
+
+}

+ 27 - 0
src/main/java/com/fdkankan/ucenter/service/IExceedSpaceSceneService.java

@@ -0,0 +1,27 @@
+package com.fdkankan.ucenter.service;
+
+import com.fdkankan.ucenter.entity.CameraDetail;
+import com.fdkankan.ucenter.entity.ExceedSpaceScene;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.entity.UserIncrement;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 超出容量场景码表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-06-30
+ */
+public interface IExceedSpaceSceneService extends IService<ExceedSpaceScene> {
+
+    void recoveredSpaceByCameraId(Long cameraId);
+
+    void recoveredSpaceByCameraId(CameraDetail cameraDetail,UserIncrement userIncrement);
+
+    List<ExceedSpaceScene> getExByCameraId(Long cameraId);
+
+    ExceedSpaceScene getByUnicode(String unicode);
+}

+ 37 - 1
src/main/java/com/fdkankan/ucenter/service/impl/AppSceneService.java

@@ -2,6 +2,7 @@ package com.fdkankan.ucenter.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.ucenter.common.constants.ConstantFilePath;
 import com.fdkankan.common.constant.SceneConstant;
 import com.fdkankan.common.exception.BusinessException;
@@ -60,6 +61,10 @@ public class AppSceneService {
 
     @Autowired
     IScenePlusMapper scenePlusMapper;
+    @Autowired
+    IExceedSpaceSceneService exceedSpaceSceneService;
+    @Autowired
+    FYunFileServiceInterface fYunFileServiceInterface;
 
 
     @Value("${fyun.host}")
@@ -170,7 +175,33 @@ public class AppSceneService {
             scenePlus = scenePlusService.getById(plusExt.getPlusId());
         }
         if(scenePro == null && scenePlus == null){
-            throw new BusinessException(SceneConstant.FAILURE_CODE_5009, SceneConstant.FAILURE_MSG_5009);
+            ExceedSpaceScene exceedSpaceScene = exceedSpaceSceneService.getByUnicode(unicode);
+            if(exceedSpaceScene == null){
+                throw new BusinessException(SceneConstant.FAILURE_CODE_5009, SceneConstant.FAILURE_MSG_5009);
+            }else {
+                String sceneNum = exceedSpaceScene.getNum();
+                String sceneCallPath = null ;
+                String v3StatusJson = String.format(OssPath.v3_statusPath, sceneNum);
+                String v4StatusJson = String.format(OssPath.v4_statusPath, sceneNum);
+                if("V3".equals(exceedSpaceScene.getVersion())){
+                    sceneCallPath = v3StatusJson;
+                }
+                if("V4".equals(exceedSpaceScene.getVersion())){
+                    sceneCallPath = v4StatusJson;
+                }
+                if(StringUtils.isBlank(sceneCallPath)){
+                    if(fYunFileServiceInterface.fileExist(v3StatusJson)){
+                        sceneCallPath = v3StatusJson;
+                    }
+                    if(fYunFileServiceInterface.fileExist(v4StatusJson)){
+                        sceneCallPath = v4StatusJson;
+                    }
+                }
+                if(StringUtils.isBlank(sceneCallPath)){
+                    throw new BusinessException(SceneConstant.FAILURE_CODE_5009, SceneConstant.FAILURE_MSG_5009);
+                }
+                return getReturnMap(-1,null,sceneNum,null,null,1,sceneCallPath);
+            }
         }
         Integer payStatus = scenePro == null ? scenePlus.getPayStatus() : scenePro.getPayStatus();
         // 当计算时,返回给前端的状态为计算中
@@ -185,6 +216,11 @@ public class AppSceneService {
         String thumb = scenePro == null ? plusExt.getThumb() : scenePro.getThumb();
         String dataSource = scenePro == null ? plusExt.getDataSource() : scenePro.getDataSource();
         String sceneCallPath = scenePro == null ? String.format(OssPath.v4_statusPath,sceneNum) : String.format(OssPath.v3_statusPath,sceneNum);
+
+        return getReturnMap(status,webSite,sceneNum,thumb,dataSource,payStatus,sceneCallPath);
+    }
+
+    private HashMap<String,Object> getReturnMap(Integer status,String webSite,String sceneNum,String thumb,String dataSource,Integer payStatus,String sceneCallPath){
         HashMap<String,Object> map = new HashMap<>();
         map.put("status",status == -2 ? 1:status);
         map.put("webSite",webSite);

+ 137 - 0
src/main/java/com/fdkankan/ucenter/service/impl/ExceedSpaceSceneServiceImpl.java

@@ -0,0 +1,137 @@
+package com.fdkankan.ucenter.service.impl;
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.ucenter.common.FileUtil;
+import com.fdkankan.ucenter.common.OssPath;
+import com.fdkankan.ucenter.entity.CameraDetail;
+import com.fdkankan.ucenter.entity.ExceedSpaceScene;
+import com.fdkankan.ucenter.entity.IncrementType;
+import com.fdkankan.ucenter.entity.UserIncrement;
+import com.fdkankan.ucenter.mapper.IExceedSpaceSceneMapper;
+import com.fdkankan.ucenter.service.IExceedSpaceSceneService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.ucenter.service.IIncrementTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 超出容量场景码表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-06-30
+ */
+@Service
+@Slf4j
+public class ExceedSpaceSceneServiceImpl extends ServiceImpl<IExceedSpaceSceneMapper, ExceedSpaceScene> implements IExceedSpaceSceneService {
+
+    @Autowired
+    IIncrementTypeService incrementTypeService;
+    @Autowired
+    FYunFileServiceInterface fYunFileServiceInterface;
+
+    @Override
+    public List<ExceedSpaceScene> getExByCameraId(Long cameraId) {
+        LambdaQueryWrapper<ExceedSpaceScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
+        wrapper.orderByDesc(ExceedSpaceScene::getCreateTime);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public ExceedSpaceScene getByUnicode(String unicode) {
+        LambdaQueryWrapper<ExceedSpaceScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ExceedSpaceScene::getUnicode,unicode);
+        List<ExceedSpaceScene> list = this.list(wrapper);
+        if(list == null || list.size() <=0){
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
+    public void recoveredSpaceByCameraId(Long cameraId) {
+
+    }
+
+    @Override
+    public void recoveredSpaceByCameraId(CameraDetail cameraDetail,UserIncrement userIncrement) {
+        if("SP".equals(cameraDetail.getUnit())){
+            List<ExceedSpaceScene> list = this.getExByCameraId(cameraDetail.getCameraId());
+            IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
+            if(incrementType.getCameraSpace() == -1){
+                this.recoveredSpaceAll(cameraDetail.getCameraId());
+                return;
+            }
+            Long cameraSpace = Long.valueOf(incrementType.getCameraSpace());
+            if(cameraSpace >= cameraDetail.getUsedSpace() + list.size()){
+                this.recoveredSpaceAll(cameraDetail.getCameraId());
+            }
+            Long num = cameraSpace - cameraDetail.getUsedSpace();
+            this.recoveredSpace(list,num);
+        }
+    }
+
+    private void recoveredSpaceAll(Long cameraId) {
+        LambdaUpdateWrapper<ExceedSpaceScene> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
+        this.update(wrapper);
+    }
+
+    private void recoveredSpace(List<ExceedSpaceScene> list, Long num) {
+        if(num <=0){
+            return;
+        }
+        if(num >list.size()){
+            num = (long) list.size();
+        }
+        for (int i = 0; i<num; i++){
+            ExceedSpaceScene exceedSpaceScene = list.get(i);
+            exceedSpaceScene.setUpdateTime(null);
+            this.updateById(exceedSpaceScene);
+           // this.updateOssStatus(exceedSpaceScene.getNum());
+        }
+
+
+    }
+
+
+
+    private void updateOssStatus(String num) {
+        String v3StatusJson = String.format(OssPath.v3_statusPath, num);
+        String v4StatusJson = String.format(OssPath.v4_statusPath, num);
+        String statusJson = null;
+        String path = null;
+        if(fYunFileServiceInterface.fileExist(v3StatusJson)){
+            statusJson = fYunFileServiceInterface.getFileContent(v3StatusJson);
+            path = v3StatusJson;
+        }
+        if(fYunFileServiceInterface.fileExist(v4StatusJson)){
+            statusJson = fYunFileServiceInterface.getFileContent(v4StatusJson);
+            path = v4StatusJson;
+        }
+        try {
+            JSONObject jsonObject = JSONObject.parseObject(statusJson);
+            jsonObject.put("status",0);
+            String json = JSONUtil.toJsonStr(jsonObject);
+            FileUtils.writeFile(OssPath.localStatusPath ,json);
+            log.info("updateOssStatus--localPath:{},ossPath:{},status:{}",OssPath.localStatusPath,path,0);
+            fYunFileServiceInterface.uploadFile(OssPath.localStatusPath,path);
+        }catch (Exception e){
+            log.error("updateOssStatus--localPath:{},ossPath:{},status:{},error:{}",OssPath.localStatusPath,path,0,e);
+        }finally {
+            FileUtil.delFile(OssPath.localStatusPath);
+        }
+
+    }
+
+}

+ 3 - 1
src/main/java/com/fdkankan/ucenter/service/impl/UserIncrementServiceImpl.java

@@ -63,6 +63,8 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
     IMailTemplateService mailTemplateService;
     @Autowired
     ICameraIncrementLogService cameraIncrementLogService;
+    @Autowired
+    IExceedSpaceSceneService exceedSpaceSceneService;
 
     @Override
     public Long getCountByUserId(Long userId, int type) {
@@ -179,7 +181,7 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
         if(userIncrement == null){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3030, LoginConstant.FAILURE_MSG_3030);
         }
-        if(userIncrement.getIsExpired() == 1){
+        if(userIncrement.getIsExpired() == 1 || DateUserUtil.getDate(userIncrement.getIncrementEndTime()).getTime() <= new Date().getTime() ){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3030, LoginConstant.FAILURE_MSG_3030);
         }
         Camera cameraEntity = cameraService.getBySnCode(param.getSnCode());

+ 5 - 0
src/main/resources/mapper/ucenter/ExceedSpaceSceneMapper.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.ucenter.mapper.IExceedSpaceSceneMapper">
+
+</mapper>