Browse Source

中台时间格式为yyyyMMddhhmmss

lixing 3 years ago
parent
commit
5a8b45ccfc

+ 82 - 0
AlarmDataStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmdata/AutoConfiguration.java

@@ -1,7 +1,23 @@
 package com.persagy.apm.energyalarmstarter.alarmdata;
 
+import com.alibaba.fastjson.PropertyNamingStrategy;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson.support.config.FastJsonConfig;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import org.springframework.beans.factory.ObjectFactory;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
+import org.springframework.cloud.openfeign.support.SpringDecoder;
+import org.springframework.cloud.openfeign.support.SpringEncoder;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @description: 配置类
@@ -13,5 +29,71 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @ComponentScan(value = "com.persagy.apm.energyalarmstarter.alarmdata")
 public class AutoConfiguration {
+    @Bean
+    public ResponseEntityDecoder feignDecoder() {
+        HttpMessageConverter fastJsonConverter = createFastJsonConverter();
+        ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(fastJsonConverter);
+        return new ResponseEntityDecoder(new SpringDecoder(objectFactory));
+    }
+
+    @Bean
+    public SpringEncoder feignEncoder(){
+        HttpMessageConverter fastJsonConverter = createFastJsonConverter();
+        ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(fastJsonConverter);
+        return new SpringEncoder(objectFactory);
+    }
+
+    /**
+     * Description: 添加支持的类型
+     *
+     * @return List<MediaType>
+     * @author luoguangyi
+     * @since 2019年9月3日: 下午6:20:33 Update By luoguangyi 2019年9月3日: 下午6:20:33
+     */
+    private HttpMessageConverter createFastJsonConverter() {
+        //===========替换框架json为fastjson
+        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
+        List<MediaType> supportedMediaTypes = new ArrayList<>();
+        supportedMediaTypes.add(MediaType.APPLICATION_JSON);
+        supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+        supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
+        supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
+        supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
+        supportedMediaTypes.add(MediaType.APPLICATION_PDF);
+        supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
+        supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
+        supportedMediaTypes.add(MediaType.APPLICATION_XML);
+        supportedMediaTypes.add(MediaType.IMAGE_GIF);
+        supportedMediaTypes.add(MediaType.IMAGE_JPEG);
+        supportedMediaTypes.add(MediaType.IMAGE_PNG);
+        supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
+        supportedMediaTypes.add(MediaType.TEXT_HTML);
+        supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
+        supportedMediaTypes.add(MediaType.TEXT_PLAIN);
+        supportedMediaTypes.add(MediaType.TEXT_XML);
+        fastConverter.setSupportedMediaTypes(supportedMediaTypes);
+
+        //创建配置类
+        FastJsonConfig fastJsonConfig = new FastJsonConfig();
+        //---下划线转驼峰
+        SerializeConfig serializeConfig = new SerializeConfig();
+        serializeConfig.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;
+        fastJsonConfig.setSerializeConfig(serializeConfig);
+        //---序列化格式
+        fastJsonConfig.setSerializerFeatures(
+                SerializerFeature.PrettyFormat,
+                SerializerFeature.WriteDateUseDateFormat,
+                // List字段如果为null,输出为[],而非null
+//                SerializerFeature.WriteNullListAsEmpty,
+                // 是否显示为null的字段,加上会显示,取消就不会显示为空的字段
+                // SerializerFeature.WriteMapNullValue,
+                // 禁止循环引用
+                SerializerFeature.DisableCircularReferenceDetect
+                // SerializerFeature.WriteNullStringAsEmpty
+        );
+        fastJsonConfig.setDateFormat("yyyyMMddHHmmss");
+        fastConverter.setFastJsonConfig(fastJsonConfig);
 
+        return fastConverter;
+    }
 }

+ 1 - 1
AlarmDataStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmdata/aspect/AlarmClientAspect.java

@@ -37,7 +37,7 @@ public class AlarmClientAspect {
             return;
         }
         for (Object arg : args) {
-            if (!(arg instanceof UrlParamDTO)) {
+            if (!(arg instanceof AlarmUrlParam)) {
                 continue;
             }
             // 如果未传某些参数,设置为默认值

+ 2 - 0
AlarmDataStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmdata/feign/client/AlarmClient.java

@@ -7,6 +7,7 @@ import com.persagy.apm.energyalarmstarter.alarmdata.feign.AlarmUrlParam;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.common.UrlParamDTO;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.fallback.AlarmClientFallbackFactory;
+import feign.Headers;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -103,6 +104,7 @@ public interface AlarmClient {
      * @version: V1.0
      */
     @PostMapping(RequestUrlConstant.ALARM_RECORD_QUERY)
+    @Headers({"acceptEncoding: gzip","contentType: application/json"})
     DmpResult<JSONArray> queryAlarmRecord(@SpringQueryMap AlarmUrlParam alarmUrlParam, @RequestBody JSONObject jsonObject) throws Exception;
 
     /**

+ 3 - 3
AlarmDataStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmdata/model/dto/alarmrecord/QueryAlarmRecordDTO.java

@@ -115,16 +115,16 @@ public class QueryAlarmRecordDTO extends UrlParamDTO {
 
     public Object getTriggerTime() {
         if (this.triggerTime != null) {
-            return DateUtils.date2Str(this.triggerTime, DateUtils.SDF_SECOND);
+            return DateUtils.date2Str(this.triggerTime, DateUtils.SDFSECOND);
         }
 
         if (this.triggerDurationStart !=null || this.triggerDurationEnd != null) {
             JSONObject jsonObject = new JSONObject();
             if (this.triggerDurationStart !=null) {
-                jsonObject.put("$gte", DateUtils.date2Str(this.triggerDurationStart, DateUtils.SDF_SECOND));
+                jsonObject.put("$gte", DateUtils.date2Str(this.triggerDurationStart, DateUtils.SDFSECOND));
             }
             if (this.triggerDurationEnd !=null) {
-                jsonObject.put("$lte", DateUtils.date2Str(this.triggerDurationEnd, DateUtils.SDF_SECOND));
+                jsonObject.put("$lte", DateUtils.date2Str(this.triggerDurationEnd, DateUtils.SDFSECOND));
             }
             return jsonObject;
         }