Explorar o código

添加接口同步逻辑

tianboguang %!s(int64=3) %!d(string=hai) anos
pai
achega
997d4a1284

+ 14 - 0
platform-common/src/main/java/com/platform/service/impl/ZhiHouseService.java

@@ -1,5 +1,6 @@
 package com.platform.service.impl;
 package com.platform.service.impl;
 
 
+import com.platform.entity.Result;
 import com.platform.enums.ResultCodeEnum;
 import com.platform.enums.ResultCodeEnum;
 import com.platform.exception.CommonBaseException;
 import com.platform.exception.CommonBaseException;
 import com.platform.vos.ZhiHouseUserLoginVo;
 import com.platform.vos.ZhiHouseUserLoginVo;
@@ -13,6 +14,7 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.client.RestTemplate;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 @Service
 @Service
@@ -53,4 +55,16 @@ public class ZhiHouseService {
         ResponseEntity<String> kankanResult = restTemplate.postForEntity(url,formEntity,String.class);
         ResponseEntity<String> kankanResult = restTemplate.postForEntity(url,formEntity,String.class);
         return kankanResult;
         return kankanResult;
     }
     }
+
+    /**
+     * 获取四维看看场景数据
+     * @param username
+     * @return
+     */
+    public ResponseEntity<Result> sync4dkkSceneData(String username) {
+        Map<String ,Object> params = new HashMap<>(1);
+        params.put("username",username);
+        String url = zhiHouseHost + "api/platform/sync4dkkSceneData";
+        return restTemplate.postForEntity(url, params, Result.class);
+    }
 }
 }

+ 16 - 0
platform-shop/src/main/java/com/platform/controller/SceneController.java

@@ -14,6 +14,7 @@ import com.platform.service.SysDeptService;
 import com.platform.service.SysUserService;
 import com.platform.service.SysUserService;
 import com.platform.utils.*;
 import com.platform.utils.*;
 import com.platform.vo.BrandBindUserVo;
 import com.platform.vo.BrandBindUserVo;
+import com.platform.vos.CurrentUserLoginVo;
 import com.platform.vos.RequestScene;
 import com.platform.vos.RequestScene;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -342,6 +343,21 @@ public class SceneController extends AbstractController{
     }
     }
 
 
     /**
     /**
+     * 同步四维看看数据
+     */
+    @RequestMapping("/sync4dkkSceneData")
+    @Transactional(rollbackFor = Exception.class)
+    public R sync4dkkSceneData() {
+        CurrentUserLoginVo user = getUser();
+        if(ObjectUtils.isEmpty(user.getFdkkUser())){
+            throw new CommonBaseException(500, "请绑定四维看看账号!");
+        }
+        String mobile = user.getMobile();
+        sceneService.sync4dkkSceneData(mobile,user.getUserId());
+        return R.ok();
+    }
+
+    /**
      * 删除
      * 删除
      */
      */
     @CanUserUpdateRecord
     @CanUserUpdateRecord

+ 2 - 0
platform-shop/src/main/java/com/platform/service/SceneService.java

@@ -81,4 +81,6 @@ public interface SceneService {
     void updateSceneUser(Long fromUserId,Long toUserId,Long currentUserId);
     void updateSceneUser(Long fromUserId,Long toUserId,Long currentUserId);
 
 
     List<SceneEntity> queryByUserId(Long userId);
     List<SceneEntity> queryByUserId(Long userId);
+
+    void sync4dkkSceneData(String mobile,Long userId);
 }
 }

+ 45 - 3
platform-shop/src/main/java/com/platform/service/impl/SceneServiceImpl.java

@@ -1,14 +1,21 @@
 package com.platform.service.impl;
 package com.platform.service.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.platform.dao.SceneDao;
 import com.platform.dao.SceneDao;
+import com.platform.entity.Result;
 import com.platform.entity.SceneEntity;
 import com.platform.entity.SceneEntity;
+import com.platform.enums.ResultCodeEnum;
+import com.platform.exception.CommonBaseException;
 import com.platform.service.SceneService;
 import com.platform.service.SceneService;
 import com.platform.utils.R;
 import com.platform.utils.R;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -28,6 +35,9 @@ public class SceneServiceImpl implements SceneService {
     @Autowired
     @Autowired
     private SceneDao sceneDao;
     private SceneDao sceneDao;
 
 
+    @Autowired
+    private ZhiHouseService zhiHouseService;
+
     @Override
     @Override
     public SceneEntity queryObject(Integer id) {
     public SceneEntity queryObject(Integer id) {
         return sceneDao.queryObject(id);
         return sceneDao.queryObject(id);
@@ -44,13 +54,13 @@ public class SceneServiceImpl implements SceneService {
     }
     }
 
 
     @Override
     @Override
-    public int save(SceneEntity brand) {
-        SceneEntity SceneEntity = sceneDao.findByName(brand.getName());
+    public int save(SceneEntity sceneEntity) {
+        SceneEntity SceneEntity = sceneDao.findByName(sceneEntity.getName());
         if(SceneEntity != null){
         if(SceneEntity != null){
             log.error("场景已经被绑定");
             log.error("场景已经被绑定");
             return 0;
             return 0;
         }
         }
-        return sceneDao.save(brand);
+        return sceneDao.save(sceneEntity);
     }
     }
 
 
     @Override
     @Override
@@ -101,4 +111,36 @@ public class SceneServiceImpl implements SceneService {
         map.put("createUserId",userId);
         map.put("createUserId",userId);
         return sceneDao.queryList(map);
         return sceneDao.queryList(map);
     }
     }
+
+    @Override
+    public void sync4dkkSceneData(String mobile,Long userId) {
+        // 请求指房宝获取四维看看数据
+        ResponseEntity<Result> responseEntity = zhiHouseService.sync4dkkSceneData(mobile);
+        if(responseEntity.getStatusCode()!= HttpStatus.OK){
+            throw new CommonBaseException(ResultCodeEnum.D100);
+        }
+        // 解析数据,获取相机及场景数据,并入库
+        HashMap<String,List<HashMap<String,String>>> result = (HashMap<String, List<HashMap<String, String>>>)responseEntity.getBody().getData();
+
+        List<HashMap<String, String>> scenes = result.get("scenes");
+
+        if(!ObjectUtils.isEmpty(scenes)){
+            scenes.parallelStream().forEach(map->{
+                SceneEntity scene = new SceneEntity();
+                scene.setName(map.get("sceneName"));
+                scene.setSceneUrl(map.get("webSite"));
+                scene.setSceneNum(map.get("num"));
+                scene.setIsShow(0);
+                scene.setCreateUserId(userId);
+                scene.setUpdateUserId(userId);
+                scene.setIsShow(0);
+                try {
+                    save(scene);
+                } catch (Exception e) {
+                    log.error("场景同步失败:{}",JSONObject.toJSONString(map));
+                    e.printStackTrace();
+                }
+            });
+        }
+    }
 }
 }