Explorar el Código

Merge branch '84-integrate' of http://pms.inspur.com/javaweb/smsb-customer-manager into 84-wb

wangbo hace 3 años
padre
commit
54a9dda80a

+ 65 - 0
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/config/JacksonConfig.java

@@ -0,0 +1,65 @@
+package com.inspur.customer.config;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * jackson
+ *
+ * @author liangke
+ */
+@Configuration
+@AutoConfigureAfter(JacksonAutoConfiguration.class)
+public class JacksonConfig {
+
+    @Bean
+    public ObjectMapper objectMapper() {
+        ObjectMapper objectMapper = new ObjectMapper();
+
+        // 对于 Java 8+ 的 time 库的序列化与反序列化处理
+        JavaTimeModule javaTimeModule = new JavaTimeModule();
+
+        DateTimeFormatter localDateTimePattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(localDateTimePattern));
+        javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(localDateTimePattern));
+
+        DateTimeFormatter localDatePattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(localDatePattern));
+        javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(localDatePattern));
+
+        DateTimeFormatter localTimePattern = DateTimeFormatter.ofPattern("HH:mm:ss");
+        javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(localTimePattern));
+        javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(localTimePattern));
+
+        objectMapper.registerModule(javaTimeModule);
+
+        // 过滤未知字段
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        // 序列化 JSON 丢失精度问题
+        SimpleModule simpleModule = new SimpleModule();
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+
+        return objectMapper;
+    }
+}

+ 29 - 0
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/config/WebDataConvertConfig.java

@@ -0,0 +1,29 @@
+package com.inspur.customer.config;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author linwenhua
+ */
+@EnableWebMvc
+@Configuration
+public class WebDataConvertConfig implements WebMvcConfigurer {
+
+    @Resource
+    ObjectMapper objectMapper;
+
+    @Override
+    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+        MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
+        jackson2HttpMessageConverter.setObjectMapper(objectMapper);
+        converters.add(jackson2HttpMessageConverter);
+    }
+}

+ 3 - 3
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/TenantExceptionInformStrategyController.java → smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/tenant/TenantExceptionInformStrategyController.java

@@ -1,4 +1,4 @@
-package com.inspur.customer.web.controller;
+package com.inspur.customer.web.controller.tenant;
 
 import com.alibaba.cola.dto.SingleResponse;
 import com.inspur.customer.client.tenant.TenantExceptionInformStrategyService;
@@ -16,12 +16,12 @@ public class TenantExceptionInformStrategyController {
     @DubboReference
     private TenantExceptionInformStrategyService tenantExceptionInformStrategyService;
 
-    @PostMapping("/device/informStrategy")
+    @PostMapping("/tenant/informStrategy")
     public SingleResponse<TenantExceptionInformStrategyCO> setTenantInformStrategy(@RequestBody TenantExceptionInformStrategyCO informStrategyCo) {
         return tenantExceptionInformStrategyService.setInformStrategy(informStrategyCo);
     }
 
-    @GetMapping("/device/informStrategy")
+    @GetMapping("/tenant/informStrategy")
     public SingleResponse<TenantExceptionInformStrategyCO> setTenantInformStrategy(@RequestParam String tenant) {
         return tenantExceptionInformStrategyService.getTenantInformStrategy(tenant);
     }

+ 12 - 2
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/tenant/TenantExceptionInformStrategyServiceImpl.java

@@ -36,9 +36,10 @@ public class TenantExceptionInformStrategyServiceImpl extends ServiceImpl<Tenant
     public SingleResponse<TenantExceptionInformStrategyCO> getTenantInformStrategy(String tenant) {
         TenantExceptionInformStrategyDO informStrategyDO = this.getById(tenant);
         if (informStrategyDO == null) {
-            return SingleResponse.of(getDefaultStrategy(tenant));
+            TenantExceptionInformStrategyCO defaultStrategy = getDefaultStrategy(tenant);
+            return SingleResponse.of(removeUnUseStrategy(defaultStrategy));
         }
-        return SingleResponse.of(changeToInformStrategyCo(informStrategyDO));
+        return SingleResponse.of(removeUnUseStrategy(changeToInformStrategyCo(informStrategyDO)));
     }
 
     @Override
@@ -106,4 +107,13 @@ public class TenantExceptionInformStrategyServiceImpl extends ServiceImpl<Tenant
         return informStrategyCo;
     }
 
+    private TenantExceptionInformStrategyCO removeUnUseStrategy(TenantExceptionInformStrategyCO strategyCO) {
+        strategyCO.getStrategy().remove(TenantExceptionInformStrategyCO.TENANT_LEVEL_KEY);
+        strategyCO.getStrategy().remove(TenantExceptionInformStrategyCO.DEPARTMENT_LEVEL);
+        // single method
+        strategyCO.getStrategy().remove(TenantExceptionInformStrategyCO.SINGLE_NOTE);
+        strategyCO.getStrategy().remove(TenantExceptionInformStrategyCO.SINGLE_EMAIL);
+        return strategyCO;
+    }
+
 }