Преглед на файлове

feat: 不动产资源地图建筑列表接口返回局址页面url

weijianghai преди 1 година
родител
ревизия
277bd38f59

+ 15 - 0
src/main/java/com/nokia/financeapi/config/HousePages.java

@@ -0,0 +1,15 @@
+package com.nokia.financeapi.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@Data
+@ConfigurationProperties("pages.house")
+public class HousePages {
+    /**
+     * 一房产一局址页面url
+     */
+    private String siteUrl;
+}

+ 5 - 4
src/main/java/com/nokia/financeapi/controller/house/HouseResourceMapController.java

@@ -20,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -56,8 +57,8 @@ public class HouseResourceMapController {
 
     @Operation(summary = "获取资源地图建筑列表")
     @PostMapping("/getBuildingMap")
-    public R<List<GetBuildingMapVo>> getBuildingMap(@Valid @RequestBody GetBuildingMapDto dto) {
-        return houseResourceMapService.getBuildingMap(dto);
+    public R<List<GetBuildingMapVo>> getBuildingMap(@Valid @RequestBody GetBuildingMapDto dto, @RequestHeader("token") String token) {
+        return houseResourceMapService.getBuildingMap(dto, token);
     }
 
     @Operation(summary = "获取房屋维修统计")
@@ -80,7 +81,7 @@ public class HouseResourceMapController {
 
     @Operation(summary = "获取建筑选项列表")
     @PostMapping("/getBuildingOptions")
-    public R<List<GetBuildingOptionsVo>> getBuildingOptions(@Valid @RequestBody GetBuildingOptionsDto dto) {
-        return houseResourceMapService.getBuildingOptions(dto);
+    public R<List<GetBuildingOptionsVo>> getBuildingOptions(@Valid @RequestBody GetBuildingOptionsDto dto, @RequestHeader("token") String token) {
+        return houseResourceMapService.getBuildingOptions(dto, token);
     }
 }

+ 5 - 0
src/main/java/com/nokia/financeapi/dao/house/HouseResourceMapMapper.java

@@ -221,6 +221,7 @@ from t101 left join t102 on t101.building_id = t102.building_id
 )
 select
     building_id,
+    site_num,
     address,
     area_sector,
     building_name,
@@ -290,6 +291,7 @@ from t102 left join t103 on t102.building_id = t103.building_id
 )
 select
     building_id,
+    site_num,
     address,
     area_sector,
     building_name,
@@ -467,6 +469,7 @@ from t101 left join t102 on t101.building_id = t102.building_id
 )
 select
     building_id,
+    site_num,
     address,
     area_sector,
     building_name,
@@ -529,6 +532,7 @@ from t101 left join t102 on t101.building_id = t102.building_id
 )
 select
     building_id,
+    site_num,
     address,
     area_sector,
     building_name,
@@ -591,6 +595,7 @@ from t101 left join t102 on t101.building_id = t102.building_id
 )
 select
     building_id,
+    site_num,
     address,
     area_sector,
     building_name,

+ 4 - 0
src/main/java/com/nokia/financeapi/pojo/vo/GetBuildingMapVo.java

@@ -39,4 +39,8 @@ public class GetBuildingMapVo {
     private BigDecimal lng;
     @Schema(description = "纬度", example = "38.05078693947483")
     private BigDecimal lat;
+    @Schema(description = "局址编号", example = "13000001")
+    private String siteNum;
+    @Schema(description = "一房产一局址页面url", example = "house-car/house/dist/index.html#/administrative/overview?data=xxx&building_address_number=13000001")
+    private String siteUrl;
 }

+ 4 - 0
src/main/java/com/nokia/financeapi/pojo/vo/GetBuildingOptionsVo.java

@@ -39,4 +39,8 @@ public class GetBuildingOptionsVo {
     private BigDecimal lng;
     @Schema(description = "纬度", example = "38.05078693947483")
     private BigDecimal lat;
+    @Schema(description = "局址编号", example = "13000001")
+    private String siteNum;
+    @Schema(description = "一房产一局址页面url", example = "house-car/house/dist/index.html#/administrative/overview?data=xxx&building_address_number=13000001")
+    private String siteUrl;
 }

+ 30 - 13
src/main/java/com/nokia/financeapi/service/house/HouseResourceMapService.java

@@ -3,6 +3,7 @@ package com.nokia.financeapi.service.house;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.nokia.financeapi.common.R;
+import com.nokia.financeapi.config.HousePages;
 import com.nokia.financeapi.dao.house.AreaDao;
 import com.nokia.financeapi.dao.house.HouseResourceMapMapper;
 import com.nokia.financeapi.pojo.dto.GetBuildingAreaStatDto;
@@ -38,11 +39,14 @@ public class HouseResourceMapService {
     private final HouseResourceMapMapper houseResourceMapMapper;
     private final AreaDao areaDao;
     private final FileService fileService;
+    private final HousePages housePages;
 
-    public HouseResourceMapService(HouseResourceMapMapper houseResourceMapMapper, AreaDao areaDao, FileService fileService) {
+    public HouseResourceMapService(HouseResourceMapMapper houseResourceMapMapper, AreaDao areaDao, FileService fileService,
+                                   HousePages housePages) {
         this.houseResourceMapMapper = houseResourceMapMapper;
         this.areaDao = areaDao;
         this.fileService = fileService;
+        this.housePages = housePages;
     }
 
     public R<GetBuildingAreaStatVo> getBuildingAreaStat(GetBuildingAreaStatDto dto) {
@@ -107,7 +111,7 @@ public class HouseResourceMapService {
         return parentMap;
     }
 
-    public R<List<GetBuildingMapVo>> getBuildingMap(GetBuildingMapDto dto) {
+    public R<List<GetBuildingMapVo>> getBuildingMap(GetBuildingMapDto dto, String token) {
         Integer endDate = dto.getEndDate();
         // 账期为空则取最新的账期
         if (dto.getEndDate() == null) {
@@ -126,26 +130,29 @@ public class HouseResourceMapService {
             if ("省本部".equals(dto.getCity())) {
                 List<GetBuildingMapVo> vo = houseResourceMapMapper.getSbbBuildings(dto);
                 vo.forEach(t -> {
-                    String buildingImg = fileService.getBucket()
-                            + (StringUtils.hasText(t.getBuildingImg()) ? t.getBuildingImg() : DEFAULT_BUILDING_IMG);
+                    String buildingImg = getBuildingImg(t.getBuildingImg());
                     t.setBuildingImg(buildingImg);
+                    String siteUrl = getSiteUrl(token, t.getSiteNum());
+                    t.setSiteUrl(siteUrl);
                 });
                 return R.ok(vo);
             }
             List<GetBuildingMapVo> vo = houseResourceMapMapper.getBuildingByDistrict(dto);
             vo.forEach(t -> {
-                String buildingImg = fileService.getBucket()
-                        + (StringUtils.hasText(t.getBuildingImg()) ? t.getBuildingImg() : DEFAULT_BUILDING_IMG);
+                String buildingImg = getBuildingImg(t.getBuildingImg());
                 t.setBuildingImg(buildingImg);
+                String siteUrl = getSiteUrl(token, t.getSiteNum());
+                t.setSiteUrl(siteUrl);
             });
             return R.ok(vo);
         }
         // 查询坐标范围内的建筑
         List<GetBuildingMapVo> vo = houseResourceMapMapper.getBuildingByCoordinate(dto);
         vo.forEach(t -> {
-            String buildingImg = fileService.getBucket()
-                    + (StringUtils.hasText(t.getBuildingImg()) ? t.getBuildingImg() : DEFAULT_BUILDING_IMG);
+            String buildingImg = getBuildingImg(t.getBuildingImg());
             t.setBuildingImg(buildingImg);
+            String siteUrl = getSiteUrl(token, t.getSiteNum());
+            t.setSiteUrl(siteUrl);
         });
         return R.ok(vo);
     }
@@ -246,7 +253,7 @@ public class HouseResourceMapService {
         }.getType()));
     }
 
-    public R<List<GetBuildingOptionsVo>> getBuildingOptions(GetBuildingOptionsDto dto) {
+    public R<List<GetBuildingOptionsVo>> getBuildingOptions(GetBuildingOptionsDto dto, String token) {
         Integer endDate = dto.getEndDate();
         // 账期为空则取最新的账期
         if (dto.getEndDate() == null) {
@@ -263,18 +270,28 @@ public class HouseResourceMapService {
         if ("省本部".equals(dto.getCity())) {
             List<GetBuildingOptionsVo> vo = houseResourceMapMapper.getSbbBuildingOptions(dto);
             vo.forEach(t -> {
-                String buildingImg = fileService.getBucket()
-                        + (StringUtils.hasText(t.getBuildingImg()) ? t.getBuildingImg() : DEFAULT_BUILDING_IMG);
+                String buildingImg = getBuildingImg(t.getBuildingImg());
                 t.setBuildingImg(buildingImg);
+                String siteUrl = getSiteUrl(token, t.getSiteNum());
+                t.setSiteUrl(siteUrl);
             });
             return R.ok(vo);
         }
         List<GetBuildingOptionsVo> vo = houseResourceMapMapper.getBuildingOptions(dto);
         vo.forEach(t -> {
-            String buildingImg = fileService.getBucket()
-                    + (StringUtils.hasText(t.getBuildingImg()) ? t.getBuildingImg() : DEFAULT_BUILDING_IMG);
+            String buildingImg = getBuildingImg(t.getBuildingImg());
             t.setBuildingImg(buildingImg);
+            String siteUrl = getSiteUrl(token, t.getSiteNum());
+            t.setSiteUrl(siteUrl);
         });
         return R.ok(vo);
     }
+
+    private String getSiteUrl(String token, String siteNum) {
+        return housePages.getSiteUrl() + "?data=" + token + "&building_address_number=" + siteNum;
+    }
+
+    private String getBuildingImg(String buildingImg) {
+        return fileService.getBucket() + (StringUtils.hasText(buildingImg) ? buildingImg : DEFAULT_BUILDING_IMG);
+    }
 }

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

@@ -14,3 +14,5 @@ minio.expiry=15
 springdoc.api-docs.enabled=false
 springdoc.swagger-ui.enabled=false
 knife4j.production=true
+# 一房产一局址页面url
+pages.house.siteUrl=house-car/house/dist/index.html#/administrative/overview

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

@@ -10,3 +10,5 @@ minio.bucket=house-car
 minio.accessKey=house-car
 minio.secretKey=EGqIq7zKZwfasMQ5eLIoLId631vmLaal
 minio.expiry=15
+# 一房产一局址页面url
+pages.house.siteUrl=house-car/house/dist/index.html#/administrative/overview