lyhzzz 2 years ago
parent
commit
5d5e7d869c

+ 1 - 0
src/main/java/com/fdkankan/ucenter/common/OssPath.java

@@ -5,4 +5,5 @@ public class OssPath {
     public final static String houseTypePath = "scene_edit_data/%s/user/houseType.json";
     public final static String v3_statusPath = "data/data%s/status.json";
     public final static String v4_statusPath = "scene_view_data/%s/data/status.json";
+    public final static String localStatusPath = System.getProperty("java.io.tmpdir") +"status.json";
 }

+ 11 - 2
src/main/java/com/fdkankan/ucenter/controller/TestController.java

@@ -1,23 +1,32 @@
 package com.fdkankan.ucenter.controller;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.OssPath;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
 import com.fdkankan.ucenter.common.Result;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.Map;
 
 @RestController
 public class TestController {
-
+    @Resource
+    private FYunFileServiceInterface fYunFileService;
 
     @RequestMapping("/test")
     public Result test() throws Exception {
-
         return Result.success( );
     }
+
 }

+ 54 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -1,6 +1,9 @@
 package com.fdkankan.ucenter.service.impl;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.OSS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,6 +15,7 @@ import com.fdkankan.common.util.*;
 import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.ucenter.common.OssPath;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.image.MatrixToImageWriterUtil;
@@ -192,7 +196,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
 
         wrapper.eq(ScenePro::getCameraId,cameraId)
-                .eq(ScenePro::getSceneScheme,4)
                 .eq(ScenePro::getIsUpgrade,0);
 
         plusWr.eq(ScenePlus::getCameraId,cameraId);
@@ -213,6 +216,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
         lockOrUnLockScenes(lockedIds,payStatus);
     }
+
+
+
     private void getSceneLockedIds(List<Long> lockedIds ,List<ScenePro> list,Long count,Long beyondSpace,Long accumulateSpace){
         if (list != null && list.size() > 0){
             for (ScenePro scenePro : list){
@@ -256,8 +262,55 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 .in(ScenePlus::getId,lockedIds);
         scenePlusService.update(updatePlusWrapper);
 
+        this.updateOssStatus(lockedIds,payStatus);
     }
 
+    /**
+     *  修改oss status.json中 payStatus
+     */
+    private void updateOssStatus(List<Long> lockedIds, Integer payStatus) {
+        LambdaQueryWrapper<ScenePro> proWr = new LambdaQueryWrapper<>();
+        proWr.eq(ScenePro::getIsUpgrade,0);
+        proWr.in(ScenePro::getId,lockedIds);
+        List<ScenePro> proList = this.list(proWr);
+
+        LambdaQueryWrapper<ScenePlus> pluWr = new LambdaQueryWrapper<>();
+        pluWr.in(ScenePlus::getId,lockedIds);
+        List<ScenePlus> plusList = scenePlusService.list(pluWr);
+        for (ScenePro scenePro : proList) {
+            this.updateOssProStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),payStatus);
+        }
+        for (ScenePlus scenePlus : plusList) {
+            this.updateOssProStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),payStatus);
+        }
+
+    }
+
+    /**
+     * 从oss中获取文件,并重写,上传替换
+     */
+    private void updateOssProStatus(String path,Integer payStatus) {
+        try {
+            if(!fYunFileService.fileExist(path)){
+                return;
+            }
+            String data = fYunFileService.getFileContent(path);
+            if(StringUtils.isBlank(data)){
+                return;
+            }
+            JSONObject jsonObject = JSONObject.parseObject(data);
+            jsonObject.put("payStatus",payStatus);
+            String json = JSONUtil.toJsonStr(jsonObject);
+            FileUtils.writeFile(OssPath.localStatusPath ,json);
+            fYunFileService.uploadFile(OssPath.localStatusPath,path);
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            FileUtil.del(OssPath.localStatusPath);
+        }
+    }
+
+
 
     @Override
     public List<ScenePro> getListByCameraId(Long cameraId) {