Browse Source

增加从720获取vrlink的接口

houweiyu 4 years ago
parent
commit
45122001d9

+ 49 - 3
src/main/java/fcb/project/manager/base/service/custom/PanoService.java

@@ -1,6 +1,8 @@
 package fcb.project.manager.base.service.custom;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import fcb.project.manager.base.entity.CommonRspBean;
 import fcb.project.manager.base.entity.SevenTwoZeroSceneRspBean;
 import fcb.project.manager.core.feignInterfaces.PanoFeign;
@@ -10,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 2 * @Author: Abner
@@ -82,4 +82,50 @@ public class PanoService {
 
         return sevenTwoZeroSceneRspBean.getData();
     }
+
+    public TreeMap<String , Object> getHouseVrlinks(List<String> houseIds , String token){
+
+        if(CollectionUtils.isEmpty(houseIds)){
+            return new TreeMap<>();
+        }
+
+        Map<String , Object> body = new HashMap<>();
+        body.put("houseIds" , houseIds);
+        body.put("pageNum" , 1);
+        body.put("pageSize" , houseIds.size());
+        CommonRspBean rspBean = panoFeign.getVrLinks(body , token);
+        log.info("从720获取最新vrlink的预览路径的返回值为:{}" , JSON.toJSONString(rspBean));
+        if(null == rspBean || null == rspBean.getCode() || rspBean.getCode() != 0){
+            log.info("调用720获取最新的预览路径失败");
+            return new TreeMap<>();
+        }
+        JSONObject jsonObject = (JSONObject) rspBean.getData();
+        if(null == jsonObject){
+            log.info("解析720返回的data失败");
+            return new TreeMap<>();
+        }
+        if(!jsonObject.containsKey("list")){
+            log.info("解析720返回的data缺失list");
+            return new TreeMap<>();
+        }
+        JSONArray listArray = jsonObject.getJSONArray("list");
+        if(null == listArray || listArray.isEmpty()){
+            log.info("720返回的data的list为空");
+            return new TreeMap<>();
+        }
+        TreeMap<String , Object> resultTree = new TreeMap<>();
+        for (int i = 0; i < listArray.size(); i++) {
+            JSONObject object = (JSONObject) listArray.get(i);
+            if(null != object){
+                if(object.containsKey("houseId") && object.containsKey("webSite")){
+                    String houseId = (String) object.get("houseId");
+                    String webSite = (String) object.get("webSite");
+                    if(StringUtils.isNoneBlank(houseId , webSite)){
+                        resultTree.put(houseId , webSite);
+                    }
+                }
+            }
+        }
+        return resultTree;
+    }
 }

+ 45 - 4
src/main/java/fcb/project/manager/base/service/impl/TmHouseServiceImpl.java

@@ -12,17 +12,19 @@ import fcb.project.manager.base.enums.HouseStatus;
 import fcb.project.manager.base.enums.SysUserRoleEnums;
 import fcb.project.manager.base.enums.UuidPreEnum;
 import fcb.project.manager.base.service.ITmHouseService;
+import fcb.project.manager.base.service.custom.PanoService;
 import fcb.project.manager.core.feignInterfaces.UserFeign;
 import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -40,11 +42,22 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
     private UserFeign userFeign;
 
     @Autowired
+    private PanoService panoService;
+
+    @Autowired
     private TmAuditServiceImpl tmAuditService;
 
+    @Value("${inner.vr.scene.host}")
+    private String innerSceneVrHost;
+
+    @Value("${outer.vr.scene.host}")
+    private String outerSceneVrHost;
+
+
     public IPage<TmHouse> getListByNameOrBelong(String houseTitle,
                                                 Integer status, Integer type,
                                                 String estateId, ContextTokenBean contextTokenBean,
+                                                String token,
                                                 Long pageNum, Long pageSize) {
         LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(TmHouse::getEstateId, estateId);
@@ -76,9 +89,23 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         IPage<TmHouse> page = new Page<>(pageNum, pageSize, true);
         IPage<TmHouse> resultPage = getBaseMapper().selectPage(page, lambdaQueryWrapper);
         if(null != resultPage && resultPage.getTotal() > 0){
+            List<String> getAllHouseIds = new ArrayList<>();
+            for (int i = 0; i < resultPage.getRecords().size(); i++) {
+                getAllHouseIds.add(resultPage.getRecords().get(i).getId());
+            }
+            //从720获取最新的预览路径,重新封装给前端展示
+            TreeMap<String , Object> treeMap =  panoService.getHouseVrlinks(getAllHouseIds , token);
             for (int i = 0; i < resultPage.getRecords().size(); i++) {
                 String vrId = resultPage.getRecords().get(i).getId();
+                //获取当前房源的审核记录数,用于前端判决是否展示审核历史图标
                 resultPage.getRecords().get(i).setCountNum(tmAuditService.countAuditNum(vrId));
+                if(!CollectionUtils.isEmpty(treeMap)){
+                    String path = (String) treeMap.get(vrId);
+                    String outerHost = outerSceneVrHost.substring(0 , outerSceneVrHost.length() - 1);
+                    String innerHost = innerSceneVrHost.substring(0 , innerSceneVrHost.length() - 1);
+                    resultPage.getRecords().get(i).setInnerVrLink(innerHost + path);
+                    resultPage.getRecords().get(i).setInnerVrLink(outerHost + path);
+                }
             }
         }
         return resultPage;
@@ -93,7 +120,7 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
     }
 
     public IPage<TmHouse> getAuditHouseList(String houseTitle, Integer status, Integer type,
-                                            String belongCompany, String estateName,
+                                            String belongCompany, String estateName, String token,
                                             Long pageNum, Long pageSize) {
         LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(TmHouse::getIsShow, 1);
@@ -122,14 +149,28 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         }
         IPage<TmHouse> page = new Page<>(pageNum, pageSize, true);
         IPage<TmHouse> resultPage = getBaseMapper().selectPage(page, lambdaQueryWrapper);
+
         if(null != resultPage && resultPage.getTotal() > 0){
+            List<String> getAllHouseIds = new ArrayList<>();
+            for (int i = 0; i < resultPage.getRecords().size(); i++) {
+                getAllHouseIds.add(resultPage.getRecords().get(i).getId());
+            }
+            //从720获取最新的预览路径,重新封装给前端展示
+            TreeMap<String , Object> treeMap =  panoService.getHouseVrlinks(getAllHouseIds , token);
             for (int i = 0; i < resultPage.getRecords().size(); i++) {
                 String vrId = resultPage.getRecords().get(i).getId();
                 resultPage.getRecords().get(i).setCountNum(tmAuditService.countAuditNum(vrId));
+
+                if(!CollectionUtils.isEmpty(treeMap)){
+                    String path = (String) treeMap.get(vrId);
+                    String outerHost = outerSceneVrHost.substring(0 , outerSceneVrHost.length() - 1);
+                    String innerHost = innerSceneVrHost.substring(0 , innerSceneVrHost.length() - 1);
+                    resultPage.getRecords().get(i).setInnerVrLink(innerHost + path);
+                    resultPage.getRecords().get(i).setInnerVrLink(outerHost + path);
+                }
             }
         }
         return resultPage;
-//        return tmHouseDao.getHousePageWithCount(page, lambdaQueryWrapper);
     }
 
     public int deleteHouseById(String houseId) {

+ 2 - 2
src/main/java/fcb/project/manager/core/controller/HouseManagerController.java

@@ -117,7 +117,7 @@ public class HouseManagerController extends BaseController{
         }
         ContextTokenBean tokenMap = getContextUserInfo();
         IPage<TmHouse> resultPage = tmHouseService.getListByNameOrBelong(houseTitle , status ,
-                type , estateId , tokenMap, pageNum , pageSize);
+                type , estateId , tokenMap, getToken(), pageNum , pageSize);
         return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
                 resultPage.getCurrent(), resultPage.getRecords()));
     }
@@ -142,7 +142,7 @@ public class HouseManagerController extends BaseController{
                                        @RequestParam(name = "pageSize")Long pageSize){
 
         IPage<TmHouse> resultPage = tmHouseService.getAuditHouseList(houseTitle , status ,
-                type , belongCompany , estateName ,  pageNum , pageSize);
+                type , belongCompany , estateName , getToken() ,  pageNum , pageSize);
         return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
                 resultPage.getCurrent(), resultPage.getRecords()));
     }

+ 5 - 0
src/main/java/fcb/project/manager/core/feignInterfaces/PanoFeign.java

@@ -5,6 +5,8 @@ import fcb.project.manager.base.entity.SevenTwoZeroSceneRspBean;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 /**
  * 2 * @Author: Abner
  * 3 * @Date: 2021/1/26 18:38
@@ -22,4 +24,7 @@ public interface PanoFeign {
 
     @GetMapping("/fcb/pano/scene/house/remove/{houseId}")
     public CommonRspBean deleteVrNotice(@PathVariable String houseId , @RequestHeader(name = "token") String token );
+
+    @PostMapping("/fcb/pano/scene/house/findAllHouseId")
+    public CommonRspBean getVrLinks(@RequestBody Map<String ,Object> body , @RequestHeader(name = "token") String token);
 }

+ 2 - 2
src/main/resources/application.properties

@@ -1,8 +1,8 @@
 
 
-spring.profiles.active=prod
+#spring.profiles.active=prod
 #spring.profiles.active=dev
-#spring.profiles.active=test
+spring.profiles.active=test
 
 #应用名
 spring.application.name=fbc-project-manager