123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.fdkankan.scene.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.feign.TietaFeignClient;
- import com.fdkankan.redis.constant.RedisKey;
- import com.fdkankan.redis.util.RedisUtil;
- import com.fdkankan.scene.bean.ResultData;
- import com.fdkankan.scene.entity.Scene;
- import com.fdkankan.scene.entity.SceneFileMapping;
- import com.fdkankan.scene.mapper.SceneMapper;
- import com.fdkankan.scene.service.SceneFileMappingService;
- import com.fdkankan.scene.service.SceneService;
- import com.fdkankan.scene.vo.SceneEditControlsVO;
- import com.fdkankan.scene.vo.SceneInfoParamVO;
- import com.fdkankan.scene.vo.SceneInfoVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author dsx
- * @since 2024-06-26
- */
- @Service
- public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements SceneService {
- @Value("${spring.cloud.nacos.discovery.access-key}")
- private String accessKey;
- @Value("${tieta.checkToken.syscode}")
- private String syscode;
- @Autowired
- private SceneFileMappingService sceneFileMappingService;
- @Autowired
- private RedisUtil redisUtil;
- @Resource
- private TietaFeignClient tietaFeignClient;
- @Override
- public ResultData getSceneInfo(SceneInfoParamVO param) throws Exception {
- String token = param.getToken();
- String acctId = param.getAcctId();
- JSONObject params = new JSONObject();
- // Map<String, Object> params = new HashMap<>();
- params.put("SYSCODE", syscode);
- params.put("ACCTID", acctId);
- params.put("TOKEN", token);
- JSONObject result = tietaFeignClient.checkProwadaTokenMicro(params);
- if(!"0".equals(result.get("RSP"))){
- return ResultData.error(4000, (String) result.get("ERRDESC"));
- }
- String num = param.getNum();
- SceneInfoVO sceneInfoVO = null;
- String key = String.format(RedisKey.SCENE_JSON, num);
- boolean hasKey = redisUtil.hasKey(key);
- if(hasKey){
- String sceneJson = redisUtil.get(key);
- sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
- sceneInfoVO.getControls().setShowRule(1);
- sceneInfoVO.getControls().setShowFloorplan(0);
- sceneInfoVO.getControls().setShowDollhouse(0);
- sceneInfoVO.setFloorLogo("2");
- }else{
- Scene scene = this.getOne(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
- sceneInfoVO = new SceneInfoVO();
- sceneInfoVO.setTitle(scene.getTitle());
- sceneInfoVO.setNum(scene.getNum());
- sceneInfoVO.setFloorLogoSize(Integer.valueOf(scene.getFloorlogosize()));
- sceneInfoVO.setSceneKind(scene.getScenekind());
- sceneInfoVO.setSceneResolution(scene.getSceneresolution());
- sceneInfoVO.setSceneFrom(scene.getScenefrom());
- sceneInfoVO.setModelKind(scene.getModelkind());
- sceneInfoVO.setFloorPlanAngle(Float.valueOf(scene.getFloorplanangle()));
- sceneInfoVO.setFloorLogo("2");
- SceneEditControlsVO sceneEditControlsBean = SceneEditControlsVO.builder().showRule(1).showFloorplan(0).showDollhouse(0).showMap(1).showPanorama(1).showVR(1).showTitle(1).build();
- sceneInfoVO.setControls(sceneEditControlsBean);
- redisUtil.set(key, JSON.toJSONString(sceneInfoVO));
- }
- List<SceneFileMapping> mappingList = sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num));
- Map<String, String> keyMap = mappingList.stream().collect(Collectors.toMap(SceneFileMapping::getKey, SceneFileMapping::getUrl));
- sceneInfoVO.setMapping(keyMap);
- return ResultData.ok(sceneInfoVO);
- }
- }
|