OverallService.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.fdkankan.manage.httpClient.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.manage.common.RedisKeyUtil;
  4. import com.fdkankan.manage.common.ResultCode;
  5. import com.fdkankan.manage.config.FyunConfig;
  6. import com.fdkankan.manage.exception.BusinessException;
  7. import com.fdkankan.manage.httpClient.client.OverallClient;
  8. import com.fdkankan.manage.httpClient.param.WorkOfflineDTO;
  9. import com.fdkankan.manage.httpClient.vo.OverallParam;
  10. import com.fdkankan.manage.httpClient.vo.OverallVo;
  11. import com.fdkankan.manage.service.IDownService;
  12. import com.fdkankan.manage.task.ThreadBussService;
  13. import com.fdkankan.rabbitmq.util.RabbitMqProducer;
  14. import com.fdkankan.redis.util.RedisUtil;
  15. import lombok.Data;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.context.annotation.Lazy;
  19. import org.springframework.stereotype.Service;
  20. @Service
  21. @Slf4j
  22. public class OverallService {
  23. @Autowired
  24. OverallClient overallClient;
  25. @Autowired
  26. RabbitMqProducer rabbitMqProducer;
  27. @Autowired
  28. IDownService downService;
  29. @Autowired
  30. FyunConfig fyunConfig;
  31. @Autowired
  32. RedisUtil redisUtil;
  33. @Autowired
  34. @Lazy
  35. ThreadBussService threadBussService;
  36. private static String appId ="BDA385EC848C1A425F746869011C8D23";
  37. private static String key ="appId";
  38. public OverallVo delete(String num) {
  39. return overallClient.delete(num,appId,key);
  40. }
  41. public OverallVo list(OverallParam param) {
  42. return overallClient.list(param,appId,key);
  43. }
  44. public synchronized Object downOfflinePage(String workId){
  45. try {
  46. String redisKey = String.format(RedisKeyUtil.overallDownOfflineProgressKey,workId);
  47. if(redisUtil.hasKey(redisKey)){
  48. WorkOfflineDTO dto = JSONObject.parseObject(redisUtil.get(redisKey),WorkOfflineDTO.class);
  49. if(dto.getProgress() == 100 || (dto.getOfflineStatus() != null && dto.getOfflineStatus() ==-1)){
  50. redisUtil.del(redisKey);
  51. }
  52. return dto;
  53. }
  54. WorkOfflineDTO param = new WorkOfflineDTO(workId);
  55. overallClient.UpdateDownloadOfflineStatus(param,appId,key);
  56. OverallVo offlineDetail = overallClient.getOfflineDetail(param,appId,key);
  57. if(offlineDetail == null || offlineDetail.getCode() !=0){
  58. throw new BusinessException(ResultCode.OVERALL_VIEW_ERROR);
  59. }
  60. Object data = offlineDetail.getData();
  61. String jsonString = JSONObject.toJSONString(data);
  62. WorkOfflineDTO dto = JSONObject.parseObject(jsonString,WorkOfflineDTO.class);
  63. redisUtil.set(redisKey,jsonString,RedisKeyUtil.overallDownOfflineProgressKeyTime);
  64. threadBussService.overallDownScene(dto,redisKey);
  65. return dto;
  66. }catch (Exception e){
  67. log.info("全景看看访问失败:{}",e);
  68. throw new BusinessException(ResultCode.OVERALL_VIEW_ERROR);
  69. }
  70. }
  71. }