123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- package com.fdkankan.site.service.impl;
- import cn.hutool.core.date.DateUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.fdkankan.site.common.PageInfo;
- import com.fdkankan.site.common.ResultCode;
- import com.fdkankan.site.common.util.DateUtils;
- import com.fdkankan.site.exception.BusinessException;
- import com.fdkankan.site.httpClient.client.FdKKClient;
- import com.fdkankan.site.httpClient.client.LaserClient;
- import com.fdkankan.site.httpClient.request.LaserSceneParam;
- import com.fdkankan.site.httpClient.response.FdkkResponse;
- import com.fdkankan.site.request.SceneParam;
- import com.fdkankan.site.response.SceneProEntityVo;
- import com.fdkankan.site.response.SceneVo;
- import com.fdkankan.site.service.ISceneService;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.*;
- @Service
- public class SceneServiceImpl implements ISceneService {
- @Resource
- FdKKClient fdKKClient;
- @Resource
- LaserClient laserClient;
- @Override
- public List<SceneVo> getListByNumList(List<String> numList) {
- SceneParam param = new SceneParam();
- param.setNumList(numList);
- param.setStatus(2);
- param.setPageNum(1);
- param.setType(0);
- param.setPageSize(9999);
- JSONArray list = fdkkList(param);
- param.setType(1);
- JSONArray list1 = fdkkList(param);
- list.addAll(list1);
- List<SceneVo> sceneVos = overSceneVo(list, 0);
- JSONArray list2 = laserList(param);
- sceneVos.addAll(overSceneVo(list2,2));
- return sceneVos;
- }
- @Override
- public List<SceneVo> getListByNumMap(HashMap<Integer, List<String>> typeMap) {
- List<SceneVo> sceneVos = new ArrayList<>();
- SceneParam param = new SceneParam();
- param.setStatus(2);
- param.setPageNum(1);
- param.setPageSize(9999);
- for (Integer type : typeMap.keySet()) {
- param.setNumList(typeMap.get(type));
- if(param.getNumList() == null || param.getNumList().size() <=0){
- continue;
- }
- switch (type){
- case 0 : //看看
- param.setType(0);
- sceneVos.addAll(overSceneVo(fdkkList(param), type)) ;
- break;
- case 1 : //看见
- param.setType(1);
- sceneVos.addAll(overSceneVo(fdkkList(param), type)) ;
- break;
- case 2 : //深时
- param.setType(2);
- sceneVos.addAll(overSceneVo(laserList(param), type)) ;
- break;
- }
- }
- return sceneVos;
- }
- private JSONArray fdkkList(SceneParam param ){
- FdkkResponse fdkkResponse = fdKKClient.sceneList(param);
- if (fdkkResponse.getCode() != 0) {
- return new JSONArray();
- }
- PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
- return JSONArray.parseArray(JSONObject.toJSONString(pageInfo.getList()));
- }
- private JSONArray laserList(SceneParam param ){
- LaserSceneParam laserSceneParam = new LaserSceneParam();
- laserSceneParam.setPageNum(param.getPageNum());
- laserSceneParam.setPageSize(param.getPageSize());
- laserSceneParam.setStatus(param.getStatus());
- if(StringUtils.isNotBlank(param.getSceneName())){
- laserSceneParam.setTitle(param.getSceneName());
- }
- if(param.getNumList() != null && param.getNumList().size() >0){
- laserSceneParam.setSceneCodes(param.getNumList());
- }
- FdkkResponse fdkkResponse = laserClient.sceneList(laserSceneParam);
- if (fdkkResponse.getCode() != 200) {
- return new JSONArray();
- }
- JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()));
- JSONArray list = null;
- if(param.getNumList() == null || param.getNumList().size()<=0){
- list = jsonObject.getJSONObject("pageInfo").getJSONArray("list");
- }else {
- list = jsonObject.getJSONArray("list");
- }
- return list;
- }
- @Override
- public PageInfo pageList(SceneParam param, String token) {
- if (param.getType() == null) {
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- List<SceneVo> sceneVoList = new ArrayList<>();
- long total = 0;
- if (param.getType() == 0 || param.getType() == 1) { //看看,看见
- //获取四维(看看,看见)场景数据
- FdkkResponse fdkkResponse = null;
- if (param.getNumList() == null || param.getNumList().size() <= 0) {
- fdkkResponse = fdKKClient.sceneList(param, token);
- } else {
- fdkkResponse = fdKKClient.sceneList(param);
- }
- if (fdkkResponse.getCode() != 0) {
- throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
- }
- PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
- total = pageInfo.getTotal();
- JSONArray list = JSONArray.parseArray(JSONObject.toJSONString(pageInfo.getList()));
- sceneVoList = overSceneVo(list,0);
- }
- if(param.getType() == 2) { //深时
- //获取激光(深时)场景数据
- LaserSceneParam laserSceneParam = new LaserSceneParam();
- laserSceneParam.setPageNum(param.getPageNum());
- laserSceneParam.setPageSize(param.getPageSize());
- laserSceneParam.setStatus(param.getStatus());
- if (StringUtils.isNotBlank(param.getSceneName())) {
- laserSceneParam.setTitle(param.getSceneName());
- }
- if (param.getNumList() != null && param.getNumList().size() > 0) {
- laserSceneParam.setSceneCodes(param.getNumList());
- }
- FdkkResponse fdkkResponse = null;
- if (param.getNumList() == null || param.getNumList().size() <= 0) {
- fdkkResponse = laserClient.sceneList(laserSceneParam, token);
- } else {
- fdkkResponse = laserClient.sceneList(laserSceneParam);
- }
- if (fdkkResponse.getCode() != 200) {
- throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
- }
- JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()));
- JSONArray list = null;
- if (param.getNumList() == null || param.getNumList().size() <= 0) {
- list = jsonObject.getJSONObject("pageInfo").getJSONArray("list");
- total = jsonObject.getJSONObject("pageInfo").getLong("total");
- } else {
- list = jsonObject.getJSONArray("list");
- total = jsonObject.getLong("total");
- }
- sceneVoList =overSceneVo(list,2);
- }
- Page<SceneVo> voPage = new Page<>(param.getPageNum(),param.getPageSize());
- voPage.setRecords(sceneVoList);
- voPage.setTotal(total);
- return PageInfo.PageInfo(voPage);
- }
- /**
- * 四维看看返回数据格式转换
- */
- private List<SceneVo> overSceneVo(JSONArray list,Integer type) {
- List<SceneVo> sceneVoList = new ArrayList<>();
- if(type == 2){ //深时
- for (Object o : list) {
- String res = JSONObject.toJSONString(o);
- SceneVo vo = JSONObject.parseObject(res,SceneVo.class);
- if(vo.getStatus() == 4){ //4生成OBJ中 设置为计算中
- vo.setStatus(0);
- }
- vo.setType(2);
- sceneVoList.add(vo);
- }
- }else {
- for (Object obj : list) {
- String res = JSONObject.toJSONString(obj);
- SceneProEntityVo fdkkScenePlusVo = JSONObject.parseObject(res, SceneProEntityVo.class);
- SceneVo sceneVo = new SceneVo();
- sceneVo.setId(fdkkScenePlusVo.getId());
- sceneVo.setBuildObjStatus(0);
- sceneVo.setCreateTime(fdkkScenePlusVo.getCreateTime());
- sceneVo.setName(fdkkScenePlusVo.getSceneName());
- sceneVo.setNum(fdkkScenePlusVo.getNum());
- sceneVo.setPayStatus(1);
- sceneVo.setSceneName(fdkkScenePlusVo.getSceneName());
- sceneVo.setSnCode(fdkkScenePlusVo.getSnCode());
- sceneVo.setStatus(setLaserStatus(fdkkScenePlusVo.getStatus(), fdkkScenePlusVo.getPayStatus()));
- sceneVo.setThumb(fdkkScenePlusVo.getThumb());
- sceneVo.setTitle(fdkkScenePlusVo.getSceneName());
- sceneVo.setViewCount(fdkkScenePlusVo.getViewCount());
- sceneVo.setIsLaser(false);
- sceneVo.setType(fdkkScenePlusVo.getSceneType());
- if (fdkkScenePlusVo.getUserId() == null) {
- sceneVo.setBind(false);
- }
- sceneVoList.add(sceneVo);
- }
- }
- return sceneVoList;
- }
- private Integer setLaserStatus(Integer status,Integer payStatus){
- //深时状态,-1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4生成OBJ中
- if(payStatus != 1){ //封存
- return 3;
- }
- if(status == -1){
- return 1;
- }
- if(status == -2){
- return 2;
- }
- return status;
- }
- }
|