123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package com.fdkankan.manage.controller;
- import cn.dev33.satoken.stp.StpUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.fdkankan.manage.common.PageInfo;
- import com.fdkankan.manage.common.ResultData;
- import com.fdkankan.manage.entity.*;
- import com.fdkankan.manage.httpClient.client.OverallClient;
- import com.fdkankan.manage.httpClient.service.OverallService;
- import com.fdkankan.manage.httpClient.vo.OverallParam;
- import com.fdkankan.manage.httpClient.vo.OverallVo;
- import com.fdkankan.manage.service.*;
- import com.fdkankan.manage.util.SceneStatusUtil;
- import com.fdkankan.manage.vo.response.SceneVo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 全景看看作品
- */
- @RestController
- @RequestMapping("/service/manage/overall")
- public class OverallController {
- @Autowired
- OverallService overallService;
- @Autowired
- IScenePlusService scenePlusService;
- @Autowired
- IScenePlusExtService scenePlusExtService;
- @Autowired
- ICommonService commonService;
- @Autowired
- IMqSendLogService mqSendLogService;
- @Autowired
- IUserService userService;
- @Autowired
- ISceneColdStorageService sceneColdStorageService;
- @PostMapping("/list")
- public ResultData list(@RequestBody OverallParam param){
- OverallVo vo = overallService.list(param);
- if(vo.getCode() != 0 ){
- return ResultData.error(vo.getCode(),vo.getMsg());
- }
- Object data = vo.getData();
- JSONObject dataObj = JSONObject.parseObject(JSONObject.toJSONString(data));
- JSONArray array = dataObj.getJSONArray("list");
- for (Object o : array) {
- JSONObject obj = (JSONObject) o;
- obj.put("thumb",obj.getString("share"));
- obj.put("sceneCodes",obj.getString("id"));
- String name = obj.getString("name");
- if(StringUtils.isBlank(name)){
- name = "无标题";
- }
- obj.put("name",name);
- }
- List<Object> list = new ArrayList<>(array);
- long total = dataObj.getLongValue("total");
- return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), total, list));
- }
- @PostMapping("/cameraSceneList")
- public ResultData cameraSceneList(@RequestBody OverallParam param){
- param.setType(2);
- if(StringUtils.isNotBlank(param.getUserName())){
- List<User> userList = userService.getLikeByUserName(param.getUserName());
- List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
- List<ScenePlus> scenePluses = scenePlusService.getByUserIds(userIds);
- if(scenePluses.isEmpty()){
- return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), 0, new ArrayList()));
- }
- List<String> numList = scenePluses.stream().map(ScenePlus::getNum).collect(Collectors.toList());
- param.setNums(numList);
- }
- OverallVo vo = overallService.list(param);
- if(vo.getCode() != 0 ){
- return ResultData.error(vo.getCode(),vo.getMsg());
- }
- Object data = vo.getData();
- JSONObject dataObj = JSONObject.parseObject(JSONObject.toJSONString(data));
- JSONArray array = dataObj.getJSONArray("list");
- List<JSONObject> collect = array.stream().map(e -> (JSONObject) e).collect(Collectors.toList());
- List<String> numList = collect.stream().map(e -> e.getString("num")).collect(Collectors.toList());
- List<ScenePlus> scenePluses = scenePlusService.getByNumList(numList);
- List<Long> plusIds = scenePluses.stream().map(ScenePlus::getId).collect(Collectors.toList());
- HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
- HashMap<String, ScenePlus> plusMap = new HashMap<>();
- scenePluses.forEach( e -> plusMap.put(e.getNum(),e));
- HashMap<String,MqSendLog> mqSendLogMap = null;
- if(!numList.isEmpty()){
- mqSendLogMap = mqSendLogService.getByNumList(numList);
- }
- HashMap<String, SceneColdStorage> coldStorageMap = sceneColdStorageService.getByNumList(numList);
- List<Long> userIds = scenePluses.stream().map(ScenePlus::getUserId).collect(Collectors.toList());
- HashMap<Long, User> userMap = userService.getByIds(userIds);
- HashMap<String,Long> numUserIdMap = new HashMap<>();
- scenePluses.forEach( e -> numUserIdMap.put(e.getNum(),e.getUserId()));
- for (Object o : array) {
- JSONObject obj = (JSONObject) o;
- obj.put("webSite",obj.getString("share"));
- obj.put("sceneCodes",obj.getString("id"));
- String name = obj.getString("name");
- if(StringUtils.isBlank(name)){
- name = "无标题";
- }
- obj.put("name",name);
- String num = obj.getString("num");
- ScenePlus scenePlus = plusMap.get(num);
- if(scenePlus != null){
- ScenePlusExt ext = extMap.get(scenePlus.getId());
- if(ext != null){
- obj.put("algorithmTime",ext.getAlgorithmTime());
- obj.put("gps",ext.getGps());
- obj.put("addressComponent",commonService.getAddressComponent(ext.getGps()));
- }
- }
- obj.put("statusString", SceneStatusUtil.getOverallStatusString(obj.getInteger("calcStatus")));
- if(mqSendLogMap!=null){
- MqSendLog mqSendLog = mqSendLogMap.get(num);
- if(mqSendLog != null){
- obj.put("statusString","排队中");
- obj.put("calcStatus",-4);
- }
- }
- Long userId = numUserIdMap.get(num);
- if(userId != null){
- User user = userMap.get(userId);
- obj.put("userName",user==null?null :user.getUserName());
- }
- obj.put("isColdStorage",false);
- if(coldStorageMap != null){
- SceneColdStorage sceneColdStorage = coldStorageMap.get(num);
- if(sceneColdStorage != null){
- obj.put("isColdStorage",true);
- }
- }
- }
- List<Object> list = new ArrayList<>(array);
- long total = dataObj.getLongValue("total");
- return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), total, list));
- }
- @PostMapping("/delete")
- public ResultData delete(@RequestBody OverallParam param){
- OverallVo vo = overallService.delete(param.getId());
- if(vo.getCode() != 0 ){
- return ResultData.error(vo.getCode(),vo.getMsg());
- }
- return ResultData.ok(vo.getData());
- }
- }
|