소스 검색

任务提交 引入logback-spring日志,客户产品查询

张均强 4 년 전
부모
커밋
69b370ed5b

+ 1 - 1
common/fire-dto/src/main/java/com/fire/dto/CustomerProduct.java

@@ -12,7 +12,7 @@ public class CustomerProduct {
     private Integer id;
 
     @ApiModelProperty(value = "客户编号")
-    private Integer customerId;
+    private Long customerId;
 
     @ApiModelProperty(value = "产品(产品表对应的主键)")
     private Integer productId;

+ 7 - 3
common/fire-dto/src/main/java/com/fire/dto/FlowAppInfo.java

@@ -1,12 +1,12 @@
 package com.fire.dto;
 
-import java.util.Date;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+import java.util.Map;
+
 @ApiModel(value = "客户接入表实体")
 @Data
 public class FlowAppInfo {
@@ -50,8 +50,12 @@ public class FlowAppInfo {
     @ApiModelProperty(value = "限制回调时间")
     private Integer time;
 
+    /********************************扩展字段***********************************/
     @ApiModelProperty(value = "客户基本信息")
     private CustomerInfo customerInfo;
 
+    @ApiModelProperty(value = "客户产品map")
+    private Map<String, CustomerProduct> productMap;
+
 
 }

+ 17 - 2
modules/make-order/src/main/java/com/fire/order/service/impl/CustomerServiceImpl.java

@@ -2,9 +2,11 @@ package com.fire.order.service.impl;
 
 
 import com.fire.dto.CustomerInfo;
+import com.fire.dto.CustomerProduct;
 import com.fire.dto.FlowAppInfo;
 import com.fire.order.data.DataPool;
 import com.fire.order.mapper.CustomerInfoMapper;
+import com.fire.order.mapper.CustomerProductMapper;
 import com.fire.order.mapper.FlowAppInfoMapper;
 import com.fire.order.service.CustomerService;
 import org.springframework.stereotype.Service;
@@ -28,6 +30,9 @@ public class CustomerServiceImpl implements CustomerService {
     @Resource
     private CustomerInfoMapper customerInfoMapper;
 
+    @Resource
+    private CustomerProductMapper customerProductMapper;
+
     /**
      * 缓存客户信息
      */
@@ -36,14 +41,24 @@ public class CustomerServiceImpl implements CustomerService {
         //查询所有的客户信息和所有的接入信息
         List<FlowAppInfo> appInfos = flowAppInfoMapper.queryAll();
         List<CustomerInfo> customerInfos = customerInfoMapper.queryAll();
-        if (appInfos != null && customerInfos != null) {
+        List<CustomerProduct> products = customerProductMapper.queryAll();
+        if (appInfos != null && customerInfos != null && products != null) {
             //将客户信息List 转换为客户id为key的map 如果存在重复key,以后出现的为准
             Map<Long, CustomerInfo> customerInfoMap = customerInfos.stream().collect(Collectors.toMap(CustomerInfo::getCustomerId, a -> a, (k1, k2) -> k2));
-            //遍历接入信息,将对应客户信息放入接入信息中
+            //根据客户id进行分组
+            Map<Long, List<CustomerProduct>> longListMap = products.stream().collect(Collectors.groupingBy(CustomerProduct::getCustomerId));
+            //遍历接入信息
             for (FlowAppInfo appInfo : appInfos) {
                 if (appInfo != null && appInfo.getCustomerId() != null) {
                     CustomerInfo customerInfo = customerInfoMap.get(appInfo.getCustomerId());
+                    //将对应客户信息放入接入信息中
                     appInfo.setCustomerInfo(customerInfo);
+                    List<CustomerProduct> customerProducts = longListMap.get(appInfo.getCustomerId());
+                    if (customerProducts != null) {
+                        //将客户产品放入接入信息中
+                        Map<String, CustomerProduct> productMap = customerProducts.stream().collect(Collectors.toMap(CustomerProduct::getPackageId, a -> a, (k1, k2) -> k2));
+                        appInfo.setProductMap(productMap);
+                    }
                 }
             }
             //将接入信息list 转换为appId为key的map 如果存在重复key,以后出现的为准

+ 4 - 0
modules/make-order/src/main/resources/bootstrap.yml

@@ -13,3 +13,7 @@ spring:
         server-addr: 192.168.101.104:8848
         namespace: fire
         service: make-order
+logging:
+  config: classpath:logback-spring.xml
+  file:
+    path: /data/fire-log

+ 65 - 0
modules/make-order/src/main/resources/logback-spring.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 当scan属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 定义变量值,也可以定义成一个路径,可以使“${}”来使用变量 -->
+    <property name="log_path" value="/data/fire-log/make-order"/>
+    <!--<springProperty scope="context" name="modelName" source="spring.application.name"/>-->
+    <property name="log_encoder_code" value="[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] %msg%n"/>
+    <!-- 设置上下文名称,用于区分不同应用程序的记录,一旦设置,不能修改 -->
+    <contextName>elk_log</contextName>
+    <!-- 获取时间戳字符串 -->
+    <timestamp key="now_time" datePattern="yyyyMMdd'T'HHmmss"/>
+    <!-- 负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名 -->
+    <!--输出到控制台-->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- 对日志进行格式化 -->
+        <encoder>
+            <pattern>${log_encoder_code}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="log_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log_path}/info-log-%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 30天 -->
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <appender name="log_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 过滤器,只记录ERROR级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志输出位置  可相对、和绝对路径 -->
+            <fileNamePattern>${log_path}/error-log-%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,
+            则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除-->
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <!-- SQL相关日志输出-->
+    <logger name="org.apache.ibatis" level="INFO" additivity="false"/>
+    <logger name="org.mybatis.spring" level="INFO" additivity="false"/>
+    <logger name="com.github.miemiedev.mybatis.paginator" level="INFO" additivity="false"/>
+    <!-- 把>=DEBUG级别的日志都输出到控制台 -->
+    <root level="INFO">
+        <appender-ref ref="console"/>
+        <!--<appender-ref ref="file" />-->
+        <appender-ref ref="log_info"/>
+        <appender-ref ref="log_error"/>
+    </root>
+    <!-- 屏蔽心跳日志-->
+    <logger name="com.alibaba.nacos" level="error" additivity="false"/>
+</configuration>

+ 1 - 0
modules/pom.xml

@@ -47,6 +47,7 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
+
         <!--这里引入本地公共的类-->
         <dependency>
             <groupId>com.blue</groupId>

+ 0 - 8
pom.xml

@@ -80,19 +80,11 @@
                 <version>3.3.0</version>
             </dependency>
 
-
-            <dependency>
-                <groupId>com.github.xiaoymin</groupId>
-                <artifactId>knife4j-spring-boot-starter</artifactId>
-                <version>1.9.6</version>
-            </dependency>
-
             <dependency>
                 <groupId>cn.hutool</groupId>
                 <artifactId>hutool-all</artifactId>
                 <version>5.2.0</version>
             </dependency>
-
         </dependencies>
     </dependencyManagement>
     <build>