SceneServiceImpl.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.fdkankan.tk.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.fdkankan.tk.common.PageInfo;
  6. import com.fdkankan.tk.common.ResultCode;
  7. import com.fdkankan.tk.exception.BusinessException;
  8. import com.fdkankan.tk.httpClient.client.FdKKClient;
  9. import com.fdkankan.tk.httpClient.response.FdkkResponse;
  10. import com.fdkankan.tk.request.SceneParam;
  11. import com.fdkankan.tk.response.SceneProEntityVo;
  12. import com.fdkankan.tk.response.SceneVo;
  13. import com.fdkankan.tk.service.ISceneService;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. @Service
  20. public class SceneServiceImpl implements ISceneService {
  21. @Resource
  22. FdKKClient fdKKClient;
  23. @Override
  24. public List<SceneVo> getListByNumList(List<String> numList) {
  25. SceneParam param = new SceneParam();
  26. param.setNumList(numList);
  27. param.setStatus(null);
  28. param.setPageNum(1);
  29. param.setType(0);
  30. param.setPageSize(9999);
  31. JSONArray list = fdkkList(param);
  32. param.setType(1);
  33. JSONArray list1 = fdkkList(param);
  34. list.addAll(list1);
  35. param.setType(4);
  36. JSONArray list2 = fdkkList(param);
  37. list.addAll(list2);
  38. return overSceneVo(list);
  39. }
  40. private JSONArray fdkkList(SceneParam param ){
  41. FdkkResponse fdkkResponse = fdKKClient.sceneList(param);
  42. if (fdkkResponse.getCode() != 0) {
  43. return new JSONArray();
  44. }
  45. PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
  46. return JSONArray.parseArray(JSONObject.toJSONString(pageInfo.getList()));
  47. }
  48. @Override
  49. public PageInfo pageList(SceneParam param, String token) {
  50. if (param.getType() == null) {
  51. throw new BusinessException(ResultCode.PARAM_MISS);
  52. }
  53. List<SceneVo> sceneVoList = new ArrayList<>();
  54. long total = 0;
  55. if (param.getType() == 0 || param.getType() == 1 || param.getType() == 4) { //看看,看见
  56. //获取四维(看看,看见)场景数据
  57. FdkkResponse fdkkResponse = null;
  58. if (param.getNumList() == null || param.getNumList().size() <= 0) {
  59. fdkkResponse = fdKKClient.sceneList(param, token);
  60. } else {
  61. fdkkResponse = fdKKClient.sceneList(param);
  62. }
  63. if (fdkkResponse.getCode() != 0) {
  64. throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
  65. }
  66. PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
  67. total = pageInfo.getTotal();
  68. JSONArray list = JSONArray.parseArray(JSONObject.toJSONString(pageInfo.getList()));
  69. sceneVoList = overSceneVo(list);
  70. }
  71. Page<SceneVo> voPage = new Page<>(param.getPageNum(),param.getPageSize());
  72. voPage.setRecords(sceneVoList);
  73. voPage.setTotal(total);
  74. return PageInfo.PageInfo(voPage);
  75. }
  76. /**
  77. * 四维看看返回数据格式转换
  78. */
  79. private List<SceneVo> overSceneVo(JSONArray list) {
  80. List<SceneVo> sceneVoList = new ArrayList<>();
  81. for (Object obj : list) {
  82. String res = JSONObject.toJSONString(obj);
  83. SceneProEntityVo fdkkScenePlusVo = JSONObject.parseObject(res, SceneProEntityVo.class);
  84. SceneVo sceneVo = new SceneVo();
  85. sceneVo.setId(fdkkScenePlusVo.getId());
  86. sceneVo.setBuildObjStatus(0);
  87. sceneVo.setCreateTime(fdkkScenePlusVo.getCreateTime());
  88. sceneVo.setName(fdkkScenePlusVo.getSceneName());
  89. sceneVo.setNum(fdkkScenePlusVo.getNum());
  90. sceneVo.setPayStatus(1);
  91. sceneVo.setSceneName(fdkkScenePlusVo.getSceneName());
  92. sceneVo.setSnCode(fdkkScenePlusVo.getSnCode());
  93. sceneVo.setStatus(setLaserStatus(fdkkScenePlusVo.getStatus(), fdkkScenePlusVo.getPayStatus()));
  94. sceneVo.setThumb(fdkkScenePlusVo.getThumb());
  95. sceneVo.setTitle(fdkkScenePlusVo.getSceneName());
  96. sceneVo.setViewCount(fdkkScenePlusVo.getViewCount());
  97. sceneVo.setIsLaser(false);
  98. sceneVo.setType(fdkkScenePlusVo.getSceneType());
  99. if (fdkkScenePlusVo.getUserId() == null) {
  100. sceneVo.setBind(false);
  101. }
  102. sceneVoList.add(sceneVo);
  103. }
  104. return sceneVoList;
  105. }
  106. private Integer setLaserStatus(Integer status,Integer payStatus){
  107. //深时状态,-1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4生成OBJ中
  108. if(payStatus != 1){ //封存
  109. return 3;
  110. }
  111. if(status == -1){
  112. return 1;
  113. }
  114. if(status == -2){
  115. return 2;
  116. }
  117. if(status == 1){
  118. return 2;
  119. }
  120. return status;
  121. }
  122. }