OverallController.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.fdkankan.manage.controller;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.fdkankan.manage.common.PageInfo;
  6. import com.fdkankan.manage.common.ResultData;
  7. import com.fdkankan.manage.entity.*;
  8. import com.fdkankan.manage.httpClient.client.OverallClient;
  9. import com.fdkankan.manage.httpClient.service.OverallService;
  10. import com.fdkankan.manage.httpClient.vo.OverallParam;
  11. import com.fdkankan.manage.httpClient.vo.OverallVo;
  12. import com.fdkankan.manage.service.*;
  13. import com.fdkankan.manage.util.SceneStatusUtil;
  14. import com.fdkankan.manage.vo.response.SceneVo;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.annotation.Resource;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. /**
  24. * 全景看看作品
  25. */
  26. @RestController
  27. @RequestMapping("/service/manage/overall")
  28. public class OverallController {
  29. @Autowired
  30. OverallService overallService;
  31. @Autowired
  32. IScenePlusService scenePlusService;
  33. @Autowired
  34. IScenePlusExtService scenePlusExtService;
  35. @Autowired
  36. ICommonService commonService;
  37. @Autowired
  38. IMqSendLogService mqSendLogService;
  39. @Autowired
  40. IUserService userService;
  41. @Autowired
  42. ISceneColdStorageService sceneColdStorageService;
  43. @PostMapping("/list")
  44. public ResultData list(@RequestBody OverallParam param){
  45. if(StringUtils.isNotBlank(param.getUserName())){
  46. param.setUserId(param.getUserName());
  47. }
  48. OverallVo vo = overallService.list(param);
  49. if(vo.getCode() != 0 ){
  50. return ResultData.error(vo.getCode(),vo.getMsg());
  51. }
  52. Object data = vo.getData();
  53. JSONObject dataObj = JSONObject.parseObject(JSONObject.toJSONString(data));
  54. JSONArray array = dataObj.getJSONArray("list");
  55. for (Object o : array) {
  56. JSONObject obj = (JSONObject) o;
  57. obj.put("thumb",obj.getString("share"));
  58. obj.put("sceneCodes",obj.getString("id"));
  59. String name = obj.getString("name");
  60. if(StringUtils.isBlank(name)){
  61. name = "无标题";
  62. }
  63. obj.put("name",name);
  64. }
  65. List<Object> list = new ArrayList<>(array);
  66. long total = dataObj.getLongValue("total");
  67. return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), total, list));
  68. }
  69. @PostMapping("/cameraSceneList")
  70. public ResultData cameraSceneList(@RequestBody OverallParam param){
  71. param.setType(2);
  72. if(StringUtils.isNotBlank(param.getUserName())){
  73. List<User> userList = userService.getLikeByUserName(param.getUserName());
  74. List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
  75. List<ScenePlus> scenePluses = scenePlusService.getByUserIdsAndLocation(userIds,7);
  76. if(scenePluses.isEmpty()){
  77. return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), 0, new ArrayList()));
  78. }
  79. List<String> numList = scenePluses.stream().map(ScenePlus::getNum).collect(Collectors.toList());
  80. param.setNums(numList);
  81. }
  82. OverallVo vo = overallService.list(param);
  83. if(vo.getCode() != 0 ){
  84. return ResultData.error(vo.getCode(),vo.getMsg());
  85. }
  86. Object data = vo.getData();
  87. JSONObject dataObj = JSONObject.parseObject(JSONObject.toJSONString(data));
  88. JSONArray array = dataObj.getJSONArray("list");
  89. List<JSONObject> collect = array.stream().map(e -> (JSONObject) e).collect(Collectors.toList());
  90. List<String> numList = collect.stream().map(e -> e.getString("num")).collect(Collectors.toList());
  91. List<ScenePlus> scenePluses = scenePlusService.getByNumList(numList);
  92. List<Long> plusIds = scenePluses.stream().map(ScenePlus::getId).collect(Collectors.toList());
  93. HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
  94. HashMap<String, ScenePlus> plusMap = new HashMap<>();
  95. scenePluses.forEach( e -> plusMap.put(e.getNum(),e));
  96. HashMap<String,MqSendLog> mqSendLogMap = null;
  97. if(!numList.isEmpty()){
  98. mqSendLogMap = mqSendLogService.getByNumList(numList);
  99. }
  100. HashMap<String, SceneColdStorage> coldStorageMap = sceneColdStorageService.getByNumList(numList);
  101. List<Long> userIds = scenePluses.stream().map(ScenePlus::getUserId).collect(Collectors.toList());
  102. HashMap<Long, User> userMap = userService.getByIds(userIds);
  103. HashMap<String,Long> numUserIdMap = new HashMap<>();
  104. scenePluses.forEach( e -> numUserIdMap.put(e.getNum(),e.getUserId()));
  105. for (Object o : array) {
  106. JSONObject obj = (JSONObject) o;
  107. obj.put("webSite",obj.getString("share"));
  108. obj.put("sceneCodes",obj.getString("id"));
  109. String name = obj.getString("name");
  110. if(StringUtils.isBlank(name)){
  111. name = "无标题";
  112. }
  113. obj.put("name",name);
  114. String num = obj.getString("num");
  115. ScenePlus scenePlus = plusMap.get(num);
  116. if(scenePlus != null){
  117. ScenePlusExt ext = extMap.get(scenePlus.getId());
  118. if(ext != null){
  119. obj.put("algorithmTime",ext.getAlgorithmTime());
  120. obj.put("gps",ext.getGps());
  121. obj.put("addressComponent",commonService.getAddressComponent(ext.getGps()));
  122. obj.put("shootCount",ext.getShootCount());
  123. obj.put("computeTime",ext.getComputeTime());
  124. obj.put("calcStatus",scenePlus.getSceneStatus() == -2 ? 1 : scenePlus.getSceneStatus());
  125. }
  126. }
  127. obj.put("statusString", SceneStatusUtil.getOverallStatusString(obj.getInteger("payStatus"),obj.getInteger("calcStatus")));
  128. if(mqSendLogMap!=null){
  129. MqSendLog mqSendLog = mqSendLogMap.get(num);
  130. if(mqSendLog != null && obj.getInteger("calcStatus") == 0){
  131. obj.put("statusString","排队中");
  132. obj.put("calcStatus",-4);
  133. }
  134. //切图状态:-1切图失败 0等待中 1 排队 2切图中 3切图完成3月26日 16:28文杰3月26日 16:28
  135. if(obj.getInteger("panoStatus")!=null && obj.getInteger("panoStatus") == 1 && mqSendLog == null) {
  136. obj.put("panoStatus",2);
  137. }
  138. }
  139. Long userId = numUserIdMap.get(num);
  140. if(userId != null){
  141. User user = userMap.get(userId);
  142. obj.put("userName",user==null?null :user.getUserName());
  143. }
  144. obj.put("isColdStorage",false);
  145. if(coldStorageMap != null){
  146. SceneColdStorage sceneColdStorage = coldStorageMap.get(num);
  147. if(sceneColdStorage != null){
  148. obj.put("isColdStorage",true);
  149. }
  150. }
  151. }
  152. List<Object> list = new ArrayList<>(array);
  153. long total = dataObj.getLongValue("total");
  154. return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), total, list));
  155. }
  156. @PostMapping("/delete")
  157. public ResultData delete(@RequestBody OverallParam param){
  158. OverallVo vo = overallService.delete(param.getId());
  159. if(vo.getCode() != 0 ){
  160. return ResultData.error(vo.getCode(),vo.getMsg());
  161. }
  162. return ResultData.ok(vo.getData());
  163. }
  164. @GetMapping("/downOfflinePage/{workId}")
  165. public ResultData downOfflinePage(@PathVariable String workId){
  166. return ResultData.ok(overallService.downOfflinePage(workId));
  167. }
  168. }