瀏覽代碼

新房房源上下架功能

by su 4 年之前
父節點
當前提交
9309b57f99

+ 2 - 1
fcb-project-application/src/main/resources/application-dev.properties

@@ -49,4 +49,5 @@ outer.vr.scene.host=https://vr-web01-sit.fcb.com.cn/
 vr.scene.link=hengda.html?m=
 
 
-fcb.agentsaas=https://agentsaas-dev.fcb.com.cn
+fcb.agentsaas=https://agentsaas-dev.fcb.com.cn/saas/api/thirdplat/
+fcb.main.url=https://broker-dev-api.fcb.com.cn/omc/external/

+ 6 - 14
fcb-project-manager-core/src/main/java/fcb/project/manager/base/param/usedEstate/QueryUsedAudit.java

@@ -11,22 +11,14 @@ import java.util.List;
 @Data
 public class QueryUsedAudit extends PageParam  {
 
-    @ApiModelProperty(name = "number", value = "房车宝 - 小区编码",  dataType = "String")
-    private String number;
+    @ApiModelProperty(name = "requestOnlineList",value = "房车宝上下架",  dataType = "String")
+    List<RequestOnline> requestOnlineList;
 
-    @ApiModelProperty(name = "gardenName",value = "房车宝 - 小区名称",  dataType = "String")
-    private String gardenName;
+    @ApiModelProperty(name = "houseId",value = "户型id",  dataType = "String")
+    private String houseId;
 
-    @ApiModelProperty(name = "areaName",value = "房车宝 - 片区/小区商圈",  dataType = "String")
-    private String areaName;
+    @ApiModelProperty(name = "online",value = "是否上线:1->上线;-0->下线",  dataType = "String")
+    private Integer online;
 
-    @ApiModelProperty(name = "cityName",value = "房车宝 - 城市名称",  dataType = "String")
-    private String cityName;
-
-    @ApiModelProperty(name = "buildYear",value = "房车宝 - 建造年代",  dataType = "String")
-    private String buildYear;
-
-    @ApiModelProperty(name = "propertyTypeName",value = "房车宝 - 物业类型",  dataType = "String")
-    private String propertyTypeName;
 
 }

+ 0 - 68
fcb-project-manager-core/src/main/java/fcb/project/manager/base/param/usedEstate/QueryUsedEstate.java

@@ -1,68 +0,0 @@
-package fcb.project.manager.base.param.usedEstate;
-
-import fcb.project.manager.base.param.PageParam;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Data
-public class QueryUsedEstate extends PageParam  {
-
-    @ApiModelProperty(value = "房源id")
-    private String roomid;
-
-    @ApiModelProperty(value = "房车宝 - 小区id")
-    private String gardenId;
-
-    @ApiModelProperty(name = "number", value = "房车宝 - 小区编码",  dataType = "String")
-    private String number;
-
-    @ApiModelProperty(name = "gardenName",value = "房车宝 - 小区名称",  dataType = "String")
-    private String gardenName;
-
-    @ApiModelProperty(name = "areaName",value = "房车宝 - 片区/小区商圈",  dataType = "String")
-    private String areaName;
-
-    @ApiModelProperty(name = "cityName",value = "房车宝 - 城市名称",  dataType = "String")
-    private String cityName;
-
-    @ApiModelProperty(name = "buildYear",value = "房车宝 - 建造年代",  dataType = "String")
-    private String buildYear;
-
-    @ApiModelProperty(name = "propertyTypeName",value = "房车宝 - 物业类型",  dataType = "String")
-    private String propertyTypeName;
-
-    @ApiModelProperty(value = "查询类型  1:小区 2:房源")
-    private String searchType;
-
-    @ApiModelProperty(name = "createStartTime", value = "创建开始时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createStartTime;
-
-    @ApiModelProperty(name = "createStartTime", value = "创建结束时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createEndTime;
-
-    @ApiModelProperty(value = "更新人名称")
-    private String updateByName;
-
-    @ApiModelProperty(hidden = true)
-    private String departmentId;
-
-    @ApiModelProperty(hidden = true)
-    private List<Integer> statues;
-
-    @ApiModelProperty(name = "auditTimeStartTime", value = "审核开始时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime auditTimeStartTime;
-
-    @ApiModelProperty(name = "auditTimeEndTime", value = "审核结束时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime auditTimeEndTime;
-
-    @ApiModelProperty(value = "是否上线:1->上线;-0->下线")
-    private String online;
-}

+ 0 - 73
fcb-project-manager-core/src/main/java/fcb/project/manager/base/param/usedEstate/QueryUsedHouse.java

@@ -1,73 +0,0 @@
-package fcb.project.manager.base.param.usedEstate;
-
-import fcb.project.manager.base.param.PageParam;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Data
-public class QueryUsedHouse extends PageParam  {
-
-    @ApiModelProperty(value = "房源id")
-    private String roomId;
-
-    @ApiModelProperty(value = "小区id")
-    private String gardenId;
-
-    @ApiModelProperty(value = "楼栋单元")
-    private String buildingUnit;
-
-    @ApiModelProperty(value = "房号")
-    private String roomNumber;
-
-    @ApiModelProperty(value = "建筑面积范围 开始")
-    private String constructionAreaStart;
-
-    @ApiModelProperty(value = "建筑面积范围 结束")
-    private String constructionAreaEnd;
-
-    @ApiModelProperty(value = "套内面积范围 开始")
-    private String insideAreaStart;
-
-    @ApiModelProperty(value = "套内面积范围 结束")
-    private String insideAreaEnd;
-
-    @ApiModelProperty(value = "审核人")
-    private String reviewer;
-
-    @ApiModelProperty(value = "维护人")
-    private String maintenanceMan;
-
-    @ApiModelProperty(hidden = true)
-    private Integer statues;
-
-    @ApiModelProperty(name = "auditTimeStartTime", value = "审核开始时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime auditTimeStartTime;
-
-    @ApiModelProperty(name = "auditTimeEndTime", value = "审核结束时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime auditTimeEndTime;
-
-    @ApiModelProperty(name = "auditTimeStartTime", value = "更新开始时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime updateTimeStartTime;
-
-    @ApiModelProperty(name = "auditTimeEndTime", value = "更新结束时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime updateTimeEndTime;
-
-    @ApiModelProperty(name = "auditTimeStartTime", value = "创建开始时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTimeStartTime;
-
-    @ApiModelProperty(name = "auditTimeEndTime", value = "创建结束时间", dataType = "String")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTimeEndTime;
-
-    @ApiModelProperty(value = "房源戶型外網场景链接")
-    private String vrLink;
-}

+ 38 - 0
fcb-project-manager-core/src/main/java/fcb/project/manager/base/param/usedEstate/RequestOnline.java

@@ -0,0 +1,38 @@
+package fcb.project.manager.base.param.usedEstate;
+
+import fcb.project.manager.base.param.PageParam;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RequestOnline extends PageParam  {
+
+
+    @ApiModelProperty(name = "proId", value = "楼盘Id",  dataType = "String")
+    private String proId;
+
+    @ApiModelProperty(name = "vrId",value = "VR Id(四维提供vr主键id)",  dataType = "String")
+    private String vrId;
+
+    @ApiModelProperty(name = "name",value = "名称",  dataType = "String")
+    private String name;
+
+    @ApiModelProperty(name = "pos",value = "排序",  dataType = "String")
+    private Integer pos;
+
+    @ApiModelProperty(name = "url",value = "url链接",  dataType = "String")
+    private String url;
+
+    @ApiModelProperty(name = "picUrl",value = "图片链接",  dataType = "String")
+    private String picUrl;
+
+    @ApiModelProperty(name = "isDomeVideo",value = "是否配置了球幕视频 (0:否,1:是)",  dataType = "String")
+    private Integer isDomeVideo;
+
+    @ApiModelProperty(name = "houseId",value = "户型id",  dataType = "String")
+    private String houseId;
+
+
+
+
+}

+ 76 - 14
fcb-project-manager-core/src/main/java/fcb/project/manager/core/controller/AuditController.java

@@ -1,11 +1,14 @@
 package fcb.project.manager.core.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import fcb.project.manager.base.entity.*;
 import fcb.project.manager.base.enums.AuditStatus;
 import fcb.project.manager.base.enums.DeleteStatus;
 import fcb.project.manager.base.enums.HouseStatus;
+import fcb.project.manager.base.param.usedEstate.QueryUsedAudit;
+import fcb.project.manager.base.param.usedEstate.RequestOnline;
 import fcb.project.manager.base.service.custom.PanoService;
 import fcb.project.manager.base.service.impl.TmAuditLogServiceImpl;
 import fcb.project.manager.base.service.impl.TmAuditServiceImpl;
@@ -18,6 +21,7 @@ import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
 import fdage.back.sdk.base.exception.CommonBaseException;
 import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
+import fdage.back.sdk.utils.HttpClientUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -25,6 +29,7 @@ import io.swagger.annotations.ApiOperation;
 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.data.redis.core.RedisTemplate;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -67,6 +72,9 @@ public class AuditController extends BaseController{
     @Autowired
     private TmOperationServiceImpl tmOperationService;
 
+    @Value("${fcb.main.url}")
+    private String fcbmainurl;
+
     @GetMapping("/queryOrSearchList")
     @ApiOperation(value = "根据条件拉取所有审批记录")
     @ApiImplicitParams({
@@ -171,13 +179,14 @@ public class AuditController extends BaseController{
 
                 auditResultStr = "审核通过";
 
-                dbHouse.setOnline(1);
-                //1、通知看看,翻转场景码的状态
+//                dbHouse.setOnline(1);
+                dbHouse.setOnline(0);
+//                1、通知看看,翻转场景码的状态
                 List<String> sceneNumList = panoService.getKanKanSceneNums(dbHouse.getId() , getToken());
                 log.info("720返回的房源的[{}]对应的四维场景码列表为:{}" , dbHouse.getSceneNum() , JSON.toJSONString(sceneNumList));
                 if(!CollectionUtils.isEmpty(sceneNumList)){
-                    //上线
-                    map.put("status" , 1);
+                    //审核通过处于下线状态
+                    map.put("status" , 2);
                     map.put("sceneNum" , sceneNumList.stream().collect(Collectors.joining(";")));
                     log.info("上送四维看看的参数为:{}" , JSON.toJSONString(map));
                     SceneRspBean rsp = sceneFeign.updateSceneStatus(map , getToken());
@@ -191,8 +200,8 @@ public class AuditController extends BaseController{
                     }
 
                 }
-                //2、通知720,翻转场景码的状态
-                panoService.noticeVrAuditStatus(dbHouse.getId() , getToken() , 4);
+                //2、通知720,翻转场景码的状态(审核通过/上线:4, 下线:3)
+                panoService.noticeVrAuditStatus(dbHouse.getId() , getToken() , 3);
             }
         }
         if(auditRequestBean.getAuditStatus().compareTo(AuditStatus.REJECT.getCode()) == 0){
@@ -267,29 +276,52 @@ public class AuditController extends BaseController{
             @ApiImplicitParam(name = "online", value = "是否上线:1->上线;-0->下线", paramType = "query", required = false, dataType = "Integer"),
     })
     @Transactional(rollbackFor = Exception.class)
-    public Result<Object> online(String id , Integer online){
+    public Result<Object> online(@RequestBody QueryUsedAudit queryUsedAudit){
 
-        if(StringUtils.isBlank(id) || null == online){
+        if(StringUtils.isBlank(queryUsedAudit.getHouseId()) || null == queryUsedAudit.getOnline()){
             return Result.failure("房源ID或者状态不能为空");
         }
-        if(online.compareTo(1) != 0 &&
-                online.compareTo(0) != 0){
+        if(queryUsedAudit.getOnline().compareTo(1) != 0 &&
+                queryUsedAudit.getOnline().compareTo(0) != 0){
             return Result.failure("上下线状态非法");
         }
-        TmHouse tmHouse = tmHouseService.getById(id);
+        TmHouse tmHouse = tmHouseService.getById(queryUsedAudit.getHouseId());
         if(null == tmHouse){
             return Result.failure("房源不存在在");
         }
-        tmHouse.setOnline(online);
-        if(online.compareTo(0) == 0){
+        tmHouse.setOnline(queryUsedAudit.getOnline());
+        if(queryUsedAudit.getOnline().compareTo(0) == 0){
             tmHouse.setStatus(HouseStatus.DRAFT.getCode());
         }
         tmHouseService.updateHouse(tmHouse);
         Map<String , Object> map = new HashMap<>();
         map.put("sceneNum" , tmHouse.getSceneNum());
-        if(online.compareTo(1) == 0){
+        if(queryUsedAudit.getOnline().compareTo(1) == 0){
             //上线
+            List<String> sceneNumList = panoService.getKanKanSceneNums(tmHouse.getId() , getToken());
+            log.info("720返回的房源的[{}]对应的四维场景码列表为:{}" , tmHouse.getSceneNum() , JSON.toJSONString(sceneNumList));
+            if(!CollectionUtils.isEmpty(sceneNumList)){
+                map.put("status" , 1);
+                map.put("sceneNum" , sceneNumList.stream().collect(Collectors.joining(";")));
+                log.info("上送四维看看的参数为:{}" , JSON.toJSONString(map));
+                SceneRspBean rsp = sceneFeign.updateSceneStatus(map , getToken());
+                log.info("四维看看翻转状态返回为:{}" , JSON.toJSONString(rsp));
+                if(null == rsp || rsp.getCode() != 0){
+                    log.info("调用看看的更新场景状态微服务失败");
+                    if(null != rsp){
+                        log.info("code = {} , msg = {}" , rsp.getCode() , rsp.getMsg());
+                    }
+                    throw new CommonBaseException(ResultCodeEnum.D101 , "更新看看场景状态失败");
+                }
+
+            }
+            //通知720,告知房源下线(审核通过/上线:4, 下线:3)
+            panoService.noticeVrAuditStatus(tmHouse.getId() , getToken() , 4);
 
+            int ins = tmOperationService.addNewWithTypeAndContent(getContextUserInfo() , "审核管理" , "审核管理/审核上线/" + tmHouse.getHouseTitle());
+            if(ins != 1){
+                log.info("插入操作记录失败");
+            }
         }else{
             //下线
             List<String> sceneNumList = panoService.getKanKanSceneNums(tmHouse.getId() , getToken());
@@ -316,7 +348,37 @@ public class AuditController extends BaseController{
             if(ins != 1){
                 log.info("插入操作记录失败");
             }
+
+            //将上架信息通知fcb
         }
+
+        try {
+            //将上/下架信息通知fcb
+            if(queryUsedAudit.getRequestOnlineList()!=null && queryUsedAudit.getRequestOnlineList().size()>0){
+                List<RequestOnline> requestOnlineList = queryUsedAudit.getRequestOnlineList();
+
+                for(RequestOnline ro:requestOnlineList){
+                    ro.setProId(tmHouse.getEstateId());
+                }
+
+                String param = JSON.toJSONString(queryUsedAudit.getRequestOnlineList());
+
+                String url = fcbmainurl;
+                if(queryUsedAudit.getOnline().compareTo(1) == 0){
+                    url += "/pic/saveOrUpdate";
+                }else {
+                    url += "/pic/remove";
+                }
+
+                String returnMsg = HttpClientUtil.doPostJson(url, param);
+
+                log.info("========上下架信息同步房车宝,param: {}, url :{}, 返回结果 : {}",param,url,returnMsg);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+
         return Result.success();
     }
 

+ 62 - 15
fcb-project-manager-core/src/main/java/fcb/project/manager/core/controller/TmRedirectController.java

@@ -3,6 +3,7 @@ package fcb.project.manager.core.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import fcb.project.manager.base.entity.ContextTokenBean;
 import fcb.project.manager.base.utils.DateUtil;
 import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.utils.HttpClientUtil;
@@ -10,6 +11,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,27 +25,51 @@ import java.util.Map;
 @Api(tags = "二手房小区相关接口")
 @RestController
 @Log4j2
-@RequestMapping("fcb/project")
-public class TmRedirectController {
+@RequestMapping("fcb/project/redirct")
+public class TmRedirectController extends BaseController{
 
     @Value("${fcb.agentsaas}")
     private String fcbagentsaas;
 
-
     @PostMapping("/{name}")
     @ApiOperation(value = "二手房小区接口转发")
-    public Result<Object> addNewHouse(@PathVariable String name, @RequestBody JSONObject object){
-
+    public Object addNewHouse(@PathVariable String name, @RequestBody JSONObject object){
+        Instant stepTwoStart = Instant.now();
+        String str = "";
         try {
-            Instant stepTwoStart = Instant.now();
+            ContextTokenBean tokenMap = getContextUserInfo();
             log.info("二手房接口转发 : " + name);
 
             String timestamp = String.valueOf(new Date().getTime());
             String apiNumber = name;
             String nonce = DateUtil.randonNum(5);
             String secret = "fcb2021";
-            String params = object.toJSONString();
 
+            if(object.containsKey("companyName")){
+                if(StringUtils.isNotEmpty(tokenMap.getDepartmentName())){
+                    object.put("companyName",tokenMap.getDepartmentName());
+                }else{
+                    object.put("companyName","");
+                }
+            }
+
+            if(object.containsKey("operatorCompanyId")){
+                if(StringUtils.isNotEmpty(tokenMap.getDepartmentId())){
+                    object.put("operatorCompanyId",tokenMap.getDepartmentId());
+                }else{
+                    object.put("operatorCompanyId","");
+                }
+            }
+
+            if(object.containsKey("operatorCompanyName")){
+                if(StringUtils.isNotEmpty(tokenMap.getDepartmentName())){
+                    object.put("operatorCompanyName",tokenMap.getDepartmentName());
+                }else{
+                    object.put("operatorCompanyName","");
+                }
+            }
+
+            String params = object.toJSONString();
             String[] strary = new String[]{secret,timestamp,nonce,params,apiNumber};
             Arrays.sort(strary);
 
@@ -53,9 +79,7 @@ public class TmRedirectController {
             }
 
             String signature = DigestUtils.shaHex(strs);
-            String url = "fcbagentsaas" + name;
-
-            log.info("url" + url);
+            log.info("url   : " + fcbagentsaas);
 
             Map mm = new HashMap();
             mm.put("apiNumber", apiNumber);
@@ -64,7 +88,34 @@ public class TmRedirectController {
             mm.put("params", params);
             mm.put("timestamp", timestamp);
             mm.put("signature", signature);
-            String str = HttpClientUtil.doPostJson(url, JSON.toJSONString(mm));
+
+            String param = JSON.toJSONString(mm);
+            log.info("====================参数:{}===================" , param);
+
+            str = HttpClientUtil.doPostJson(fcbagentsaas, param);
+
+            if(StringUtils.isNotEmpty(str)){
+                JSONObject responsemsg = JSONObject.parseObject(str);
+
+
+                return responsemsg;
+            }else{
+                JSONObject responsemsg = new JSONObject();
+                responsemsg.put("resultType",99);
+                responsemsg.put("resultMsg","接口请求失败,未获取到数据");
+                responsemsg.put("resultData",str);
+                return responsemsg;
+            }
+        }catch (Exception e){
+
+            e.printStackTrace();
+            JSONObject responsemsg = new JSONObject();
+            responsemsg.put("resultType",99);
+            responsemsg.put("resultMsg","系统繁忙");
+            responsemsg.put("resultData",str);
+            return responsemsg;
+
+        }finally {
 
             Instant stepTwoEnd = Instant.now();
             long stepTwoDuration = Duration.between(stepTwoStart , stepTwoEnd).toMillis();
@@ -72,10 +123,6 @@ public class TmRedirectController {
             log.info("====================二手房接口转发完成:{}===================" , stepTwoDuration);
             log.info("二手房接口转发完成 : " + str);
 
-            return Result.success(str);
-        }catch (Exception e){
-            e.printStackTrace();
-            return Result.failure("系统繁忙");
         }
     }