소스 검색

系统优化

woody 1 년 전
부모
커밋
da99b0f9d1

+ 0 - 8
framework-base/pom.xml

@@ -68,13 +68,5 @@
             <artifactId>framework-common</artifactId>
             <version>${framework-common.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.skywalking</groupId>
-            <artifactId>apm-toolkit-trace</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.skywalking</groupId>
-            <artifactId>apm-toolkit-logback-1.x</artifactId>
-        </dependency>
     </dependencies>
 </project>

+ 46 - 15
framework-common/src/main/java/com/chelvc/framework/common/util/ObjectUtils.java

@@ -353,7 +353,7 @@ public final class ObjectUtils {
      * 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
      *
      * @param object   目标对象
-     * @param supplier 替换对象提供方法
+     * @param supplier 默认对象提供函数
      * @param <T>      对象类型泛型
      * @return 返回对象
      */
@@ -365,7 +365,7 @@ public final class ObjectUtils {
      * 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
      *
      * @param object   目标对象
-     * @param function 目标对象方法
+     * @param function 对象处理函数
      * @param <T>      目标对象类型泛型
      * @param <R>      返回对象类型泛型
      * @return 返回对象
@@ -378,8 +378,8 @@ public final class ObjectUtils {
      * 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
      *
      * @param object   目标对象
-     * @param function 目标对象方法
-     * @param supplier 替换对象提供方法
+     * @param function 对象处理函数
+     * @param supplier 默认对象提供函数
      * @param <T>      目标对象类型泛型
      * @param <R>      返回对象类型泛型
      * @return 返回对象
@@ -591,7 +591,7 @@ public final class ObjectUtils {
      * 判断数组是否为空,如果数组为空则调用适配函数并返回
      *
      * @param array    对象数组
-     * @param supplier 对象数组适配函数
+     * @param supplier 默认数组提供函数
      * @param <T>      对象类型
      * @return 对象数组
      */
@@ -602,21 +602,35 @@ public final class ObjectUtils {
     /**
      * 判断数组是否为空,如果集合非空则使用适配函数
      *
-     * @param array   对象数组
-     * @param adapter 对象数组适配函数
-     * @param <T>     对象类型
-     * @param <R>     目标类型
+     * @param array    对象数组
+     * @param function 数组处理函数
+     * @param <T>      对象类型
+     * @param <R>      目标类型
+     * @return 对象数组
+     */
+    public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> function) {
+        return isEmpty(array) ? null : function.apply(array);
+    }
+
+    /**
+     * 判断数组是否为空,如果集合非空则使用适配函数
+     *
+     * @param array    对象数组
+     * @param function 数组处理函数
+     * @param supplier 默认数组提供函数
+     * @param <T>      对象类型
+     * @param <R>      目标类型
      * @return 对象数组
      */
-    public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> adapter) {
-        return isEmpty(array) ? null : adapter.apply(array);
+    public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> function, @NonNull Supplier<R[]> supplier) {
+        return isEmpty(array) ? supplier.get() : ifEmpty(function.apply(array), supplier);
     }
 
     /**
      * 判断集合是否为空,如果集合为空则调用适配函数并返回
      *
      * @param collection 对象集合
-     * @param supplier   对象集合适配函数
+     * @param supplier   默认集合提供函数
      * @param <T>        对象类型
      * @param <C>        集合类型
      * @return 对象集合
@@ -629,14 +643,31 @@ public final class ObjectUtils {
      * 判断集合是否为空,如果集合非空则使用适配函数
      *
      * @param collection 对象集合
-     * @param adapter    对象集合适配函数
+     * @param function   集合处理函数
+     * @param <T>        对象类型
+     * @param <R>        目标类型
+     * @param <C>        集合类型
+     * @return 对象集合
+     */
+    public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection,
+                                                                  @NonNull Function<C, List<R>> function) {
+        return isEmpty(collection) ? Collections.emptyList() : function.apply(collection);
+    }
+
+    /**
+     * 判断集合是否为空,如果集合非空则使用适配函数
+     *
+     * @param collection 对象集合
+     * @param function   集合处理函数
+     * @param supplier   默认集合提供函数
      * @param <T>        对象类型
      * @param <R>        目标类型
      * @param <C>        集合类型
      * @return 对象集合
      */
-    public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection, @NonNull Function<C, List<R>> adapter) {
-        return isEmpty(collection) ? Collections.emptyList() : adapter.apply(collection);
+    public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection, @NonNull Function<C, List<R>> function,
+                                                                  @NonNull Supplier<List<R>> supplier) {
+        return isEmpty(collection) ? supplier.get() : ifEmpty(function.apply(collection), supplier);
     }
 
     /**

+ 0 - 12
framework-dependencies/pom.xml

@@ -51,8 +51,6 @@
         <mybatis-plus-boot-starter.version>3.4.2</mybatis-plus-boot-starter.version>
         <dynamic-datasource-spring-boot-starter.version>3.3.2</dynamic-datasource-spring-boot-starter.version>
 
-        <skywalking-trace.version>8.11.0</skywalking-trace.version>
-        <skywalking-logback.version>8.11.0</skywalking-logback.version>
         <dubbo-spring-boot-starter.version>3.0.12</dubbo-spring-boot-starter.version>
         <nacos-spring-context.version>0.3.6</nacos-spring-context.version>
         <nacos-config-spring-boot-starter.version>0.2.1</nacos-config-spring-boot-starter.version>
@@ -240,16 +238,6 @@
                 <artifactId>spring-security-oauth2</artifactId>
                 <version>${spring-security-oauth2.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.apache.skywalking</groupId>
-                <artifactId>apm-toolkit-trace</artifactId>
-                <version>${skywalking-trace.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.skywalking</groupId>
-                <artifactId>apm-toolkit-logback-1.x</artifactId>
-                <version>${skywalking-logback.version}</version>
-            </dependency>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-dependencies</artifactId>

+ 5 - 0
framework-location/src/main/java/com/chelvc/framework/location/Address.java

@@ -30,6 +30,11 @@ public class Address implements Serializable {
      */
     private String name;
 
+    /**
+     * 详细地址
+     */
+    private String address;
+
     /**
      * 经度
      */

+ 8 - 2
framework-location/src/main/java/com/chelvc/framework/location/support/JuheMobileHandler.java

@@ -2,6 +2,7 @@ package com.chelvc.framework.location.support;
 
 import java.time.Duration;
 import java.util.Date;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -68,8 +69,13 @@ public class JuheMobileHandler implements MobileHandler {
         }
         String province = ObjectUtils.ifNull(response.getResult(), JuheLocationResponse.Position::getProvince);
         String city = ObjectUtils.ifNull(response.getResult(), JuheLocationResponse.Position::getCity);
-        String address = Stream.of(province, city).filter(StringUtils::nonEmpty).collect(Collectors.joining());
-        return StringUtils.ifEmpty(address, (String) null);
+        if (StringUtils.isEmpty(province) && StringUtils.isEmpty(city)) {
+            return null;
+        } else if (Objects.equals(province, city)) {
+            // 针对直辖市省、市名称相同的地址只返回市名称
+            return city;
+        }
+        return Stream.of(province, city).filter(StringUtils::nonEmpty).collect(Collectors.joining());
     }
 
     @Override

+ 2 - 1
framework-location/src/main/java/com/chelvc/framework/location/support/TencentLocationHandler.java

@@ -82,7 +82,8 @@ public class TencentLocationHandler implements LocationHandler {
         TencentLocationResponse.Location location = response.getResult().getLocation();
         Double longitude = ObjectUtils.ifNull(location, TencentLocationResponse.Location::getLongitude);
         Double latitude = ObjectUtils.ifNull(location, TencentLocationResponse.Location::getLatitude);
-        Address address = Address.builder().id(region.getCode()).longitude(longitude).latitude(latitude).build();
+        Address address = Address.builder().id(region.getCode()).longitude(longitude).latitude(latitude)
+                .address(response.getResult().getAddress()).build();
         address.setName(Stream.of(position.getProvince(), position.getCity(), position.getDistrict())
                 .filter(StringUtils::nonEmpty).collect(Collectors.joining("·")
                 ));

+ 5 - 0
framework-location/src/main/java/com/chelvc/framework/location/support/TencentLocationResponse.java

@@ -42,6 +42,11 @@ public class TencentLocationResponse implements Serializable {
     @NoArgsConstructor
     @AllArgsConstructor
     public static class Result implements Serializable {
+        /**
+         * 详细地址
+         */
+        private String address;
+
         /**
          * 定位信息
          */