Pārlūkot izejas kodu

调整api接口

houweiyu 4 gadi atpakaļ
vecāks
revīzija
fd69bee7dd

+ 12 - 0
src/main/java/fcb/project/manager/base/constant/CommonConstant.java

@@ -0,0 +1,12 @@
+package fcb.project.manager.base.constant;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/1/14 15:48
+ * 4
+ */
+public class CommonConstant {
+
+    public static String REDIS_KEY_SEPERATER = "::";
+
+}

+ 3 - 0
src/main/java/fcb/project/manager/base/entity/TmAudit.java

@@ -61,6 +61,9 @@ public class TmAudit implements Serializable {
     @ApiModelProperty(value = "审核状态: 0->待审核;1->已审核;-1->不通过")
     private Integer auditStatus;
 
+    @ApiModelProperty(value = "审核备注")
+    private String auditRemark;
+
     @ApiModelProperty(value = "审核人名字")
     private String auditorName;
 

+ 84 - 0
src/main/java/fcb/project/manager/base/entity/TmFcbHouseInfo.java

@@ -0,0 +1,84 @@
+package fcb.project.manager.base.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/1/14 15:05
+ * 4
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="TmFcbHouseInfo对象", description="房车宝房源信息")
+public class TmFcbHouseInfo  implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    @ApiModelProperty(value = "房源户型图链接")
+    private String houseTypeImages;
+
+    @ApiModelProperty(value = "建筑面积")
+    private Double houseArea;
+
+    @ApiModelProperty(value = "朝向")
+    private String houseOrientation;
+
+    @ApiModelProperty(value = "房源标题")
+    private String houseTitle;
+
+    @ApiModelProperty(value = "交房时间")
+    private String earlistHandOver;
+
+    @ApiModelProperty(value = "最新开盘日期")
+    private String onSaleTime;
+
+
+    @ApiModelProperty(value = "楼盘照片集链接")
+    private String estateImages;
+
+    @ApiModelProperty(value = "楼盘经度")
+    private String estateLongitude;
+
+    @ApiModelProperty(value = "楼盘纬度")
+    private String estateLatitude;
+
+    @ApiModelProperty(value = "经纪人唯一ID")
+    private String agencyId;
+
+    @ApiModelProperty(value = "经纪人姓名")
+    private String agencyName;
+
+    @ApiModelProperty(value = "手机号码")
+    private String agnencyPhone;
+
+    @ApiModelProperty(value = "头像照片地址")
+    private String agencyAvatar;
+
+    @ApiModelProperty(value = "用户唯一标识")
+    private String userId;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+
+    @ApiModelProperty(value = "楼盘简介")
+    private String estateDesc;
+
+    @ApiModelProperty(value = "场景码")
+    private String sceneNum;
+
+    @ApiModelProperty(value = "房源ID")
+    private String houseId;
+
+    @ApiModelProperty(value = "所属楼盘ID")
+    private String estateId;
+
+}

+ 14 - 0
src/main/java/fcb/project/manager/base/entity/TmHouse.java

@@ -86,4 +86,18 @@ public class TmHouse implements Serializable {
     @ApiModelProperty(value = "房源场景链接")
     private String vrLink;
 
+    @ApiModelProperty(value = "二维码分享简介")
+    private String shareDesc;
+
+    @ApiModelProperty(value = "房源信息[房车宝提供]")
+    private String houseInfo;
+
+    @ApiModelProperty(value = "场景码")
+    private String sceneNum;
+
+    @ApiModelProperty(value = "房源ID")
+    private String houseId;
+
+
+
 }

+ 7 - 0
src/main/java/fcb/project/manager/base/service/impl/TmEstateServiceImpl.java

@@ -56,6 +56,13 @@ public class TmEstateServiceImpl extends ServiceImpl<TmEstateDao, TmEstate> impl
         return getBaseMapper().selectOne(lambdaQueryWrapper);
     }
 
+    public int deleteEstateById(String estateId){
+        if(StringUtils.isBlank(estateId)){
+            return -1;
+        }
+        return getBaseMapper().deleteById(estateId);
+    }
+
 
     public boolean updateEstate(TmEstate estate){
         if(null == estate){

+ 18 - 0
src/main/java/fcb/project/manager/base/service/impl/TmHouseServiceImpl.java

@@ -47,6 +47,13 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         return  getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
 
+    public int deleteHouseById(String houseId){
+        if(StringUtils.isBlank(houseId)){
+            return -1;
+        }
+        return getBaseMapper().deleteById(houseId);
+    }
+
 
     public TmHouse getOneByNameAndEstate(String houseTitle , String estateId , int type){
         LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -98,4 +105,15 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         return 1 == getBaseMapper().insert(tmHouse);
     }
 
+    public TmHouse getBySceneNumAndHouseId(String sceneNum , String projectId , String houseId){
+        if(!StringUtils.isNoneBlank(sceneNum , projectId , houseId)){
+            return null;
+        }
+        LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmHouse::getSceneNum , sceneNum);
+        lambdaQueryWrapper.eq(TmHouse::getEstateId  , projectId);
+        lambdaQueryWrapper.eq(TmHouse::getHouseId , houseId);
+        return getBaseMapper().selectOne(lambdaQueryWrapper);
+    }
+
 }

+ 1 - 1
src/main/java/fcb/project/manager/core/controller/ApiFormatHouseController.java

@@ -38,7 +38,7 @@ import java.util.Map;
  */
 @Api(tags = "API格式化房源信息相关接口")
 @RestController
-@RequestMapping("api/vrhouse")
+@RequestMapping("fcb/project/api/vrhouse")
 @Log4j2
 public class ApiFormatHouseController {
 

+ 53 - 27
src/main/java/fcb/project/manager/core/controller/ApiQueryHouseController.java

@@ -2,14 +2,21 @@ package fcb.project.manager.core.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import fcb.project.manager.base.constant.CommonConstant;
 import fcb.project.manager.base.entity.TmApiHouseInfo;
 import fcb.project.manager.base.entity.TmApiHouseRecommend;
+import fcb.project.manager.base.entity.TmFcbHouseInfo;
+import fcb.project.manager.base.entity.TmHouse;
 import fcb.project.manager.base.service.impl.TmApiHouseInfoServiceImpl;
 import fcb.project.manager.base.service.impl.TmApiHouseRecommendServiceImpl;
+import fcb.project.manager.base.service.impl.TmHouseServiceImpl;
+import fcb.project.manager.base.utils.RedisServiceUtils;
 import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
 import fdage.back.sdk.base.exception.CommonBaseException;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
@@ -34,7 +41,7 @@ import java.util.Map;
 @Api(tags = "api房源数据查询接口")
 @Log4j2
 @RestController
-@RequestMapping("api/query")
+@RequestMapping("fcb/project/api/query")
 public class ApiQueryHouseController {
 
     @Autowired
@@ -43,41 +50,60 @@ public class ApiQueryHouseController {
     @Autowired
     private TmApiHouseRecommendServiceImpl tmApiHouseRecommendService;
 
+    @Autowired
+    private RedisServiceUtils redisServiceUtils;
+
+    @Autowired
+    private TmHouseServiceImpl tmHouseService;
+
 
     @ApiOperation(value = "H5页面请求房源信息")
-    @ResponseBody
     @GetMapping(value = "/getHouseInfo")
     @Transactional(rollbackFor = Exception.class)
-    //TODO:这里要添加写入和读取TmEstateServiceImpl缓存
-    public Result getHouseInfo(@RequestParam(value = "scene_code") String sceneCode,
-                               @RequestParam(value = "user_id") String userId,
-                               @RequestParam(value = "room_id") String roomId,
-                               @RequestParam(value = "terminal_type") String terminalType) {
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "sceneNum", value = "场景码", paramType = "query", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "projectId", value = "楼盘ID", paramType = "query", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "houseId", value = "房源ID", paramType = "query", required = true, dataType = "String"),
+    })
+    public Result getHouseInfo(@RequestParam(value = "sceneNum") String sceneNum,
+                               @RequestParam(value = "projectId") String projectId,
+                               @RequestParam(value = "houseId") String houseId) {
 
-        if (!StringUtils.isNoneBlank(sceneCode , roomId)) {
+        if (!StringUtils.isNoneBlank(sceneNum , projectId , houseId)) {
             throw new CommonBaseException(ResultCodeEnum.D3001);
         }
 
-        log.info("上送的场景码为:{},终端类型为:{}", sceneCode, terminalType);
-        Instant stepOneStart = Instant.now();
-        Map<String, Object> result = new HashMap<>();
-        TmApiHouseInfo tmHouseInfo = tmApiHouseInfoService.getHouseBySceneAndRoomId(sceneCode , roomId);
-        if (null == tmHouseInfo) {
-            //todo:补充异常返回信息
-            throw new CommonBaseException(ResultCodeEnum.D101);
+        String redisKey = this.getClass().getName() + CommonConstant.REDIS_KEY_SEPERATER +
+                projectId + CommonConstant.REDIS_KEY_SEPERATER + houseId + CommonConstant.REDIS_KEY_SEPERATER +
+                sceneNum;
+        TmFcbHouseInfo fcbHouseInfo = null;
+        if(redisServiceUtils.hasKey(redisKey)){
+            String fcbHouseInfoStr = (String) redisServiceUtils.get(redisKey);
+            if(StringUtils.isNotBlank(fcbHouseInfoStr)){
+                fcbHouseInfo = JSON.parseObject(fcbHouseInfoStr , TmFcbHouseInfo.class);
+                return Result.success(fcbHouseInfo);
+            }
+        }
+        //缓中没有,则去库中获取 todo:考虑下,到底值是去库中获取还是直接取房车宝获取
+        TmHouse tmHouse = tmHouseService.getBySceneNumAndHouseId(sceneNum , projectId , houseId);
+        if(null == tmHouse){
+            return Result.failure("房源不存在");
         }
-        Instant stepOneEnd = Instant.now();
-        long stepOneDuration = Duration.between(stepOneStart , stepOneEnd).toMillis();
-        log.info("======={}=============1、捞取房源数据耗时:{}===================" , "获取房源阶段" , stepOneDuration);
-        //覆盖推荐房源字段
-        Instant stepTwoStart = Instant.now();
-        List<TmApiHouseInfo> recList = getRecommends(tmHouseInfo);
-        tmHouseInfo.setRecommendHouses(JSON.toJSONString(recList));
-        Instant stepTwoEnd = Instant.now();
-        long stepTwoDuration = Duration.between(stepTwoStart , stepTwoEnd).toMillis();
-        log.info("========{}============2、生成推荐房源数据耗时:{}===================" ,"获取房源阶段" , stepTwoDuration);
-        result.put("houseInfo", tmHouseInfo);
-        return Result.success("请求结束", result);
+        if(StringUtils.isBlank(tmHouse.getHouseInfo())){
+            //TODO:去房车宝接口获取
+
+        }else{
+            //缓存一天
+            redisServiceUtils.set(redisKey , tmHouse.getHouseInfo() , 86400);
+            fcbHouseInfo = JSON.parseObject(tmHouse.getHouseInfo() , TmFcbHouseInfo.class);
+        }
+        return Result.success(fcbHouseInfo);
+    }
+
+    @ApiOperation(value = "测试获取fcbhouseInfo的json")
+    @GetMapping(value = "/justTest")
+    public void justTest(@RequestBody TmFcbHouseInfo tmFcbHouseInfo){
+
     }
 
     private List<TmApiHouseInfo> getRecommends(TmApiHouseInfo houseInfo) {

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

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "审核相关接口")
 @RestController
-@RequestMapping("fcb/audit")
+@RequestMapping("fcb/project/audit")
 @Log4j2
 public class AuditController {
 

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

@@ -31,7 +31,7 @@ import java.time.LocalDateTime;
  */
 @Api(tags = "房源相关接口")
 @RestController
-@RequestMapping("fcb/house")
+@RequestMapping("fcb/project/house")
 @Log4j2
 public class HouseManagerController {
 
@@ -128,10 +128,25 @@ public class HouseManagerController {
         }
         return Result.failure("更新失败");
     }
+    @PostMapping("/deleteHouse")
+    @ApiOperation(value = "删除房源信息")
+    public Result<Object> deleteHouse(@RequestParam() String houseId){
+
+        if(StringUtils.isBlank(houseId)){
+            return Result.failure("房源ID不能为空");
+        }
+        int delete = tmHouseService.deleteHouseById(houseId);
+        if(delete != 1){
+            return Result.failure("删除失败");
+        }
+
+        return Result.success("删除房源成功");
+
+    }
 
     @PostMapping("/updateHouse")
     @ApiOperation(value = "修改房源信息")
-    public Result<Object> updateEstate(@RequestBody TmHouse tmHouse){
+    public Result<Object> updateHouse(@RequestBody TmHouse tmHouse){
 
         if(null == tmHouse){
             return Result.failure("入参为空");

+ 1 - 1
src/main/java/fcb/project/manager/core/controller/OperationController.java

@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "操作日志相关接口")
 @RestController
-@RequestMapping("fcb/operation")
+@RequestMapping("fcb/project/operation")
 @Log4j2
 public class OperationController {
 

+ 17 - 1
src/main/java/fcb/project/manager/core/controller/ProjectController.java

@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "项目管理相关接口")
 @RestController
-@RequestMapping("fcb/project")
+@RequestMapping("fcb/project/project")
 @Log4j2
 public class ProjectController {
 
@@ -67,6 +67,22 @@ public class ProjectController {
         }
     }
 
+    @PostMapping("/deleteEstate")
+    @ApiOperation(value = "删除楼盘信息")
+    public Result<Object> deleteEstate(String estateId){
+
+        if(StringUtils.isBlank(estateId)){
+            return Result.failure("楼盘ID不能为空");
+        }
+        int delete = tmEstateService.deleteEstateById(estateId);
+        if(delete != 1){
+            return Result.failure("删除失败");
+        }
+
+        return Result.success("删除楼盘成功");
+
+    }
+
     @PostMapping("/updateEstate")
     @ApiOperation(value = "修改楼盘项目信息")
     public Result<Object> updateEstate(@RequestBody TmEstate tmEstate){

+ 1 - 1
src/main/resources/application-dev.properties

@@ -18,7 +18,7 @@ swagger.page.desc=设计到房源api、楼盘项目管理、审核流程业务
 swagger.page.packagePath=fcb.project.manager
 
 spring.redis.cluster.max-redirects=3
-spring.redis.cluster.nodes=127.0.0.1:6379
+spring.redis.cluster.nodes=10.1.145.117:6379,8.135.98.231:30063
 spring.redis.timeout=5000ms
 spring.redis.jedis.pool.max-active=8
 spring.redis.jedis.pool.max-idle=8

+ 1 - 1
src/main/resources/application-test.properties

@@ -19,7 +19,7 @@ swagger.page.packagePath=fcb.project.manager
 
 
 spring.redis.cluster.max-redirects=3
-spring.redis.cluster.nodes=127.0.0.1:6379
+spring.redis.cluster.nodes=10.1.152.54:6379,
 spring.redis.timeout=5000ms
 spring.redis.jedis.pool.max-active=8
 spring.redis.jedis.pool.max-idle=8

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

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