Explorar el Código

修改房源上下线逻辑

houweiyu hace 4 años
padre
commit
3080cf0209

+ 1 - 0
src/main/java/fcb/project/manager/base/enums/HouseStatus.java

@@ -12,6 +12,7 @@ public enum  HouseStatus {
       AUDITED(2 , "已审核"),
       REJECT(-1 , "未通过"),
       ALL(-2 , "所有状态"),
+      OFFLINE(-3 , "下线"),
 
     ;
 

+ 11 - 0
src/main/java/fcb/project/manager/base/service/impl/TmAuditServiceImpl.java

@@ -80,6 +80,17 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
         return getBaseMapper().updateById(tmAudit);
     }
 
+    public TmAudit getByHouseId(String houseId){
+        if(StringUtils.isBlank(houseId)){
+            return null;
+        }
+        LambdaQueryWrapper<TmAudit> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmAudit::getVrId , houseId);
+        lambdaQueryWrapper.eq(TmAudit::getIsDelete , DeleteStatus.NOT_DELETE.getCode());
+        lambdaQueryWrapper.last("limit 1");
+        return getBaseMapper().selectOne(lambdaQueryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public int deleteAudit(String id){
         if(StringUtils.isBlank(id)){

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

@@ -133,6 +133,7 @@ public class AuditController extends BaseController{
         Map<String , Object> map = new HashMap<>();
         if(AuditStatus.AUDITED.getCode().compareTo(auditStatus) == 0){
             dbHouse.setStatus(HouseStatus.AUDITED.getCode());
+            dbHouse.setOnline(1);
             if(StringUtils.isNotBlank(dbHouse.getSceneNum())  && dbHouse.getSceneNum().startsWith("HD")){
                 //上线
                 map.put("status" , 1);
@@ -140,12 +141,6 @@ public class AuditController extends BaseController{
             }
         }else if(AuditStatus.REJECT.getCode().compareTo(auditStatus) == 0){
             dbHouse.setStatus(HouseStatus.REJECT.getCode());
-            //下线
-            if(StringUtils.isNotBlank(dbHouse.getSceneNum()) && dbHouse.getSceneNum().startsWith("HD")){
-                //上线
-                map.put("status" , 2);
-                map.put("sceneNum" , dbHouse.getSceneNum());
-            }
         }
         try{
             if(!CollectionUtils.isEmpty(map)){
@@ -176,55 +171,56 @@ public class AuditController extends BaseController{
     @PostMapping("/online")
     @ApiOperation(value = "上线/下线")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "审核记录ID", paramType = "query", required = false, dataType = "String"),
-            @ApiImplicitParam(name = "online", value = "是否上线:1->上线;0->下线", paramType = "query", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "id", value = "房源ID", paramType = "query", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "online", value = "是否上线:1->上线;-0->下线", paramType = "query", required = false, dataType = "Integer"),
     })
+    @Transactional(rollbackFor = Exception.class)
     public Result<Object> online(String id , Integer online){
 
         if(StringUtils.isBlank(id) || null == online){
-            return Result.failure("审核记录ID或者状态不能为空");
+            return Result.failure("房源ID或者状态不能为空");
         }
-        TmAudit tmAudit = tmAuditService.getById(id);
-        if(null == tmAudit){
-            return Result.failure("审核记录不存在");
-        }
-        if(null != tmAudit.getVrOnline() && tmAudit.getVrOnline().equals(online)){
-            return Result.failure("已经处理过了,无需重复处理");
-        }
-        if(StringUtils.isBlank(tmAudit.getVrId())){
-          return Result.failure("审核记录中的房源已经不存在在");
+        if(online.compareTo(1) != 0 &&
+                online.compareTo(0) != 0){
+            return Result.failure("上下线状态非法");
         }
-        TmHouse tmHouse = tmHouseService.getById(tmAudit.getId());
+        TmHouse tmHouse = tmHouseService.getById(id);
         if(null == tmHouse){
             return Result.failure("房源不存在在");
         }
-        tmAudit.setVrOnline(online);
-        int update = tmAuditService.updateAudit(tmAudit);
-        if(update == 1){
-            //TODO:去调四维看看/720,告知四维看看更新场景
-            if(StringUtils.isNotBlank(tmHouse.getSceneNum())){
-                Map<String , Object> map = new HashMap<>();
-                map.put("sceneNum" , tmHouse.getSceneNum());
-                if(online.compareTo(1) == 0){
-                    //上线
-                    map.put("status" , 1);
-                }else{
-                    //下线
-                    map.put("status" , 2);
+        tmHouse.setOnline(online);
+        tmHouseService.updateHouse(tmHouse);
+        if(StringUtils.isNotBlank(tmHouse.getSceneNum()) &&
+                tmHouse.getSceneNum().startsWith("HD")){
+            Map<String , Object> map = new HashMap<>();
+            map.put("sceneNum" , tmHouse.getSceneNum());
+            if(online.compareTo(1) == 0){
+                //上线
+                map.put("status" , 1);
+            }else{
+                //下线
+                map.put("status" , 2);
+            }
+            try{
+                Object result =  sceneFeign.updateSceneStatus(map);
+                log.info("四维看看微服务返回结果:{}" ,result);
+                JSONObject jsonObject = (JSONObject) result;
+                if(null == jsonObject){
+                    throw  new CommonBaseException(ResultCodeEnum.D101 , "四维看看返回结果解析异常");
                 }
-                try{
-                  Object result =  sceneFeign.updateSceneStatus(map);
-                  log.info("四维看看微服务返回结果:{}" ,result);
-                }catch (Exception e){
-                    log.info("调用四维看看微服务出现异常:{}" , e);
+                if(jsonObject.containsKey("code")){
+                    int code = jsonObject.getInteger("code");
+                    if(code != 0){
+                        throw  new CommonBaseException(ResultCodeEnum.D101 , "四维看看返回结果为失败");
+                    }
                 }
-
+            }catch (Exception e){
+                log.info("调用四维看看微服务出现异常:{}" , e);
             }
-
-            return Result.success();
         }else{
-            return Result.failure("操作失败");
+            log.info("非四维看看场景码,无需翻转传场景码的状态");
         }
+        return Result.success();
     }