瀏覽代碼

大版本改动, 全景用场景码做为id, 特殊点不会, 一对多的不能用场景码作为id

wuweihao 4 年之前
父節點
當前提交
31d992cad4
共有 49 個文件被更改,包括 483 次插入553 次删除
  1. 7 1
      README.md
  2. 1 0
      laser/src/main/java/com/fdkankan/indoor/base/aop/WebLogAspect.java
  3. 16 2
      laser/src/main/java/com/fdkankan/indoor/core/controller/InitController.java
  4. 2 2
      laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeController.java
  5. 2 2
      laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeGroupController.java
  6. 21 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/TestController.java
  7. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/ConfigEntity.java
  8. 7 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/InitEntity.java
  9. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiEntity.java
  10. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeEntity.java
  11. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeGroupEntity.java
  12. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/RecountInfoEntity.java
  13. 22 22
      laser/src/main/java/com/fdkankan/indoor/core/entity/SiteEntity.java
  14. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/SiteModelEntity.java
  15. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/SpecialPointEntity.java
  16. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/ConfigMapper.java
  17. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiMapper.java
  18. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeGroupMapper.java
  19. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeMapper.java
  20. 13 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/RecountInfoMapper.java
  21. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/SiteModelMapper.java
  22. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/SpecialPointMapper.java
  23. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/ConfigService.java
  24. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/ControlPointService.java
  25. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/DataSetService.java
  26. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/FilterService.java
  27. 7 1
      laser/src/main/java/com/fdkankan/indoor/core/service/InitService.java
  28. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/MapService.java
  29. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiService.java
  30. 3 1
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeGroupService.java
  31. 3 1
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeService.java
  32. 12 0
      laser/src/main/java/com/fdkankan/indoor/core/service/RecountInfoService.java
  33. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/RouteService.java
  34. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/SiteService.java
  35. 2 0
      laser/src/main/java/com/fdkankan/indoor/core/service/SpecialPointService.java
  36. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/ConfigServiceImpl.java
  37. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/ControlPointServiceImpl.java
  38. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/DataSetServiceImpl.java
  39. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/FilterServiceImpl.java
  40. 124 25
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/InitServiceImpl.java
  41. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/MapServiceImpl.java
  42. 32 16
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiServiceImpl.java
  43. 40 22
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiTypeGroupServiceImpl.java
  44. 41 24
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiTypeServiceImpl.java
  45. 25 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/RecountInfoServiceImpl.java
  46. 5 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/RouteServiceImpl.java
  47. 0 410
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/SiteModelServiceImpl.java
  48. 23 12
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/SiteServiceImpl.java
  49. 6 0
      laser/src/main/java/com/fdkankan/indoor/core/service/impl/SpecialPointServiceImpl.java

+ 7 - 1
README.md

@@ -90,5 +90,11 @@
     
 # 测试页面
 https://testlaser.4dkankan.com/maxkk/test2    
-    
+
+
+t-gWKRICl /mnt/data/00001001/872161343271075840/74ee2a32dbde_202108031655164910/results
+t-p307mDm   /mnt/data/00001001/872174780395028480/74ee2a32dbde_202108031736546430/results 
+
+
+aa-p307mDm
              

+ 1 - 0
laser/src/main/java/com/fdkankan/indoor/base/aop/WebLogAspect.java

@@ -43,6 +43,7 @@ public class WebLogAspect {
         startTime = System.currentTimeMillis();
         // 记录下请求内容
         String remoteAddr = request.getRemoteAddr();
+        log.warn("");
         log.warn("start : {}, uuid: {}" , request.getRequestURI(), startTime);
         log.info("request Method:{}, IP:{}" , request.getMethod(),  request.getRemoteAddr());
         log.info("request Args : {}" , Arrays.toString(joinPoint.getArgs()));

+ 16 - 2
laser/src/main/java/com/fdkankan/indoor/core/controller/InitController.java

@@ -34,10 +34,24 @@ public class InitController {
      * @param path
      * @return
      */
-    @WebControllerLog(description = "filter数据接口-创建初始数据")
+    @WebControllerLog(description = "创建初始数据")
     @ApiOperation(value = "创建初始数据")
     @GetMapping("indoor/{sceneCode}/api/init")
     public Result initData(@PathVariable String sceneCode, String path) {
-        return initService.initData(sceneCode, path);
+        return initService.initData(sceneCode, path, "age");
+    }
+
+    @WebControllerLog(description = "删除初始化数据")
+    @ApiOperation(value = "删除初始化数据(手动删除)")
+    @GetMapping("indoor/{sceneCode}/api/initRemove")
+    public Result initRemove(@PathVariable String sceneCode){
+        return  initService.testRemove(sceneCode);
+    }
+
+    @WebControllerLog(description = "重算场景")
+    @ApiOperation(value = "重算场景")
+    @GetMapping("indoor/{sceneCode}/api/initRecount")
+    public Result initRecount(@PathVariable String sceneCode){
+        return  initService.initRecount(sceneCode);
     }
 }

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeController.java

@@ -37,8 +37,8 @@ public class PoiTypeController {
 
     @ApiOperation(value = "删除接口")
     @DeleteMapping("indoor/{sceneCode}/api/poi_types/{id}")
-    public Object remove(@PathVariable String sceneCode, @PathVariable Integer id){
-        Result result = poiTypeService.remove(sceneCode, id);
+    public Object removeByDataId(@PathVariable String sceneCode, @PathVariable Integer id){
+        Result result = poiTypeService.removeByDataId(sceneCode, id);
         return result.getData();
     }
 

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeGroupController.java

@@ -37,8 +37,8 @@ public class PoiTypeGroupController {
 
     @ApiOperation(value = "删除热点组")
     @DeleteMapping("indoor/{sceneCode}/api/poi_type_groups/{id}")
-    public Object remove(@PathVariable String sceneCode, @PathVariable Integer id){
-        Result result = entityService.remove(sceneCode, id);
+    public Object removeByDataId(@PathVariable String sceneCode, @PathVariable Integer id){
+        Result result = entityService.removeByDataId(sceneCode, id);
         return result.getData();
     }
 }

+ 21 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/TestController.java

@@ -2,8 +2,11 @@ package com.fdkankan.indoor.core.controller;
 
 import com.fdkankan.indoor.base.util.CmdUtils;
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.base.util.SnowFlakeUUidUtils;
 import com.fdkankan.indoor.core.entity.OwenEntity;
+import com.fdkankan.indoor.core.entity.SpecialPointEntity;
 import com.fdkankan.indoor.core.service.OwenService;
+import com.fdkankan.indoor.core.service.SpecialPointService;
 import com.fdkankan.indoor.core.service.TestService;
 import com.fdkankan.indoor.core.entity.vo.HaoVo;
 import io.swagger.annotations.Api;
@@ -30,6 +33,9 @@ public class TestController {
     @Autowired
     OwenService owenService;
 
+    @Autowired
+    SpecialPointService specialPointService;
+
     @ApiOperation("修改数据")
     @PostMapping("edit/{sceneCode}")
     public Result edit(@PathVariable String sceneCode, @RequestBody List<HaoVo> param){
@@ -92,5 +98,20 @@ public class TestController {
 
     }
 
+    @ApiOperation("添加特殊点")
+    @GetMapping("spec")
+    public Result spec(){
+        SpecialPointEntity entity = new SpecialPointEntity();
+        entity.setId(SnowFlakeUUidUtils.getUuid("aa"));
+        entity.setSceneCode("test");
+        entity.setPoiKey("aa");
+        entity.setPoi(null);
+        specialPointService.save(entity);
+        return Result.success();
+
+
+    }
+
+
 
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/ConfigEntity.java

@@ -16,7 +16,7 @@ import java.util.List;
 public class ConfigEntity extends BaseEntity {
 
 
-    private String sceneCode;
+//    private String sceneCode;
 
     private List<ConfigDto> data;
 

+ 7 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/InitEntity.java

@@ -23,8 +23,14 @@ public class InitEntity {
 
     private LocalDateTime updateTime;
 
-    @ApiModelProperty(value = "状态, 0:初始状态, 1:完成控制点" )
+
+    /**
+     * 2: 删除初始化数据
+     */
+    @ApiModelProperty(value = "状态, 0:初始状态, 1:完成控制点")
     private Integer status;
 
 
+    @ApiModelProperty(value = "重算次数")
+    private Integer recount;
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiEntity.java

@@ -15,7 +15,7 @@ import java.util.List;
 public class PoiEntity extends BaseEntity {
 
 
-    private String sceneCode;
+//    private String sceneCode;
 
     private List<PoiHotDto> data;
 

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeEntity.java

@@ -13,7 +13,7 @@ import java.util.List;
 @Data
 public class PoiTypeEntity extends BaseEntity {
 
-    private String sceneCode;
+//    private String sceneCode;
 
     private List<PoiTypeDto> data;
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeGroupEntity.java

@@ -13,7 +13,7 @@ import java.util.List;
 @Data
 public class PoiTypeGroupEntity extends BaseEntity{
 
-    private String sceneCode;
+//    private String sceneCode;
 
     private List<PoiTypeGroupDto> data;
 }

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/RecountInfoEntity.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.entity;
+
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * Created by owen on 2021/8/4 0004 11:59
+ * 重算信息表
+ */
+@Document(collection = "t_recount_info")
+@Data
+public class RecountInfoEntity extends BaseEntity {
+
+    private String sceneCode;
+}

+ 22 - 22
laser/src/main/java/com/fdkankan/indoor/core/entity/SiteEntity.java

@@ -1,22 +1,22 @@
-package com.fdkankan.indoor.core.entity;
-
-import com.fdkankan.indoor.core.entity.dto.SiteDto;
-import lombok.Data;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.util.List;
-
-/**
- * Created by owen on 2021/7/27 0027 10:42
- * 这个要改回siteModel
- */
-@Document(collection = "t_site_model")
-@Data
-public class SiteEntity extends BaseEntity {
-
-    private String sceneCode;
-
-    private List<SiteDto> data;
-
-
-}
+//package com.fdkankan.indoor.core.entity;
+//
+//import com.fdkankan.indoor.core.entity.dto.SiteDto;
+//import lombok.Data;
+//import org.springframework.data.mongodb.core.mapping.Document;
+//
+//import java.util.List;
+//
+///**
+// * Created by owen on 2021/7/27 0027 10:42
+// * 这个要改回siteModel
+// */
+////@Document(collection = "t_site_model")
+////@Data
+////public class SiteEntity extends BaseEntity {
+////
+//////    private String sceneCode;
+////
+////    private List<SiteDto> data;
+////
+////
+////}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/SiteModelEntity.java

@@ -15,7 +15,7 @@ import java.util.List;
 @Data
 public class SiteModelEntity extends BaseEntity {
 
-    private String sceneCode;
+//    private String sceneCode;
 
 //    private List<PoiHotDto> data;
     private List<SiteDto> data;

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/SpecialPointEntity.java

@@ -20,7 +20,7 @@ public class SpecialPointEntity extends BaseEntity {
     // 特殊点
     private Double[] poi;
 
-    // 场景码
+    // 场景码, 这个一定要场景码, 多条记录
     private String sceneCode;
 
     // key

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/ConfigMapper.java

@@ -11,5 +11,5 @@ import org.springframework.stereotype.Component;
 @Component
 public interface ConfigMapper extends MongoRepository<ConfigEntity, String> {
 
-    ConfigEntity findBySceneCode(String sceneCode);
+//    ConfigEntity findBySceneCode(String sceneCode);
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiMapper.java

@@ -10,5 +10,5 @@ import org.springframework.stereotype.Component;
 @Component
 public interface PoiMapper extends MongoRepository<PoiEntity, String> {
 
-    PoiEntity findBySceneCode(String sceneCode);
+//    PoiEntity findBySceneCode(String sceneCode);
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeGroupMapper.java

@@ -11,5 +11,5 @@ import org.springframework.stereotype.Component;
 @Component
 public interface PoiTypeGroupMapper extends MongoRepository<PoiTypeGroupEntity, String> {
 
-    PoiTypeGroupEntity findBySceneCode(String sceneCode);
+//    PoiTypeGroupEntity findBySceneCode(String sceneCode);
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeMapper.java

@@ -10,5 +10,5 @@ import org.springframework.stereotype.Component;
 @Component
 public interface PoiTypeMapper extends MongoRepository<PoiTypeEntity, String> {
 
-    PoiTypeEntity findBySceneCode(String sceneCode);
+//    PoiTypeEntity findBySceneCode(String sceneCode);
 }

+ 13 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/RecountInfoMapper.java

@@ -0,0 +1,13 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.RecountInfoEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface RecountInfoMapper extends MongoRepository<RecountInfoEntity, String> {
+
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/SiteModelMapper.java

@@ -10,5 +10,5 @@ import org.springframework.stereotype.Component;
 @Component
 public interface SiteModelMapper extends MongoRepository<SiteModelEntity, String> {
 
-    SiteModelEntity findBySceneCode(String sceneCode);
+//    SiteModelEntity findBySceneCode(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/SpecialPointMapper.java

@@ -11,4 +11,6 @@ import org.springframework.stereotype.Component;
 public interface SpecialPointMapper extends MongoRepository<SpecialPointEntity, String> {
 
     SpecialPointEntity findBySceneCodeAndPoiKey(String sceneCode, String poiKey);
+
+    void deleteBySceneCode(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/ConfigService.java

@@ -8,4 +8,6 @@ import com.fdkankan.indoor.core.entity.DataSetEntity;
  */
 public interface ConfigService {
     void save(ConfigEntity entity);
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/ControlPointService.java

@@ -14,4 +14,6 @@ public interface ControlPointService {
     ControlPointEntity findById(String id);
 
     Result unInitList();
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/DataSetService.java

@@ -15,4 +15,6 @@ public interface DataSetService {
     Result getDataSet(String sceneCode);
 
     Result update(String sceneCode, List<DataSetPo> param);
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/FilterService.java

@@ -18,4 +18,6 @@ public interface FilterService {
     Result query(String code, FilterQueryDto param);
 
     Result update(String sceneCode, List<FilterHotDto> param);
+
+    void remove(String sceneCode);
 }

+ 7 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/InitService.java

@@ -9,11 +9,17 @@ import java.util.List;
  * Created by owen on 2021/7/28 0028 9:10
  */
 public interface InitService {
-    Result initData(String sceneCode, String path);
+    Result initData(String sceneCode, String path, String from);
 
     void initDataStep2(String sceneCode);
 
     List<InitEntity> findByStatus(Integer status);
 
     InitEntity findById(String id);
+
+    void initRemove(String sceneCode);
+
+    Result initRecount(String sceneCode);
+
+    Result testRemove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/MapService.java

@@ -14,4 +14,6 @@ public interface MapService {
     Result getTiledMap(String sceneCode);
 
     Result init(String sceneCode, MapDto param);
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/PoiService.java

@@ -22,4 +22,6 @@ public interface PoiService {
 
 
     void save(PoiEntity entity);
+
+    void remove(String sceneCode);
 }

+ 3 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeGroupService.java

@@ -14,7 +14,9 @@ public interface PoiTypeGroupService {
 
     Result poiTypes(String sceneCode);
 
-    Result remove(String sceneCode, Integer id);
+    Result removeByDataId(String sceneCode, Integer id);
+
+    void remove(String sceneCode);
 
     void save(PoiTypeGroupEntity entity);
 }

+ 3 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeService.java

@@ -15,10 +15,12 @@ public interface PoiTypeService {
 
     Result poiTypes(String sceneCode);
 
-    Result remove(String sceneCode, Integer id);
+    Result removeByDataId(String sceneCode, Integer id);
 
     void removeByPoiTypeGroupId(String sceneCode, Integer poiTypeGroupId);
 
+    void remove(String sceneCode);
+
     Result upload(String sceneCode, MultipartFile file);
 
     PoiTypeDto findBySceneCodeAndPoiTypeId(String sceneCode, Integer poiTypeId);

+ 12 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/RecountInfoService.java

@@ -0,0 +1,12 @@
+package com.fdkankan.indoor.core.service;
+
+
+import com.fdkankan.indoor.core.entity.RecountInfoEntity;
+
+/**
+ * Created by owen on 2021/7/28 0028 20:05
+ */
+public interface RecountInfoService {
+
+    void save(RecountInfoEntity infoEntity);
+}

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/RouteService.java

@@ -11,4 +11,6 @@ public interface RouteService {
     void save(RouteEntity entity);
 
     Result getRoute(String sceneCode, RouteInputDto param);
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/SiteService.java

@@ -20,4 +20,6 @@ public interface SiteService {
     Result getData(JSONObject param, String sceneCode);
 
     void save(SiteModelEntity entity);
+
+    void remove(String sceneCode);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/SpecialPointService.java

@@ -10,4 +10,6 @@ public interface SpecialPointService {
     void save(SpecialPointEntity param);
 
     SpecialPointEntity findBySceneCodeAndPoiKey(String sceneCode, String poiKey);
+
+    void remove(String sceneCode);
 }

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/ConfigServiceImpl.java

@@ -21,4 +21,9 @@ public class ConfigServiceImpl implements ConfigService {
     public void save(ConfigEntity entity) {
         entityMapper.save(entity);
     }
+
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
 }

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/ControlPointServiceImpl.java

@@ -73,4 +73,9 @@ public class ControlPointServiceImpl implements ControlPointService {
         List<InitEntity> list = initService.findByStatus(status);
         return Result.success(list);
     }
+
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
 }

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/DataSetServiceImpl.java

@@ -87,6 +87,11 @@ public class DataSetServiceImpl extends IBaseServiceImpl implements DataSetServi
         return Result.success(auth(sceneCode).getData());
     }
 
+    @Override
+    public void remove(String sceneCode) {
+        dataSetMapper.deleteById(sceneCode);
+    }
+
     /**
      * 处理是否登录问题
      * @param sceneCode

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/FilterServiceImpl.java

@@ -201,6 +201,11 @@ public class FilterServiceImpl implements FilterService {
         return Result.success();
     }
 
+    @Override
+    public void remove(String sceneCode) {
+        filterMapper.deleteById(sceneCode);
+    }
+
 
     /**
      *   处理step step的值会有影响

+ 124 - 25
laser/src/main/java/com/fdkankan/indoor/core/service/impl/InitServiceImpl.java

@@ -80,24 +80,44 @@ public class InitServiceImpl implements InitService {
     @Autowired
     ConfigConstant configConstant;
 
+    @Autowired
+    MapService mapService;
+
+    @Autowired
+    RecountInfoService recountInfoService;
+
     /**
      * initDataStep1
      * 有顺序分,不能乱
      * @param sceneCode
      * @param path
+     * @param from:age  四维看看重算,其他:手动重算
+     *
      * @return
      */
     @Override
-    public Result initData(String sceneCode, String path) {
+    public Result initData(String sceneCode, String path, String from) {
 
         if (StrUtil.isAllEmpty(sceneCode) || StrUtil.isAllEmpty(path)) {
             return Result.failure("场景码或路径不能为空");
         }
 
-        path = "/laserData";
+        // 防止为四维看看重复调用重算
+        if ("age".equals(from)){
+            InitEntity init = this.findById(sceneCode);
+            if (init != null){
+                log.error("场景:[{}] 已存在,不需要重算", sceneCode);
+                return Result.success();
+            }
+        }
+
+
+
+        String laserDataPath = path + "/laserData";
+        log.info("laserDataPath: {}", laserDataPath);
 
         // step1 创建t_route表
-        createRoute(sceneCode, path);
+        createRoute(sceneCode, laserDataPath);
 
         // step3 创建poi表, 热点,默认没有
         createPoi(sceneCode);
@@ -115,7 +135,7 @@ public class InitServiceImpl implements InitService {
         copyDefault(sceneCode);
 
 
-        // step8 替换index.html、/locat/addDataSet.html的场景码, @replace
+         //step8 替换index.html、/locat/addDataSet.html的场景码, @replace
         replaceHtml(sceneCode);
 
 
@@ -136,6 +156,7 @@ public class InitServiceImpl implements InitService {
     /**
      * 需要控制点,才能完成以下操作
      *
+     *
      * @param sceneCode
      */
     @Override
@@ -148,15 +169,17 @@ public class InitServiceImpl implements InitService {
         }
 
         String path = init.getPath();
+        String laserDataPath = path + "/laserData";
+        log.info("laserDataPath: {}", laserDataPath);
 
         // step:0 获取控制点
         ControlPointEntity controlPoint = getControlPoint(sceneCode);
 
-        // step1: 处理vision.txt 创建filter表, 处理firstView
-        createFilter(sceneCode, path, controlPoint);
+        // step1: 处理vision.txt 创建filter表, 处理特殊点:firstView
+        createFilter(sceneCode, laserDataPath, controlPoint);
 
         // step2 处理could.js 创建site_model, 处理原点、中心点、最大点、最小点
-        processCould(sceneCode, path, controlPoint);
+        processCould(sceneCode, laserDataPath, controlPoint);
 
         // step6 创建t_configs表 , 需要firstView;
         createConfig(sceneCode);
@@ -166,7 +189,7 @@ public class InitServiceImpl implements InitService {
 
 
         // step8 目录pano、pano_depth、webcloud上传oss,
-        ossUploadDir(sceneCode, path);
+        ossUploadDir(sceneCode, laserDataPath);
 
         // 更新 initDataStep2 状态
         init.setUpdateTime(LocalDateTime.now());
@@ -175,6 +198,44 @@ public class InitServiceImpl implements InitService {
         log.info("initDataStep_2处理完成");
     }
 
+
+    /**
+     * 重算场景
+     * @param sceneCode
+     * @return
+     */
+    @Override
+    public Result initRecount(String sceneCode) {
+        InitEntity entity = this.findById(sceneCode);
+
+        // 删除旧数据
+        this.initRemove(sceneCode);
+
+
+        // 重新初始化数据
+        // 处理一下地址
+        String path = entity.getPath();
+//        path = path.replaceAll("/laserData", "");
+        log.info("path: {}", path);
+        this.initData(sceneCode, path, null);
+
+        // 更新重算
+        Integer recount = entity.getRecount();
+        recount = recount == null ? 1 : recount;
+        entity.setRecount(recount);
+        entity.setUpdateTime(LocalDateTime.now());
+        initMapper.save(entity);
+
+        // 记录重算日志
+        RecountInfoEntity infoEntity = new RecountInfoEntity();
+        infoEntity.setId(SnowFlakeUUidUtils.getUuid("RI"));
+        infoEntity.setSceneCode(sceneCode);
+        infoEntity.setCreateTime(LocalDateTime.now());
+        recountInfoService.save(infoEntity);
+
+        return Result.success();
+    }
+
     /**
      * 替换两个文件的c 换成场景码
      * index.html
@@ -191,7 +252,9 @@ public class InitServiceImpl implements InitService {
 
         String indexStr = cn.hutool.core.io.FileUtil.readUtf8String(indexPath);
         String dataSetStr = cn.hutool.core.io.FileUtil.readUtf8String(addDateSetPath);
-
+        if (!indexStr.contains("@replace")) {
+            throw new BaseRuntimeException(MsgCode.e3001, "index.html不包含默认值, 请查看default文件是否正确");
+        }
         indexStr = indexStr.replaceAll("@replace", sceneCode);
         dataSetStr = dataSetStr.replaceAll("@replace", sceneCode);
 
@@ -232,8 +295,39 @@ public class InitServiceImpl implements InitService {
         return optional.get();
     }
 
+    @Override
+    public void initRemove(String sceneCode) {
+        // 真删除数据初始化数据
+
+        filterService.remove(sceneCode);
+        poiService.remove(sceneCode);
+        poiTypeService.remove(sceneCode);
+        poiTypeGroupService.remove(sceneCode);
+        siteService.remove(sceneCode);
+        configService.remove(sceneCode);
+        controlPointService.remove(sceneCode);
+        dataSetService.remove(sceneCode);
+        mapService.remove(sceneCode);
+        routeService.remove(sceneCode);
+        specialPointService.remove(sceneCode);
+        log.info("删除初始化数据完成");
+
+    }
+
+
+
+    @Override
+    public Result testRemove(String sceneCode) {
+        this.initRemove(sceneCode);
+        return Result.success();
+    }
+
+
     private void createFilter(String sceneCode, String path, ControlPointEntity dto){
         path = path +"/vision.txt";
+        if (!cn.hutool.core.io.FileUtil.isFile(path)){
+            throw new BaseRuntimeException(MsgCode.e3001, "vision.txt不存在");
+        }
         JSONArray jsonArray = convertToPanoInfoFor4dkk.createFilter(sceneCode, path, dto);
         FilterEntity entity = new FilterEntity();
         entity.setId(sceneCode);
@@ -345,8 +439,8 @@ public class InitServiceImpl implements InitService {
         System.out.println();
 
         SiteModelEntity entity = new SiteModelEntity();
-        entity.setId(SnowFlakeUUidUtils.getUuid("SM"));
-        entity.setSceneCode(sceneCode);
+//        entity.setId(SnowFlakeUUidUtils.getUuid("SM"));
+        entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         // 默认热点为空
         entity.setData(siteModels);
@@ -393,8 +487,8 @@ public class InitServiceImpl implements InitService {
 
     private void createPoi(String sceneCode){
         PoiEntity entity = new PoiEntity();
-        entity.setId(SnowFlakeUUidUtils.getUuid("PO"));
-//        entity.setId(sceneCode);
+//        entity.setId(SnowFlakeUUidUtils.getUuid("PO"));
+        entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         // 默认热点为空
         entity.setData(new ArrayList<>());
@@ -406,8 +500,8 @@ public class InitServiceImpl implements InitService {
 
     private void createPoiType(String sceneCode){
         PoiTypeEntity entity = new PoiTypeEntity();
-        entity.setId(SnowFlakeUUidUtils.getUuid("PT"));
-        entity.setSceneCode(sceneCode);
+//        entity.setId(SnowFlakeUUidUtils.getUuid("PT"));
+        entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         // 读取初始文件
         String resourceContent = MyFileUtils.getResourceContent("data/poi_type.json");
@@ -419,8 +513,8 @@ public class InitServiceImpl implements InitService {
 
     private void createPoiTypeGroup(String sceneCode){
         PoiTypeGroupEntity entity = new PoiTypeGroupEntity();
-        entity.setId(SnowFlakeUUidUtils.getUuid("PG"));
-        entity.setSceneCode(sceneCode);
+//        entity.setId(SnowFlakeUUidUtils.getUuid("PG"));
+        entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         // 读取初始文件
         String resourceContent = MyFileUtils.getResourceContent("data/poi_type.json");
@@ -438,6 +532,9 @@ public class InitServiceImpl implements InitService {
         entity.setUpdateTime(LocalDateTime.now());
         // 设置原点坐标,通过场景码查询特殊点表的原点
         SpecialPointEntity sp = specialPointService.findBySceneCodeAndPoiKey(sceneCode, TypeConstant.POI_ORIGIN);
+        if (sp == null) {
+            throw new BaseRuntimeException(MsgCode.e3001, "没有找到原点坐标");
+        }
         Double[] poi = sp.getPoi();
 //        JSONObject dataSet = ModifyDataSets.createDataSet(poi);
         DataSetPo po = ModifyDataSets.createDataSetPo(poi);
@@ -471,8 +568,8 @@ public class InitServiceImpl implements InitService {
 
 
         ConfigEntity entity = new ConfigEntity();
-        entity.setId(SnowFlakeUUidUtils.getUuid("CF"));
-        entity.setSceneCode(sceneCode);
+//        entity.setId(SnowFlakeUUidUtils.getUuid("CF"));
+        entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         entity.setData(resData);
         configService.save(entity);
@@ -486,28 +583,30 @@ public class InitServiceImpl implements InitService {
      */
     private void createRoute(String sceneCode, String path){
         List<String> list = new ArrayList<>();
-        try {
+//
             String routePath = path + "/final_freespace.csv";
-            if (!cn.hutool.core.io.FileUtil.exist(routePath)){
+            log.info("routePath: {}", routePath);
+            if (!cn.hutool.core.io.FileUtil.isFile(routePath)){
                 log.info("输入路径有误, path: {}", routePath);
                 throw new BaseRuntimeException(MsgCode.e3001, "final_freespace.csv路径有误,文件不存在");
             }
+        try {
             list = FileUtil.readFileByLines2(routePath);
-
             RouteEntity entity = new RouteEntity();
-//            entity.setId(SnowFlakeUUidUtils.getUuid("RT"));
             entity.setId(sceneCode);
-//            entity.setSceneCode(sceneCode);
             entity.setUpdateTime(LocalDateTime.now());
             entity.setData(list);
             routeService.save(entity);
             log.info(" Route数据初始化创建完成");
-
         } catch (Exception e) {
             e.printStackTrace();
         }
 
 
+
+//
+
+
     }
 
     private ControlPointEntity getControlPoint(String sceneCode){

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/MapServiceImpl.java

@@ -95,6 +95,11 @@ public class MapServiceImpl extends IBaseServiceImpl implements MapService {
         return Result.success();
     }
 
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
+
     /**
      * 初始化小地图数据
      * @param sceneCode

+ 32 - 16
laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiServiceImpl.java

@@ -1,7 +1,10 @@
 package com.fdkankan.indoor.core.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.indoor.base.constant.MsgCode;
+import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.PoiTypeEntity;
 import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
 import com.fdkankan.indoor.core.entity.dto.PoiSearchDto;
 import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
@@ -37,6 +40,11 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
     @Autowired
     PoiMapper entityMapper;
 
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
+
 
     @Override
     public Result findBySceneCodeAndId(String code, Integer id) {
@@ -56,7 +64,7 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
 
     @Override
     public void save(PoiEntity entity) {
-        entityMapper.insert(entity);
+        entityMapper.save(entity);
 
     }
 
@@ -84,7 +92,7 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
 
     @Override
     public Result saveHot(String sceneCode, List<PoiHotDto> param) {
-        PoiEntity entity = findBySceneCode(sceneCode);
+        PoiEntity entity = findById(sceneCode);
         List<PoiHotDto> data = entity.getData();
 
         Integer maxId;
@@ -127,7 +135,7 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
         // 更新后数据保存数据库
         entity.setData(data);
 
-        update(entity);
+        save(entity);
 
         return Result.success(findDataBySceneCode(sceneCode));
     }
@@ -147,26 +155,34 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
         return Result.success(changeSecurityUnLoginList(data));
     }
 
-    private void update(PoiEntity vo){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
-        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiEntity.class,"t_poi");
+//    private void update(PoiEntity vo){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
+//        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiEntity.class,"t_poi");
+//
+//    }
 
-    }
 
+//    private PoiEntity findBySceneCode(String sceneCode){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+//        PoiEntity vo = mongoTemplate.findOne(query, PoiEntity.class, "t_poi");
+//        if (vo == null) {
+//            throw new RuntimeException("没有此场景数据");
+//        }
+//        return vo;
+//    }
 
-    private PoiEntity findBySceneCode(String sceneCode){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-        PoiEntity vo = mongoTemplate.findOne(query, PoiEntity.class, "t_poi");
-        if (vo == null) {
-            throw new RuntimeException("没有此场景数据");
+    private PoiEntity findById(String sceneCode){
+        Optional<PoiEntity> optional = entityMapper.findById(sceneCode);
+        if (!optional.isPresent()){
+            throw new BaseRuntimeException(MsgCode.e3001,  "Poi数据不存在");
         }
-        return vo;
+        return optional.get();
     }
 
     private List<PoiHotDto> findDataBySceneCode(String sceneCode){
-        PoiEntity entity = findBySceneCode(sceneCode);
+        PoiEntity entity = findById(sceneCode);
         return entity.getData();
     }
 

+ 40 - 22
laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiTypeGroupServiceImpl.java

@@ -1,6 +1,9 @@
 package com.fdkankan.indoor.core.service.impl;
 
+import com.fdkankan.indoor.base.constant.MsgCode;
+import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.PoiEntity;
 import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
 import com.fdkankan.indoor.core.entity.dto.PoiTypeGroupDto;
 import com.fdkankan.indoor.core.entity.PoiTypeGroupEntity;
@@ -36,9 +39,19 @@ public class PoiTypeGroupServiceImpl implements PoiTypeGroupService {
     @Autowired
     PoiTypeGroupMapper entityMapper;
 
+
+
+    private PoiTypeGroupEntity findById(String sceneCode){
+        Optional<PoiTypeGroupEntity> optional = entityMapper.findById(sceneCode);
+        if (!optional.isPresent()){
+            throw new BaseRuntimeException(MsgCode.e3001,  "PoiTypeGroup数据不存在");
+        }
+        return optional.get();
+    }
+
     @Override
     public Result edit(String sceneCode, List<PoiTypeGroupDto> param) {
-        PoiTypeGroupEntity entity = findBySceneCode(sceneCode);
+        PoiTypeGroupEntity entity = findById(sceneCode);
         List<PoiTypeGroupDto> data = entity.getData();
         // 最大id
         Integer maxId;
@@ -73,28 +86,28 @@ public class PoiTypeGroupServiceImpl implements PoiTypeGroupService {
         // 更新后数据保存数据库
         entity.setData(data);
 
-        update(entity);
+        save(entity);
 
         return Result.success(findDataBySceneCode(sceneCode));
     }
 
     private List<PoiTypeGroupDto> findDataBySceneCode(String sceneCode){
-        PoiTypeGroupEntity entity = findBySceneCode(sceneCode);
+        PoiTypeGroupEntity entity = findById(sceneCode);
         return entity.getData();
     }
 
 
 
 
-    private PoiTypeGroupEntity findBySceneCode(String sceneCode){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-        PoiTypeGroupEntity entity = mongoTemplate.findOne(query, PoiTypeGroupEntity.class, "t_poi_type_groups");
-        if (entity == null) {
-            throw new RuntimeException("没有此场景数据");
-        }
-        return entity;
-    }
+//    private PoiTypeGroupEntity findBySceneCode(String sceneCode){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+//        PoiTypeGroupEntity entity = mongoTemplate.findOne(query, PoiTypeGroupEntity.class, "t_poi_type_groups");
+//        if (entity == null) {
+//            throw new RuntimeException("没有此场景数据");
+//        }
+//        return entity;
+//    }
 
     @Override
     public Result poiTypes(String sceneCode) {
@@ -102,13 +115,13 @@ public class PoiTypeGroupServiceImpl implements PoiTypeGroupService {
     }
 
     @Override
-    public Result remove(String sceneCode, Integer id) {
-        PoiTypeGroupEntity vo = findBySceneCode(sceneCode);
+    public Result removeByDataId(String sceneCode, Integer id) {
+        PoiTypeGroupEntity vo = findById(sceneCode);
         List<PoiTypeGroupDto> data = vo.getData();
         List<PoiTypeGroupDto> collect = data.stream().filter(p -> !id.equals(p.getId())).collect(Collectors.toList());
 
         vo.setData(collect);
-        update(vo);
+        save(vo);
 
         // 删除关联id
         poiTypeService.removeByPoiTypeGroupId(sceneCode, id);
@@ -117,16 +130,21 @@ public class PoiTypeGroupServiceImpl implements PoiTypeGroupService {
     }
 
     @Override
-    public void save(PoiTypeGroupEntity entity) {
-        entityMapper.insert(entity);
-
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
     }
 
-    private void update(PoiTypeGroupEntity vo){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
-        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiTypeGroupEntity.class,"t_poi_type_groups");
+    @Override
+    public void save(PoiTypeGroupEntity entity) {
+        entityMapper.save(entity);
 
     }
 
+//    private void update(PoiTypeGroupEntity vo){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
+//        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiTypeGroupEntity.class,"t_poi_type_groups");
+//
+//    }
+
 }

+ 41 - 24
laser/src/main/java/com/fdkankan/indoor/core/service/impl/PoiTypeServiceImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fdkankan.indoor.base.constant.ConfigConstant;
+import com.fdkankan.indoor.base.constant.MsgCode;
+import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
 import com.fdkankan.indoor.core.entity.dto.PoiTypeGroupDto;
@@ -43,7 +45,7 @@ public class PoiTypeServiceImpl implements PoiTypeService {
 
     @Override
     public Result edit(String sceneCode, List<PoiTypeDto> param) {
-        PoiTypeEntity vo = findBySceneCode(sceneCode);
+        PoiTypeEntity vo = findById(sceneCode);
         List<PoiTypeDto> data = vo.getData();
 
         Integer maxId;
@@ -83,7 +85,8 @@ public class PoiTypeServiceImpl implements PoiTypeService {
         // 更新后数据保存数据库
         vo.setData(data);
 
-        update(vo);
+//        update(vo);
+        save(vo);
 
         return Result.success(findDataBySceneCode(sceneCode));
     }
@@ -91,32 +94,40 @@ public class PoiTypeServiceImpl implements PoiTypeService {
 
     @Override
     public void save(PoiTypeEntity entity) {
-        entityMapper.insert(entity);
+        entityMapper.save(entity);
 
     }
 
 
-    private PoiTypeEntity findBySceneCode(String sceneCode){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-        PoiTypeEntity vo = mongoTemplate.findOne(query, PoiTypeEntity.class, "t_poi_types");
-        if (vo == null) {
-            throw new RuntimeException("没有此场景数据");
-        }
-
-        return vo;
-    }
+//    private PoiTypeEntity findBySceneCode(String sceneCode){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+//        PoiTypeEntity vo = mongoTemplate.findOne(query, PoiTypeEntity.class, "t_poi_types");
+//        if (vo == null) {
+//            throw new RuntimeException("没有此场景数据");
+//        }
+//
+//        return vo;
+//    }
 
     private List<PoiTypeDto> findDataBySceneCode(String sceneCode){
-        PoiTypeEntity entity = findBySceneCode(sceneCode);
+        PoiTypeEntity entity = findById(sceneCode);
         return entity.getData();
     }
 
-    private void update(PoiTypeEntity vo){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
-        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiTypeEntity.class,"t_poi_types");
-
+//    private void update(PoiTypeEntity vo){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(vo.getSceneCode()));
+//        mongoTemplate.upsert(query, Update.update("data", vo.getData()),  PoiTypeEntity.class,"t_poi_types");
+//
+//    }
+
+    private PoiTypeEntity findById(String sceneCode){
+        Optional<PoiTypeEntity> optional = entityMapper.findById(sceneCode);
+        if (!optional.isPresent()){
+            throw new BaseRuntimeException(MsgCode.e3001,  "poiType数据不存在");
+        }
+        return optional.get();
     }
 
 
@@ -127,23 +138,29 @@ public class PoiTypeServiceImpl implements PoiTypeService {
     }
 
     @Override
-    public Result remove(String sceneCode, Integer id) {
-        PoiTypeEntity entity = findBySceneCode(sceneCode);
+    public Result removeByDataId(String sceneCode, Integer id) {
+        PoiTypeEntity entity = findById(sceneCode);
         List<PoiTypeDto> voList = entity.getData();
                 List<PoiTypeDto> collect = voList.stream().filter(p -> !id.equals(p.getId())).collect(Collectors.toList());
         entity.setData(collect);
-        update(entity);
+        save(entity);
 
         return Result.success();
     }
 
     @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
+
+
+    @Override
     public void removeByPoiTypeGroupId(String sceneCode, Integer poiTypeGroupId) {
-        PoiTypeEntity entity = findBySceneCode(sceneCode);
+        PoiTypeEntity entity = findById(sceneCode);
         List<PoiTypeDto> data = entity.getData();
         List<PoiTypeDto> collect = data.stream().filter(p -> !p.getPoi_type_group_id().equals(poiTypeGroupId)).collect(Collectors.toList());
         entity.setData(collect);
-        update(entity);
+        save(entity);
     }
 
     @Override

+ 25 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/RecountInfoServiceImpl.java

@@ -0,0 +1,25 @@
+package com.fdkankan.indoor.core.service.impl;
+
+import com.fdkankan.indoor.core.entity.RecountInfoEntity;
+import com.fdkankan.indoor.core.mapper.RecountInfoMapper;
+import com.fdkankan.indoor.core.service.RecountInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by owen on 2021/7/28 0028 20:05
+ */
+@Service
+@Slf4j
+public class RecountInfoServiceImpl implements RecountInfoService {
+
+    @Autowired
+    RecountInfoMapper entityMapper;
+
+
+    @Override
+    public void save(RecountInfoEntity infoEntity) {
+        entityMapper.save(infoEntity);
+    }
+}

+ 5 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/RouteServiceImpl.java

@@ -47,6 +47,11 @@ public class RouteServiceImpl implements RouteService {
         return Result.success(route);
     }
 
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
+    }
+
     private RouteEntity findBySceneCode(String sceneCode){
         Optional<RouteEntity> optional = entityMapper.findById(sceneCode);
         if (!optional.isPresent()) {

+ 0 - 410
laser/src/main/java/com/fdkankan/indoor/core/service/impl/SiteModelServiceImpl.java

@@ -1,410 +0,0 @@
-//package com.fdkankan.indoor.core.service.impl;
-//
-//import com.alibaba.fastjson.JSON;
-//import com.alibaba.fastjson.JSONObject;
-//import com.fdkankan.indoor.base.util.GisUtils;
-//import com.fdkankan.indoor.base.util.JsonUtil;
-//import com.fdkankan.indoor.base.util.Result;
-//import com.fdkankan.indoor.core.entity.dto.SiteModelSearchDto;
-//import com.fdkankan.indoor.core.entity.SiteModelEntity;
-//import com.fdkankan.indoor.core.entity.siteModel.Polygon;
-//import com.fdkankan.indoor.core.entity.siteModel.SiteModel;
-//import com.fdkankan.indoor.core.mapper.SiteModelMapper;
-//import com.fdkankan.indoor.core.service.SiteModelService;
-//import com.fdkankan.indoor.core.entity.vo.BaseVo;
-//import lombok.AllArgsConstructor;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.BeanUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.data.mongodb.core.MongoTemplate;
-//import org.springframework.data.mongodb.core.query.Criteria;
-//import org.springframework.data.mongodb.core.query.Query;
-//import org.springframework.stereotype.Service;
-//import org.springframework.util.CollectionUtils;
-//
-//import java.awt.geom.Point2D;
-//import java.util.ArrayList;
-//import java.util.HashSet;
-//import java.util.List;
-//import java.util.Set;
-//import java.util.stream.Collectors;
-//
-///**
-// * @author Admin
-// */
-//@Service
-//@Slf4j
-//@AllArgsConstructor
-//public class SiteModelServiceImpl implements SiteModelService {
-//
-//    private final MongoTemplate mongoTemplate;
-//
-//    @Autowired
-//    SiteModelMapper entityMapper;
-//
-//    private SiteModelEntity findBySceneCode_5(String sceneCode){
-//        Query query = new Query();
-//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-//        SiteModelEntity vo = mongoTemplate.findOne(query, SiteModelEntity.class, "t_site_model");
-//        return vo;
-//    }
-//
-//
-//    @Override
-//    public Result withinType_5(String code, Double[] location, String type) {
-//
-//        return null;
-//    }
-//
-//    @Override
-//    public void save(SiteModelEntity entity) {
-//        entityMapper.insert(entity);
-//    }
-//
-//
-//    /**************************************************************************************************/
-//
-//
-//    @Override
-//    public Result withinType(String code, Double[] location, String type) {
-//        log.info("code: {}", code);
-//        log.info("location: {}", location);
-//        log.info("code: {}", type);
-//
-//        // 总对象
-//        List<SiteModel> models = new ArrayList<>();
-//
-//        SiteModel siteModel = findBySceneCode(code);
-//        // copy实体对象
-//        SiteModel newSiteModel = copyModelNotContainChildren(siteModel);
-//        // 做为父节点的低一条
-//        models.add(newSiteModel);
-//        if (!CollectionUtils.isEmpty(siteModel.getChildren())) {
-//            organizeModels2(siteModel, models);
-//        }
-//
-//
-//        // 按type封装成对象数组
-//        List<SiteModel> resultList = new ArrayList<>();
-//        SiteModel result = null;
-//
-//        Point2D.Double pointParam = new Point2D.Double(location[0], location[1]);
-//        log.info("pointParam: {}", pointParam);
-//        if ("BUILDING".equals(type)) {
-//             resultList =  models.stream().filter(data -> "BUILDING".equals(data.getType())).collect(Collectors.toList());
-//            result = resultList.stream().filter(sm -> getSm(sm, pointParam)).findAny()
-//                    .orElseThrow(() -> new RuntimeException("没有找到符合多边形的点"));
-//        } else if ("FLOOR".equals(type)) {
-//            resultList =  models.stream().filter(data -> "FLOOR".equals(data.getType())).collect(Collectors.toList());
-//            log.info("resultList.size: {}", resultList.size());
-//
-//            result = resultList.stream().filter(sm -> getSmByFloor(sm, pointParam)).findAny().orElseThrow(() -> new RuntimeException("没有找到符合多边形的点"));
-//        } else if ("ROOM".equals(type)) {
-//            resultList =  models.stream().filter(data -> "ROOM".equals(data.getType())).collect(Collectors.toList());
-//            result = resultList.stream().filter(sm -> getSm(sm, pointParam)).findAny()
-//                    .orElseThrow(() -> new RuntimeException("没有找到符合多边形的点"));
-//            // type为空,返回全部数据
-//        } else {
-//            resultList =  models.stream().filter(data -> "ROOM".equals(data.getType())).collect(Collectors.toList());
-//            result = resultList.stream().filter(sm -> getSm(sm, pointParam)).findAny()
-//                    .orElseThrow(() -> new RuntimeException("没有找到符合多边形的点"));
-//
-//            List<SiteModel> roomChildren = new ArrayList<>();
-//            roomChildren.add(result);
-//            siteModel.setChildren(roomChildren);
-//            result = siteModel;
-//        }
-//
-//        log.info("result: {}", result);
-//        ArrayList<Object> list = new ArrayList<>();
-//        list.add(result);
-//        return Result.success(list);
-//
-//    }
-//
-//
-//    /**
-//     * 2021-07-20
-//     * 根据场景码查询对象
-//     *
-//     * 2021-07-28 目前表存的数据结构是对象, 正确应该是数组
-//     * 返回结果对象也是一个数组
-//     * @param sceneCode
-//     * @return
-//     */
-//    private SiteModel findBySceneCode(String sceneCode){
-//        Query query = new Query();
-//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-//        BaseVo vo = mongoTemplate.findOne(query, BaseVo.class, "t_site_model");
-//        log.info("vo: {}", vo);
-//        Object data = vo.getData();
-//        String s = JSON.toJSONString(data);
-//        SiteModel siteModel = JSONObject.parseObject(s, SiteModel.class);
-//        return siteModel;
-//    }
-//
-//    @Override
-//    public SiteModel findById(Long id, String code) {
-//
-//        SiteModel siteModel = findBySceneCode(code);
-//        return siteModel;
-//    }
-//
-//    @Override
-//    public Result getData(JSONObject param, String code) {
-//        String type = param.getString("type");
-//        if (!"BUILDING".equals(type)) {
-//            throw new RuntimeException("非BUILDING类型");
-//        }
-//
-//
-//        SiteModel siteModel = findBySceneCode(code);
-//
-//        if (siteModel != null) {
-//            siteModel.setChildren(new ArrayList<>());
-//            return Result.success(siteModel);
-//        }
-//
-//        return Result.success();
-//    }
-//
-//    @Override
-//    public Result search(String sceneCode, SiteModelSearchDto searchDto) {
-//        SiteModel siteModel = findBySceneCode(sceneCode);
-//
-//        List<SiteModel> loopModel = getLoopModel(siteModel);
-//        String searchKey = searchDto.getQuery();
-//        Integer size = searchDto.getSize();
-//        size = size==null?10: size;
-//        List<SiteModel> collect = loopModel.stream().filter(p -> getContent(p, searchKey)).limit(size).collect(Collectors.toList());
-//        log.info("返回collect数量: {}", collect.size());
-//
-//        // 映射实体名称
-//        List<Object> result = ormSiteModel(collect);
-//
-//        return Result.success(result);
-//    }
-//
-//    @Override
-//    public Result latest(String sceneCode, Double[] location, Double radius) {
-//        SiteModel siteModel = findBySceneCode(sceneCode);
-//
-//        // 递归为对象
-//        List<SiteModel> loopModel = getLoopModel(siteModel);
-//
-//        // 获取点在多边形的集合
-//        List<SiteModel> result = loopModel.stream().filter(p -> pointIsArea(location, p)).collect(Collectors.toList());
-//
-//        log.info("没有父级的数量:{}", result.size());
-//        // 将父级有parenId的对象添加到result
-//        addSiteMode(loopModel, result);
-//        log.info("添加父级后的数量:{}", result.size());
-//
-//
-//        return Result.success(loopModel);
-//    }
-//
-//    @Override
-//    public Result testData(String sceneCode) {
-//        SiteModel SiteModel = findBySceneCode(sceneCode);
-//        return Result.success(SiteModel);
-//    }
-//
-//
-//    /**
-//     * 将父节点添加到结果集
-//     * @param loopModel
-//     * @param result
-//     */
-//    private void addSiteMode(List<SiteModel> loopModel, List<SiteModel> result) {
-//        Set<SiteModel> parentSiteModel = getParentSiteModel(loopModel, result);
-//        for (SiteModel siteModel : parentSiteModel) {
-//            result.add(siteModel);
-//        }
-//    }
-//
-//    /**
-//     * 获取父节点
-//     * @param loopModel
-//     * @param result
-//     * @return
-//     */
-//    private Set<SiteModel> getParentSiteModel(List<SiteModel> loopModel, List<SiteModel> result){
-//        Set<SiteModel>  parent = new HashSet<>();
-//        for (SiteModel siteModel : loopModel) {
-//            for (SiteModel model : result) {
-//                if (model.getParentId() == siteModel.getId()) {
-//                    parent.add(siteModel);
-//                }
-//            }
-//        }
-//        return parent;
-//    }
-//
-//
-//    /**
-//     * 输入点是否在多边形内
-//     * @param point
-//     * @param param
-//     * @return
-//     */
-//    private boolean pointIsArea(Double[] point, SiteModel param){
-//        // 获取多边行点
-//        Polygon polygon = param.getPolygon();
-//        if (polygon == null) {
-//            return false;
-//        }
-//        List<List<List<Double>>> coordinates = polygon.getCoordinates();
-//        if (CollectionUtils.isEmpty(coordinates)){
-//            return false;
-//        }
-//        List<List<Double>> lists = coordinates.get(0);
-//        if (CollectionUtils.isEmpty(lists)){
-//            return false;
-//        }
-//
-//        Point2D.Double pointDouble = new Point2D.Double();
-//        pointDouble.setLocation(point[0], point[1]);
-//
-//
-//        List<Point2D.Double> allPoints = lists.stream()
-//                .map(points -> new Point2D.Double(points.get(0), points.get(1))).collect(Collectors.toList());
-//
-//        Boolean inArea = GisUtils.rayCasting(allPoints, pointDouble);
-//        log.info("是否在多边型内: {}",  inArea);
-//
-//        return inArea;
-//    }
-//
-//
-//
-//
-//
-//    // 前端需要, 映射实体
-//    private List<Object> ormSiteModel(List<SiteModel> collect){
-//        List<Object> list = new ArrayList<>();
-//        for (SiteModel siteModel : collect) {
-//            JSONObject jsonObject = new JSONObject();
-//            jsonObject.put("id", siteModel.getId());
-//            jsonObject.put("title", siteModel.getName());
-//            jsonObject.put("matching_title", siteModel.getName());
-//            jsonObject.put("matching_description", null);
-//            list.add(jsonObject);
-//        }
-//        return list;
-//
-//    }
-//
-//    // 模糊匹配
-//    private Boolean getContent(SiteModel p, String searchKey){
-//        String name = p.getName();
-//        log.info("name: {}, 配备结果:{}", name, name.contains(searchKey));
-//        return name.contains(searchKey);
-//    }
-//
-//
-//
-//    // 判断的坐标在那个空间位置
-//    private boolean getSm(SiteModel model, Point2D.Double pointParam) {
-//        if (CollectionUtils.isEmpty(model.getPolygon().getCoordinates())
-//                || CollectionUtils.isEmpty(model.getPolygon().getCoordinates().get(0))
-//                || CollectionUtils.isEmpty(model.getPolygon().getCoordinates().get(0).get(0))) {
-//            return false;
-//        }
-//
-//        List<Point2D.Double> allPoints = model.getPolygon().getCoordinates().get(0).stream()
-//                .map(points -> new Point2D.Double(points.get(0), points.get(1))).collect(Collectors.toList());
-//        if (JsonUtil.IsPtInPoly(pointParam, allPoints)) {
-//            return true;
-//        }
-//        return false;
-//    }
-//
-//    /**
-//     * type=FLOOR 时,polygon=null
-//     * @param model
-//     * @param pointParam
-//     * @return
-//     */
-//    private boolean getSmByFloor(SiteModel model, Point2D.Double pointParam) {
-//        Polygon polygon = model.getPolygon();
-//        if (polygon == null) {
-//            return true;
-//        }
-//
-//        List<Point2D.Double> allPoints = model.getPolygon().getCoordinates().get(0).stream()
-//                .map(points -> new Point2D.Double(points.get(0), points.get(1))).collect(Collectors.toList());
-//        if (JsonUtil.IsPtInPoly(pointParam, allPoints)) {
-//            return true;
-//        }
-//        return false;
-//    }
-//
-//
-//    // 把当前节点的children 设为空数组
-//    private SiteModel copyModelNotContainChildren(SiteModel siteModel) {
-//        SiteModel newSiteModel = new SiteModel();
-//        BeanUtils.copyProperties(siteModel, newSiteModel);
-//        // 设置空数组
-//        newSiteModel.setChildren(new ArrayList<>());
-//        return newSiteModel;
-//    }
-//
-//
-//
-//
-//
-//
-//
-//
-//    /**
-//     * 2021-07-14
-//     * 获取原来的对象test1 一共是17条
-//     * @param siteModel
-//     * @param models 数量回保存到原来的数据
-//     */
-//    private void organizeModels2(SiteModel siteModel, List<SiteModel> models) {
-//        for (SiteModel child : siteModel.getChildren()) {
-//            models.add(copyModelNotContainChildren(child));
-//            if (!CollectionUtils.isEmpty(child.getChildren())) {
-//                organizeModels2(child, models);
-//            }
-//        }
-////        log.info("models.size: {}", models.size());
-//    }
-//
-//
-//    private void organizeModels3(SiteModel siteModel, List<SiteModel> models) {
-//        for (SiteModel child : siteModel.getChildren()) {
-//            Integer id = siteModel.getId();
-//            child.setParentId(id);
-//            models.add(copyModelNotContainChildren(child));
-//            if (!CollectionUtils.isEmpty(child.getChildren())) {
-//                organizeModels3(child, models);
-//            }
-//        }
-////        log.info("models.size: {}", models.size());
-//    }
-//
-//
-//    /**
-//     * 2021-07-16
-//     * 递归出每一个对象
-//     * @param siteModel
-//     * @return
-//     */
-//    private List<SiteModel> getLoopModel(SiteModel siteModel){
-//        List<SiteModel> models = new ArrayList<>();
-//        // copy实体对象
-//        SiteModel newSiteModel = copyModelNotContainChildren(siteModel);
-//        // 做为父节点的低一条
-//        models.add(newSiteModel);
-//        if (!CollectionUtils.isEmpty(siteModel.getChildren())) {
-////            organizeModels2(siteModel, models);
-//            organizeModels3(siteModel, models);
-//        }
-//        log.info("models.size: {}", models.size());
-//        return models;
-//
-//    }
-//}

+ 23 - 12
laser/src/main/java/com/fdkankan/indoor/core/service/impl/SiteServiceImpl.java

@@ -2,13 +2,13 @@ package com.fdkankan.indoor.core.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.indoor.base.convert.DistanceUtil;
+import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.GisUtils;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.SiteModelEntity;
 import com.fdkankan.indoor.core.entity.dto.SiteDto;
 import com.fdkankan.indoor.core.entity.dto.SiteModelSearchDto;
 import com.fdkankan.indoor.core.entity.dto.SitePolygon;
-import com.fdkankan.indoor.core.entity.SiteEntity;
 import com.fdkankan.indoor.core.mapper.SiteModelMapper;
 import com.fdkankan.indoor.core.service.SiteService;
 import lombok.extern.slf4j.Slf4j;
@@ -21,10 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.awt.geom.Point2D;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -161,7 +158,12 @@ public class SiteServiceImpl implements SiteService {
 
     @Override
     public void save(SiteModelEntity entity) {
-        entityMapper.insert(entity);
+        entityMapper.save(entity);
+    }
+
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteById(sceneCode);
     }
 
 
@@ -300,15 +302,24 @@ public class SiteServiceImpl implements SiteService {
 
     }
 
-    private SiteEntity findBySceneCode(String sceneCode){
-        Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
-        SiteEntity vo = mongoTemplate.findOne(query, SiteEntity.class, "t_site_model");
-        return vo;
+//    private SiteModelEntity findBySceneCode(String sceneCode){
+//        Query query = new Query();
+//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+//        SiteModelEntity vo = mongoTemplate.findOne(query, SiteModelEntity.class, "t_site_model");
+//        return vo;
+//    }
+
+//    private
+    private SiteModelEntity findById(String sceneCode){
+        Optional<SiteModelEntity> optional = entityMapper.findById(sceneCode);
+        if (!optional.isPresent()){
+            throw new BaseRuntimeException("SiteModel数据不出存在");
+        }
+        return optional.get();
     }
 
     private List<SiteDto> getDataBySceneCode(String sceneCode){
-        SiteEntity entity = findBySceneCode(sceneCode);
+        SiteModelEntity entity = findById(sceneCode);
         List<SiteDto> data = entity.getData();
         return data;
 

+ 6 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/SpecialPointServiceImpl.java

@@ -25,6 +25,12 @@ public class SpecialPointServiceImpl implements SpecialPointService {
     @Override
     public SpecialPointEntity findBySceneCodeAndPoiKey(String sceneCode, String poiKey) {
         return entityMapper.findBySceneCodeAndPoiKey(sceneCode, poiKey);
+//        return entityMapper.findByIdAndPoiKey(sceneCode, poiKey);
+    }
+
+    @Override
+    public void remove(String sceneCode) {
+        entityMapper.deleteBySceneCode(sceneCode);
     }
 }