123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.fdkankan.scene.service.impl;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.fastjson.JSON;
- import com.fdkankan.model.constants.ConstantFilePath;
- import com.fdkankan.web.response.ResultData;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.redis.constant.RedisKey;
- import com.fdkankan.redis.util.RedisUtil;
- import com.fdkankan.scene.bean.SceneUpgradeProgressBean;
- import com.fdkankan.scene.entity.ScenePlus;
- import com.fdkankan.scene.entity.ScenePlusExt;
- import com.fdkankan.scene.entity.SceneRepairLog;
- import com.fdkankan.scene.service.IScenePlusExtService;
- import com.fdkankan.scene.service.IScenePlusService;
- import com.fdkankan.scene.service.ISceneProService;
- import com.fdkankan.scene.service.ISceneRepairLogService;
- import com.fdkankan.scene.service.ISceneUpgradeToV4Service;
- import com.fdkankan.scene.vo.SceneInfoVO;
- import java.util.Calendar;
- import java.util.Objects;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * <p>
- * TODO
- * </p>
- *
- * @author dengsixing
- * @since 2022/4/21
- **/
- @Slf4j
- @Service
- public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
- @Autowired
- private ISceneRepairLogService sceneRepairLogService;
- @Autowired
- private RedisUtil redisUtil;
- @Autowired
- private ISceneProService sceneProService;
- @Autowired
- private IScenePlusService scenePlusService;
- @Autowired
- private IScenePlusExtService scenePlusExtService;
- @Autowired
- private FYunFileServiceInterface fYunFileService;
- private void upgradeLog(SceneRepairLog sceneRepairLog, String num, int status, String reason){
- //写入升级日志
- if(Objects.isNull(sceneRepairLog)){
- sceneRepairLog = new SceneRepairLog();
- sceneRepairLog.setNum(num);
- }
- sceneRepairLog.setState(status);
- sceneRepairLog.setReason(reason);
- sceneRepairLog.setCreateTime(Calendar.getInstance().getTime());
- sceneRepairLogService.saveOrUpdate(sceneRepairLog);
- }
- @Override
- public ResultData getUpgradeToV4Progress(String num) {
- String key = String.format(RedisKey.scene_upgrade_progress_num, num);
- String progress = redisUtil.get(key);
- SceneUpgradeProgressBean progressBean = null;
- if(StrUtil.isNotEmpty(progress)){
- progressBean = JSON.parseObject(progress, SceneUpgradeProgressBean.class);
- }else{
- progressBean = SceneUpgradeProgressBean.builder().num(num).status(0).progress(0).build();
- }
- return ResultData.ok(progressBean);
- }
- @Override
- public ResultData getSceneViewInfo(String num) {
- ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
- String bucket = scenePlusExt.getYunFileBucket();
- String key = String.format(RedisKey.SCENE_JSON, num);
- String sceneJson = redisUtil.get(key);
- SceneInfoVO sceneInfoVO = null;
- //先查询redis
- if(StrUtil.isNotEmpty(sceneJson)) {
- sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
- sceneInfoVO.setScenePassword(null);
- if(Objects.isNull(sceneInfoVO.getFloorPlanAngle())){
- sceneInfoVO.setFloorPlanAngle(0f);
- }
- if(Objects.isNull(sceneInfoVO.getFloorPlanCompass())){
- sceneInfoVO.setFloorPlanCompass(0f);
- }
- return ResultData.ok(sceneInfoVO);
- }
- //如果redis没找到,从scene.json中获取
- String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
- String objectContent = fYunFileService.getFileContent(bucket, objectName);
- if(StrUtil.isEmpty(objectContent))
- return ResultData.ok();
- sceneInfoVO = JSON.parseObject(objectContent, SceneInfoVO.class);
- sceneInfoVO.setScenePassword(null);
- if(Objects.isNull(sceneInfoVO.getFloorPlanAngle())){
- sceneInfoVO.setFloorPlanAngle(0f);
- }
- if(Objects.isNull(sceneInfoVO.getFloorPlanCompass())){
- sceneInfoVO.setFloorPlanCompass(0f);
- }
- return ResultData.ok(sceneInfoVO);
- }
- }
|