Browse Source

feature 一物一码测试代码【后期剔除】

黎有为 1 year ago
parent
commit
61baf70416

+ 8 - 0
base-boot/src/main/java/com/citygis/base/boot/controller/EchoController.java

@@ -4,12 +4,20 @@ import com.alibaba.csp.sentinel.annotation.SentinelResource;
 import com.citygis.base.boot.config.NacosConfigInfo;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.Maps;
+import lombok.Builder;
+import lombok.Data;
+import lombok.Getter;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+import java.util.Map;
+
 @RestController
 @RefreshScope
 public class EchoController {

+ 24 - 0
base-boot/src/main/java/com/citygis/base/boot/controller/GridPartitioningProperties.java

@@ -0,0 +1,24 @@
+package com.citygis.base.boot.controller;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+@PropertySource(
+        value = "classpath:grid-partitioning.properties",
+        ignoreResourceNotFound = false
+)
+@ConfigurationProperties(
+        prefix = "grid-partitioning"
+)
+@Configuration
+@Getter
+@Setter
+public class GridPartitioningProperties {
+    private ConcurrentHashMap<Integer, Integer> longitudeDegreeMap = new ConcurrentHashMap<>();
+    private ConcurrentHashMap<Integer, Integer> latitudeDegreeMap = new ConcurrentHashMap<>();
+}

+ 63 - 0
base-boot/src/main/java/com/citygis/base/boot/controller/Test.java

@@ -0,0 +1,63 @@
+package com.citygis.base.boot.controller;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import lombok.Builder;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+public class Test {
+    @Autowired
+    private GridPartitioningProperties properties;
+
+    @Data
+    @Builder
+    static class PartitionInfo {
+        private Integer longitudePartition;
+        private Integer latitudePartition;
+    }
+
+    private PartitionInfo calculatePartitionNumber(String x, String y) {
+        Integer longitudePartition = calculateLongitude(x, LongitudeLatitudeEnum.LONGITUDE);
+        Integer latitudePartition = calculateLongitude(y, LongitudeLatitudeEnum.LATITUDE);
+        return PartitionInfo.builder()
+                .longitudePartition(longitudePartition)
+                .latitudePartition(latitudePartition)
+                .build();
+    }
+
+    enum LongitudeLatitudeEnum {
+        LONGITUDE(),
+        LATITUDE()
+    }
+
+    private Integer calculateLongitude(String value, LongitudeLatitudeEnum type) {
+        Map<Integer, Integer> longitudeDegreeMap = properties.getLongitudeDegreeMap();
+        Map<Integer, Integer> latitudeDegreeMap = properties.getLatitudeDegreeMap();
+        String[] degreeAndMinutes = value.replace("′", "").replace("′", "").split("°");
+        Integer degree = Integer.parseInt(degreeAndMinutes[0]);
+        Integer minutes = Integer.parseInt(degreeAndMinutes[1]);
+        Integer quickCalculationDeduction = 0;
+        Integer result = 0;
+        switch (type) {
+            case LONGITUDE:
+                quickCalculationDeduction = longitudeDegreeMap.get(degree);
+                break;
+            case LATITUDE:
+                quickCalculationDeduction = latitudeDegreeMap.get(degree);
+                break;
+        }
+        result = quickCalculationDeduction + minutes;
+        return result;
+    }
+
+    @GetMapping("/config/{x}&&{y}")
+    public Object config(@PathVariable String x, @PathVariable String y) throws JsonProcessingException {
+        return calculatePartitionNumber(x, y);
+    }
+}

+ 5 - 0
base-boot/src/main/resources/grid-partitioning.properties

@@ -0,0 +1,5 @@
+grid-partitioning.longitudeDegreeMap.120=0
+grid-partitioning.longitudeDegreeMap.121=8
+grid-partitioning.longitudeDegreeMap.122=68
+grid-partitioning.latitudeDegreeMap.30=0
+grid-partitioning.latitudeDegreeMap.31=20

+ 0 - 0
nacos/bin/logs/access_log.2023-05-12.log