Browse Source

更新:
新增场景统计接口

wuweihao 4 years ago
parent
commit
ef67667e0c

+ 96 - 0
cms_pano_fcb/gis_application/src/main/resources/application-fcbsit.properties

@@ -0,0 +1,96 @@
+#服务名
+spring.application.name=pano-service
+#注册中心
+spring.cloud.nacos.discovery.server-addr=10.71.114.237:8848
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.druid.url=jdbc:mysql://10.71.114.237:3306/vr_cms?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.username=user_4dhouse_rw
+spring.datasource.druid.password=kaKjbpZi1plmViyDVWhD
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+# redis 分布式的
+spring.redis.cluster.nodes=10.71.114.132:7000,10.71.114.132:7001,10.71.114.132:7002,10.71.114.132:7003,10.71.114.132:7004,10.71.114.132:7005
+spring.redis.database=0
+spring.redis.password=BN5Q40JsPHIGfUg5HTkU
+spring.redis.timeout=3000ms
+spring.redis.jedis.pool.max-idle=8
+spring.redis.jedis.pool.min-idle=0
+spring.redis.jedis.pool.max-active=8
+spring.redis.jedis.pool.max-wait=-1ms
+
+#rabbit MQ
+#spring.rabbitmq.address=10.71.5.163:5672,10.71.5.164:5672
+spring.rabbitmq.address=10.71.114.232:5672
+spring.rabbitmq.username=admin
+spring.rabbitmq.password=fcb@admin_4dage
+spring.rabbitmq.virtual-host=/
+spring.rabbitmq.connection-timeout=15000
+# confirm模式
+spring.rabbitmq.publisher-confirms=true
+# return机制
+spring.rabbitmq.publisher-returns=true
+# 与return机制结合配置次属性
+spring.rabbitmq.template.mandatory=true
+
+spring.servlet.multipart.location=/mnt
+
+# oss info
+oss.point=http://fcb-vrkanfang-uat.oss-cn-shenzhen-internal.aliyuncs.com
+oss.key=LTAI4FyDDFpGGjTJZEQH4yaK
+oss.secrey=mqVRTWbWcn4sNMoWmnRq6eToWr9BIy
+oss.bucket=fcb-vrkanfang-uat
+oss.type=oss
+oss.file.path=${project.name}/
+oss.domain=https://vr-oss-sit.fcb.com.cn/
+
+
+swagger.package=com.gis.web.controller
+swagger.title=fcbsit
+swagger.description=fcbsit
+swagger.version=1.0
+
+
+#log
+logging.path=/home/tomcat/logs/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+
+# 上传文件保存路径
+# 本地保存路径
+file.path=/mnt/${project.name}_data/
+
+# swagger login
+# 开启basic登录认证
+#knife4j.basic.enable=true
+#knife4j.basic.username=owen
+#knife4j.basic.password=owen
+
+
+

+ 3 - 0
cms_pano_fcb/gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java

@@ -95,4 +95,7 @@ public interface SceneMapper extends IBaseMapper<SceneEntity, String> {
 
     @Select("select * from tb_scene where is_delete = 0 and house_id = #{houseId} AND scene_code = #{sceneCode} limit 1")
     SceneEntity findByHouseIdAndSceneCode(String houseId, String sceneCode);
+
+    @SelectProvider(type = SceneProvider.class, method = "countByType")
+    Integer countByType(String houseId, String type);
 }

+ 27 - 0
cms_pano_fcb/gis_mapper/src/main/java/com/gis/mapper/provider/SceneProvider.java

@@ -120,4 +120,31 @@ public class SceneProvider {
         log.info("sql: {}", sql.toString());
         return sql.toString();
     }
+
+
+    /**
+     * 数据统计
+     * 航拍数量:building, 观景图数量:garden, 售楼处数量:sales, 样本间数量:house
+     * @return
+     */
+    public String countByType(String houseId, String type){
+
+        StringBuffer sql = new StringBuffer("select count(id) from tb_scene where is_delete = 0 and status >= 3 ");
+
+
+        if(!StringUtils.isAllBlank(houseId)){
+            sql.append(" and house_id = '").append(houseId).append("'");
+        }
+
+        if ("house".equals(type)) {
+            sql.append(" and type = '").append(type).append("' and by_type = '0' ");
+        } else if ("sales".equals(type)) {
+            sql.append(" and type = 'house' and by_type = 'garden' ");
+        } else {
+            sql.append(" and type = '").append(type).append("'");
+        }
+
+        log.info("sql: {}", sql.toString());
+        return sql.toString();
+    }
 }

+ 2 - 0
cms_pano_fcb/gis_service/src/main/java/com/gis/service/HouseService.java

@@ -12,4 +12,6 @@ public interface HouseService  {
     Result checkStatus(String houseId, String status);
 
     Result editHouse(EditHouseDto param);
+
+    Result statistics(String houseId);
 }

+ 84 - 21
cms_pano_fcb/gis_service/src/main/java/com/gis/service/impl/HouseServiceImpl.java

@@ -2,6 +2,7 @@ package com.gis.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.gis.common.exception.BaseRuntimeException;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.EditHouseDto;
 import com.gis.domain.dto.HouseDto;
@@ -14,7 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -40,7 +43,7 @@ public class HouseServiceImpl implements HouseService {
         if (entityList.size() > 0) {
             flag = true;
         }
-        log.info("是否有计算中的场景: " + flag);
+        log.info("提审是否有计算中的场景: " + flag);
         return Result.success(flag);
     }
 
@@ -54,7 +57,7 @@ public class HouseServiceImpl implements HouseService {
 
         // 检查VR项目状态
         String houseId = param.getHouseId();
-        Result resStatus =  getHouseStatus(houseId);
+        Result resStatus =  canEdit(houseId);
         if (resStatus != null) {
             return resStatus;
         }
@@ -88,43 +91,103 @@ public class HouseServiceImpl implements HouseService {
         return Result.success();
     }
 
+    @Override
+    public Result statistics(String houseId) {
+        Map<String, Object> result = new HashMap<>();
+
+        // 航拍数量:building, 观景图数量:garden, 售楼处数量:sales, 样本间数量:house
+
+        Integer buildingCount = entityMapper.countByType(houseId, "building");
+        Integer gardenCount = entityMapper.countByType(houseId, "garden");
+        Integer salesCount = entityMapper.countByType(houseId, "sales");
+        Integer houseCount = entityMapper.countByType(houseId, "house");
+
+
+        // 航拍数量(building)
+        result.put("building", buildingCount);
+        // 观景图数量
+        result.put("garden", gardenCount);
+        // 售楼处数量
+        result.put("sales", salesCount);
+        // 样本间数量
+        result.put("house", houseCount);
+
+        log.info("统计数量返回值: {}", result);
+        return Result.success(result);
+    }
+
     /**
      * 查询VR项目状态
      * @param houseId
      * @return
      */
-    private Result getHouseStatus(String houseId){
+//    private Result getHouseStatus(String houseId){
+//        Result result = null;
+//        try {
+//            result = houseFeign.findByHouseId(houseId);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        String status = null;
+//        if (result.getCode() == 0) {
+//            Object data = result.getData();
+//            JSONObject jsonObject = JSON.parseObject(data.toString());
+//            status = jsonObject.getString("status");
+//            log.info("house status: " + status);
+//            log.warn("可以正常编辑");
+//            if (status.equals("1")) {
+//                log.warn("审核中不能编辑");
+//                return Result.failure(7005, "审核中不能编辑");
+//            }
+//            if (status.equals("2")) {
+//                log.warn("已审核中不能编辑");
+//                return Result.failure(7006, "已审核中不能编辑");
+//            }
+//
+//
+//        }
+//
+//        if (result.getCode() == -1){
+//            log.error("VR项目接口查询失败:" + result.getMsg() );
+//            return Result.failure(7007, "VR项目接口查询失败");
+//        }
+//
+//        return null;
+//    }
+
+
+    /**
+     * 查询VR项目是否可编辑
+     * true: 可编辑
+     * false: 不可编辑
+     * @param houseId
+     * @return
+     */
+    private Result canEdit(String houseId){
         Result result = null;
         try {
             result = houseFeign.findByHouseId(houseId);
+            log.info("房车宝返回数据:{}", result);
         } catch (Exception e) {
             e.printStackTrace();
+            log.error("调用房车宝接口失败");
+            throw new BaseRuntimeException("调用房车宝接口失败");
         }
-        String status = null;
         if (result.getCode() == 0) {
-            Object data = result.getData();
-            JSONObject jsonObject = JSON.parseObject(data.toString());
-            status = jsonObject.getString("status");
-            log.info("house status: " + status);
-            log.warn("可以正常编辑");
-            if (status.equals("1")) {
-                log.warn("审核中不能编辑");
-                return Result.failure(7005, "审核中不能编辑");
-            }
-            if (status.equals("2")) {
-                log.warn("已审核中不能编辑");
-                return Result.failure(7006, "已审核中不能编辑");
+            boolean data = (boolean) result.getData();
+            if (data) {
+                log.info("vr项目可编辑");
+                return Result.success();
+            } else {
+                log.info("vr项目不可编辑");
+                return Result.failure(7005, "VR项目不可编辑");
             }
 
-
-        }
-
-        if (result.getCode() == -1){
+        } else {
             log.error("VR项目接口查询失败:" + result.getMsg() );
             return Result.failure(7007, "VR项目接口查询失败");
         }
 
-        return null;
     }
 
 }

+ 19 - 0
cms_pano_fcb/gis_web/src/main/java/com/gis/web/controller/CommonController.java

@@ -8,6 +8,7 @@ import com.gis.domain.entity.SceneInitEntity;
 import com.gis.domain.vo.SceneInitVo;
 import com.gis.mapper.SceneInitMapper;
 import com.gis.mapper.SceneMapper;
+import com.gis.service.HouseService;
 import com.gis.service.SceneInitService;
 import com.gis.service.SceneService;
 import com.gis.web.aop.WebControllerLog;
@@ -50,6 +51,9 @@ public class CommonController extends BaseController {
     @Autowired
     SceneInitService sceneInitService;
 
+    @Autowired
+    HouseService houseService;
+
 
     @ApiOperation(value = "检查token是否有效" , position = 3)
     @GetMapping("checkToken")
@@ -156,4 +160,19 @@ public class CommonController extends BaseController {
         return sceneInitService.saveEntity(param);
     }
 
+
+    @WebControllerLog(description = "VR项目-编辑VR项目", addDb = true)
+    @ApiOperation(value = "VR项目修改", position = 3, notes = "修改VR项目的基础信息")
+    @PostMapping("edit")
+    public Result editHouse(@Valid @RequestBody EditHouseDto param) {
+        return houseService.editHouse(param);
+    }
+
+
+    @WebControllerLog(description = "VR项目-数据统计")
+    @ApiOperation(value = "数据统计", notes = "航拍数量:building, 观景图数量:garden, 售楼处数量:sales, 样本间数量:house")
+    @GetMapping("statistics/{houseId}")
+    public Result statistics(@PathVariable String houseId) {
+        return houseService.statistics(houseId);
+    }
 }

+ 7 - 1
cms_pano_fcb/gis_web/src/main/java/com/gis/web/controller/HouseController.java

@@ -48,6 +48,7 @@ public class HouseController extends BaseController {
             @ApiImplicitParam(name = "houseId", value = "房源id", dataType = "String", required = true),
             @ApiImplicitParam(name = "status", value = "状态, 1:计算中", dataType = "String"),
     })
+    @WebControllerLog(description = "VR项目-提审检查场景状态")
     @ApiOperation(value = "提审检查场景状态", notes = "检查是否有计算中的场景")
     @GetMapping("checkStatus/{houseId}/{status}")
     public Result checkStatus(@PathVariable String houseId, @PathVariable String status) {
@@ -64,7 +65,12 @@ public class HouseController extends BaseController {
     }
 
 
-
+    @WebControllerLog(description = "VR项目-场景数据统计")
+    @ApiOperation(value = "场景数据统计", notes = "返回值描述: 航拍数量:building, 观景图数量:garden, 售楼处数量:sales, 样本间数量:house")
+    @GetMapping("statistics/{houseId}")
+    public Result statistics(@PathVariable String houseId) {
+        return houseService.statistics(houseId);
+    }