SceneServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.fdkankan.scene.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.fdkankan.feign.TietaFeignClient;
  7. import com.fdkankan.redis.constant.RedisKey;
  8. import com.fdkankan.redis.util.RedisUtil;
  9. import com.fdkankan.scene.bean.ResultData;
  10. import com.fdkankan.scene.entity.Scene;
  11. import com.fdkankan.scene.entity.SceneFileMapping;
  12. import com.fdkankan.scene.mapper.SceneMapper;
  13. import com.fdkankan.scene.service.SceneFileMappingService;
  14. import com.fdkankan.scene.service.SceneService;
  15. import com.fdkankan.scene.vo.SceneEditControlsVO;
  16. import com.fdkankan.scene.vo.SceneInfoParamVO;
  17. import com.fdkankan.scene.vo.SceneInfoVO;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.beans.factory.annotation.Value;
  20. import org.springframework.stereotype.Service;
  21. import javax.annotation.Resource;
  22. import java.util.List;
  23. import java.util.Map;
  24. import java.util.stream.Collectors;
  25. /**
  26. * <p>
  27. * 服务实现类
  28. * </p>
  29. *
  30. * @author dsx
  31. * @since 2024-06-26
  32. */
  33. @Service
  34. public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements SceneService {
  35. @Value("${spring.cloud.nacos.discovery.access-key}")
  36. private String accessKey;
  37. @Value("${tieta.checkToken.syscode}")
  38. private String syscode;
  39. @Autowired
  40. private SceneFileMappingService sceneFileMappingService;
  41. @Autowired
  42. private RedisUtil redisUtil;
  43. @Resource
  44. private TietaFeignClient tietaFeignClient;
  45. @Override
  46. public ResultData getSceneInfo(SceneInfoParamVO param) throws Exception {
  47. String token = param.getToken();
  48. String acctId = param.getAcctId();
  49. JSONObject params = new JSONObject();
  50. // Map<String, Object> params = new HashMap<>();
  51. params.put("SYSCODE", syscode);
  52. params.put("ACCTID", acctId);
  53. params.put("TOKEN", token);
  54. JSONObject result = tietaFeignClient.checkProwadaTokenMicro(params);
  55. if(!"0".equals(result.get("RSP"))){
  56. return ResultData.error(4000, (String) result.get("ERRDESC"));
  57. }
  58. String num = param.getNum();
  59. SceneInfoVO sceneInfoVO = null;
  60. String key = String.format(RedisKey.SCENE_JSON, num);
  61. boolean hasKey = redisUtil.hasKey(key);
  62. if(hasKey){
  63. String sceneJson = redisUtil.get(key);
  64. sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
  65. sceneInfoVO.getControls().setShowRule(1);
  66. sceneInfoVO.getControls().setShowFloorplan(0);
  67. sceneInfoVO.getControls().setShowDollhouse(0);
  68. sceneInfoVO.setFloorLogo("2");
  69. }else{
  70. Scene scene = this.getOne(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
  71. sceneInfoVO = new SceneInfoVO();
  72. sceneInfoVO.setTitle(scene.getTitle());
  73. sceneInfoVO.setNum(scene.getNum());
  74. sceneInfoVO.setFloorLogoSize(Integer.valueOf(scene.getFloorlogosize()));
  75. sceneInfoVO.setSceneKind(scene.getScenekind());
  76. sceneInfoVO.setSceneResolution(scene.getSceneresolution());
  77. sceneInfoVO.setSceneFrom(scene.getScenefrom());
  78. sceneInfoVO.setModelKind(scene.getModelkind());
  79. sceneInfoVO.setFloorPlanAngle(Float.valueOf(scene.getFloorplanangle()));
  80. sceneInfoVO.setFloorLogo("2");
  81. SceneEditControlsVO sceneEditControlsBean = SceneEditControlsVO.builder().showRule(1).showFloorplan(0).showDollhouse(0).showMap(1).showPanorama(1).showVR(1).showTitle(1).build();
  82. sceneInfoVO.setControls(sceneEditControlsBean);
  83. redisUtil.set(key, JSON.toJSONString(sceneInfoVO));
  84. }
  85. List<SceneFileMapping> mappingList = sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num));
  86. Map<String, String> keyMap = mappingList.stream().collect(Collectors.toMap(SceneFileMapping::getKey, SceneFileMapping::getUrl));
  87. sceneInfoVO.setMapping(keyMap);
  88. return ResultData.ok(sceneInfoVO);
  89. }
  90. }