From 87d3a050867e17b0dd9b47263d59c496622e860a Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期五, 18 八月 2023 15:52:27 +0800
Subject: [PATCH] 管理后台:积分商品的编辑模块

---
 /dev/null                                                                                               |  227 -------------------------
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html                     |    1 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java      |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java            |   36 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java                 |    4 
 cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js                    |    2 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js                     |  143 ++++++++-------
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java |   41 +++-
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java    |    4 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html                     |   28 +-
 10 files changed, 169 insertions(+), 321 deletions(-)

diff --git a/cloud-server-account/src/main/resources/logback-spring.xml b/cloud-server-account/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-account/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index e6b0397..faff332 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -629,10 +629,13 @@
     public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId){
         PointMercharsVo vo = new PointMercharsVo();
         PointsMerchandise byId = pmdsService.getById(pointMercharsId);
+        List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
+                .eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId));
         if (ToolUtil.isNotEmpty(byId)){
             vo.setName(byId.getName());
             vo.setCover(byId.getCover());
             vo.setPics(byId.getProductImages());
+            vo.setQuantityHas(list.size());
             vo.setQuantityIssued(byId.getQuantityIssued());
             vo.setPickUpQuantity(byId.getPickUpQuantity());
             vo.setSort(byId.getSort());
@@ -708,4 +711,37 @@
         }
     }
 
+
+
+    @ResponseBody
+    @PostMapping("/base/pointMerchars/updateGoodsDetail")
+    public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){
+        try {
+            Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
+            PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
+
+            Integer quantityIssued = (Integer) map.get("quantityIssued");
+            Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
+            String redemptionInstructions = (String) map.get("redemptionInstructions");
+            String cover = (String) map.get("cover");
+            String productImages = (String) map.get("productImages");
+            Integer sort = (Integer) map.get("sort");
+
+            byId1.setQuantityIssued(quantityIssued);
+            byId1.setPickUpQuantity(pickUpQuantity);
+            byId1.setRedemptionInstructions(redemptionInstructions);
+            if (ToolUtil.isNotEmpty(cover)){
+                byId1.setCover(cover);
+            }
+            if (ToolUtil.isNotEmpty(productImages)){
+                byId1.setProductImages(productImages);
+            }
+            byId1.setSort(sort);
+            pmdsService.updateById(byId1);
+            return true;
+        }catch (Exception e){
+            return false;
+        }
+    }
+
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
index e781c0e..323169b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
@@ -24,6 +24,10 @@
      */
     Integer quantityIssued;
     /**
+     * 已领数量
+     */
+    Integer quantityHas;
+    /**
      * 限领数量
      */
     Integer pickUpQuantity;
diff --git a/cloud-server-activity/src/main/resources/logback-spring.xml b/cloud-server-activity/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-activity/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-auth/src/main/resources/logback-spring.xml b/cloud-server-auth/src/main/resources/logback-spring.xml
deleted file mode 100644
index b13e9b3..0000000
--- a/cloud-server-auth/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-competition/src/main/resources/logback-spring.xml b/cloud-server-competition/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-competition/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-course/src/main/resources/logback-spring.xml b/cloud-server-course/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-course/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
index 07ae8f8..be81e76 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -9,6 +9,7 @@
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -30,4 +31,7 @@
     @PostMapping("/base/pointMerchars/writeOffGoodsStatus")
     boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map);
 
+    @PostMapping("/base/pointMerchars/updateGoodsDetail")
+    boolean updateGoodsDetail(@RequestBody Map<String, Object> stringObjectHashMap);
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
index ab8d03b..8e3e984 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
@@ -24,6 +24,10 @@
      */
     Integer quantityIssued;
     /**
+     * 已领数量
+     */
+    Integer quantityHas;
+    /**
      * 限领数量
      */
     Integer pickUpQuantity;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
index ce14034..3ea55ca 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -36,10 +36,7 @@
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -304,14 +301,31 @@
         client.insertIntoData(dataVo);
         return new SuccessTip<>();
     }
+
+    /**
+     *  编辑 商品详情
+     * @param pointMerchandiseId 商品Id
+     * @param quantityIssued 发放数量
+     * @param pickUpQuantity 限领数量
+     * @param redemptionInstructions 说明
+     * @param cover 封面图
+     * @param productImages 商品图片
+     * @param sort 排序
+     * @return
+     */
     @PostMapping(value = "/update")
     @ResponseBody
-    public Object update( Integer id,Integer num,Integer num1,String text){
-        Coupon coupon = client.queryCouponById(id);
-        coupon.setQuantityIssued(num);
-        coupon.setPickUpQuantity(num1);
-        coupon.setIllustrate(text);
-        client.updateCouponData(coupon);
+    public Object update( Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity,String redemptionInstructions,String cover,String productImages,Integer sort){
+        Map<String, Object> stringObjectHashMap = new HashMap<>();
+        stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId);
+        stringObjectHashMap.put("quantityIssued",quantityIssued);
+        stringObjectHashMap.put("pickUpQuantity",pickUpQuantity);
+        stringObjectHashMap.put("redemptionInstructions",redemptionInstructions);
+        stringObjectHashMap.put("cover",cover);
+        stringObjectHashMap.put("productImages",productImages);
+        stringObjectHashMap.put("sort",sort);
+        System.out.println(stringObjectHashMap);
+        pointMercharsClient.updateGoodsDetail(stringObjectHashMap);
         return new SuccessTip<>();
     }
 
@@ -339,7 +353,7 @@
 
 
     /**
-     * 跳转到修改车辆管理
+     * 跳转到修改商品详情
      */
     @RequestMapping("/tGoods_update/{id}")
     public String tCityUpdate(@PathVariable Integer id, Model model) {
@@ -347,8 +361,11 @@
         PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
         System.out.println("pointMercharsVo:"+pointMercharsVo);
         String[] split = pointMercharsVo.getPics().split(",");
+        List<String> list = Arrays.asList(split);
+        model.addAttribute("id",id);
         model.addAttribute("item",pointMercharsVo);
-        model.addAttribute("pictures",split);
+        model.addAttribute("pictures",list);
+        System.out.println(list);
         return PREFIX + "TGoods_edit.html";
     }
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
index 6834772..4d20724 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -257,6 +257,7 @@
                             </el-upload>
                             <el-dialog :visible.sync="dialogVisible">
                                 <img width="100%" :src="imageUrl1" alt="">
+                            </el-dialog>
                         </div>
                     </div>
                     
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
index 59b18fe..9e11f1c 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
@@ -8,6 +8,7 @@
         height: 100px;
         width: 100px;
         overflow: hidden;
+        display: inline-block;
     }
 
     .avatar-uploader .el-upload:hover {
@@ -42,7 +43,7 @@
     <div class="ibox-content">
         <div class="form-horizontal" id="carInfoForm">
             <div id="b1">
-
+                <input id="goodsId" value="${id}" hidden="hidden">
                 <#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
 
                 <#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
@@ -52,8 +53,15 @@
                     <div class="col-sm-6">
                         <div class="form-group">
                             <label class="col-sm-3 control-label">商品图片(请上传不超过五张图片): </label>
-                            <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
+                            <div class="col-sm-2" style="width: 100%;margin-left: 24%;margin-top: 1%">
+                                @for(im in pictures){
+                                <div class="avatar-uploader" style="display: inline-block;">
+                                    <img height="100px" width="100px" src="${im}">
+                                    <i class="fa fa-close" onclick="delImg(this)" style="color: red;font-size: 18px;position: absolute;"></i>
+                                </div>
+                                @}
                                 <el-upload
+                                        style="display: inline-block;"
                                         :limit="5"
                                         class="avatar-uploader"
                                         action="/tCouponManage/uploadPic"
@@ -63,17 +71,13 @@
                                         :on-remove="handleRemove">
                                     <i class="el-icon-plus"></i>
                                 </el-upload>
-                                <el-dialog :visible.sync="dialogVisible">
-<!--                                    <img width="100%" :src="imageUrl1" alt="">-->
-                                    @for(im in pictures){
-                                    <img width="100%" src="${im}">
-                                    @}
+
                             </div>
                         </div>
 
                     </div>
                 </div>
-
+                <input id="quantityHas" value="${item.quantityHas}" hidden="hidden">
                 <div class="form-group">
                     <label class="col-sm-3 control-label">发放数量:</label>
                     <div class="col-sm-9">
@@ -109,8 +113,8 @@
 
     <div class="row btn-group-m-t">
         <div class="col-sm-10 col-sm-offset-5">
-            <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
-            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+            <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.editSubmit()"/>
+            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
         </div>
     </div>
 
@@ -132,7 +136,7 @@
         },
         methods: {
             handleAvatarSuccess(res, file) {
-                TCarInfoDlg.goodsPicArray.push(file);
+                TGoodsInfoDlg.goodsPicArray.push(file.response);
             },
             beforeAvatarUpload(file) {
                 const isLt2M = file.size / 1024 / 1024 < 10;
@@ -142,7 +146,7 @@
                 return isLt2M;
             },
             handleRemove(file, fileList) {
-                TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
+                TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
                     return item.uid != file.uid;
                 });
             },
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
index 467b12e..f42e2e2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
@@ -432,6 +432,8 @@
                 }
             }
             cts = cityIds.join(',');
+        }else {
+            cts = cityIds;
         }
     }
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
index aff59ba..3b77702 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
@@ -2,8 +2,8 @@
  * 初始化车辆管理详情对话框
  */
 var language=1;
-var TCarInfoDlg = {
-    tCarInfoData : {},
+var TGoodsInfoDlg = {
+    tGoodsInfoData : {},
     validateFields: {
     },
     goodsPicArray:[],
@@ -14,7 +14,7 @@
 /**
  * 验证数据是否为空
  */
-TCarInfoDlg.validate = function () {
+TGoodsInfoDlg.validate = function () {
     $('#carInfoForm').data("bootstrapValidator").resetForm();
     $('#carInfoForm').bootstrapValidator('validate');
     return $("#carInfoForm").data('bootstrapValidator').isValid();
@@ -23,8 +23,8 @@
 /**
  * 清除数据
  */
-TCarInfoDlg.clearData = function() {
-    this.tCarInfoData = {};
+TGoodsInfoDlg.clearData = function() {
+    this.tGoodsInfoData = {};
 }
 
 /**
@@ -33,8 +33,8 @@
  * @param key 数据的名称
  * @param val 数据的具体值
  */
-TCarInfoDlg.set = function(key, val) {
-    this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+TGoodsInfoDlg.set = function(key, val) {
+    this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
     return this;
 }
 
@@ -44,14 +44,14 @@
  * @param key 数据的名称
  * @param val 数据的具体值
  */
-TCarInfoDlg.get = function(key) {
+TGoodsInfoDlg.get = function(key) {
     return $("#" + key).val();
 }
 
 /**
  * 关闭此对话框
  */
-TCarInfoDlg.close = function() {
+TGoodsInfoDlg.close = function() {
     parent.layer.close(window.parent.TPointProducts.layerIndex);
 }
 
@@ -59,7 +59,7 @@
 /**
  * 收集数据
  */
-TCarInfoDlg.collectData = function() {
+TGoodsInfoDlg.collectData = function() {
     this
     .set('id')
     .set('isPlatCar')
@@ -114,7 +114,7 @@
     });
     this.layerIndex = index;
 }
-TCarInfoDlg.selecUserOpt = function (arrays){
+TGoodsInfoDlg.selecUserOpt = function (arrays){
     console.log(arrays)
     //获取所有的值
     var subArr= this.storeIds;
@@ -145,15 +145,15 @@
     console.log(e);
     var row = $(e).closest('tr');
     var value = row.find('#id').val();
-    TCarInfoDlg.storeIds.splice(TCarInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+    TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
     $(e).parent().parent().remove();
-    console.log('storeIds',TCarInfoDlg.storeIds)
+    console.log('storeIds',TGoodsInfoDlg.storeIds)
 }
-TCarInfoDlg.delete = function (o) {
+TGoodsInfoDlg.delete = function (o) {
     $(o).parent("div").remove()
 }
 var num = 0;
-TCarInfoDlg.addBranch = function () {
+TGoodsInfoDlg.addBranch = function () {
     num=num+1;
     var a= "";
     a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
@@ -165,7 +165,7 @@
         "                                <option value=\"\">请选择</option>\n" +
         "                            </select>\n" +
         "                            <label class=\"col-sm-1\" style=\"width: 7%;margin-top: 7px\">市</label>\n" +
-        "                            <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TCarInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+        "                            <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
         "                        </div>";
     $("#cityDemo").append($(a));
     getProvince(num);
@@ -229,7 +229,7 @@
 /**
  * 提交添加
  */
-TCarInfoDlg.addSubmit = function() {
+TGoodsInfoDlg.addSubmit = function() {
 
     this.clearData();
     this.collectData();
@@ -273,7 +273,7 @@
                 Feng.success("Sangat berhasil ditambah!");
             }
             window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
+            TGoodsInfoDlg.close();
         }else{
             Feng.error(data.msg);
         }
@@ -281,7 +281,7 @@
     },function(data){
         Feng.error("添加失败!" + data.responseJSON.message + "!");
     });
-    ajax.set(this.tCarInfoData);
+    ajax.set(this.tGoodsInfoData);
     ajax.set("provinceCode",pCode);
     ajax.set("cityCode",cCode);
     ajax.set("name",name);
@@ -290,68 +290,71 @@
 }
 
 /**
+ * 删除图片的函数
+ * @param e
+ */
+function delImg(e){
+    $(e).parent().remove();
+}
+
+
+/**
  * 提交修改
  */
-TCarInfoDlg.editSubmit = function() {
+TGoodsInfoDlg.editSubmit = function() {
+    let cover = $("#cover").val();
+    let goodsId = $("#goodsId").val();
+    var productImages = "";
+    if (TGoodsInfoDlg.goodsPicArray.length > 0){
+        productImages = TGoodsInfoDlg.goodsPicArray.join(',');
+    }
+    let quantityIssued = $("#quantityIssued").val();
+    let pickUpQuantity = $("#pickUpQuantity").val();
+    let editor = jQuery.trim(TGoodsInfoDlg.editor.getContent());
+    console.log('editor:',editor)
 
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    let name = $("#name").val()
-    let phone = $("#phone").val()
+    let sort = $("#sort").val();
 
-    if(pCode==''){
-        Feng.info("请选择省")
-        return;
+    if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
+        return Feng.error('发放数量不能为空!');
     }
-    if(cCode==''){
-        Feng.info("请选择市")
-        return;
+    if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
+        return Feng.error('限领数量不能为空!');
     }
-    if(name==''){
-        Feng.info("管理员姓名不能为空")
-        return;
+    let quantityHas = $("#quantityHas").val();
+    if (quantityIssued <= quantityHas){
+        return Feng.error('发放数量小于已领数量!');
     }
-    if(phone==''){
-        Feng.info("管理员手机号不能为空")
-        return;
+
+
+    if (editor === undefined || editor === null || editor === ''){
+        return Feng.error('兑换说明不能为空!');
     }
+    if (sort === undefined || sort === null || sort === ''){
+        return Feng.error('排序不能为空!');
+    }
+
     //提交信息
-    var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){
-        if(data=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("修改成功!");
-            }else if(language==2){
-                Feng.success("Modify successfully!");
-            }else {
-                Feng.success("Mengubah dengan sukses!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
+    var ajax = new $ax(Feng.ctxPath + "/tGoods/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.TPointProducts.table.refresh();
+        TGoodsInfoDlg.close();
     },function(data){
         Feng.error("修改失败!" + data.responseJSON.message + "!");
     });
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.set("id",$("#id").val());
+    ajax.set("pointMerchandiseId",goodsId);
+    ajax.set("quantityIssued",quantityIssued);
+    ajax.set("pickUpQuantity",pickUpQuantity);
+    ajax.set("redemptionInstructions",editor);
+    ajax.set("cover",cover);
+    ajax.set("productImages",productImages);
+    ajax.set("sort",sort);
     ajax.start();
 }
 
 $(function() {
     getProvince(null);
-    Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
+    Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
     // 初始化图片上传
     var carPhoto = new $WebUpload("cover");
     carPhoto.setUploadBarId("progressBar");
@@ -359,13 +362,13 @@
     var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
     drivingLicensePhoto.setUploadBarId("progressBar");
     drivingLicensePhoto.init();
-    TCarInfoDlg.editor = UE.getEditor('editor');
+    TGoodsInfoDlg.editor = UE.getEditor('editor');
 });
 
 /**
  * 选择分公司后执行
  */
-TCarInfoDlg.oneChange = function (e) {
+TGoodsInfoDlg.oneChange = function (e) {
     var oneId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
         if(data!=null){
@@ -390,7 +393,7 @@
  * 类型改变执行
  * @param e
  */
-TCarInfoDlg.companyTypeClick = function (e) {
+TGoodsInfoDlg.companyTypeClick = function (e) {
     if (1 == e){
         $(".companyDiv").hide();
     } else if (2 == e){
@@ -401,7 +404,7 @@
 /**
  * 车辆品牌改变时执行
  */
-TCarInfoDlg.brandChange = function (e) {
+TGoodsInfoDlg.brandChange = function (e) {
     var carBrandId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
         if(data!=null){
@@ -426,7 +429,7 @@
 /**
  * 专车服务被点击
  */
-TCarInfoDlg.zcServerClick = function () {
+TGoodsInfoDlg.zcServerClick = function () {
     var serverBox1 = $('#serverBox1').prop('checked');
     if (serverBox1){
         $("#zcModelDiv").show();
@@ -438,7 +441,7 @@
 /**
  * 跨城服务被点击
  */
-TCarInfoDlg.kcServerClick = function () {
+TGoodsInfoDlg.kcServerClick = function () {
     var serverBox3 = $('#serverBox3').prop('checked');
     if (serverBox3){
         $("#kcModelDiv").show();
diff --git a/cloud-server-other/src/main/resources/logback-spring.xml b/cloud-server-other/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-other/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/Users/java/logs"/>
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
-    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录  Rolling strategy of the logger, recording by date or by size.-->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>DENY</onMatch>
-            <onMismatch>ACCEPT</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4  最终的策略:
-                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
-    <springProfile name="dev">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh" level="debug"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="fat">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-    <springProfile name="prod">
-        <root level="warn">
-            <!-- 生产环境最好不配置console写文件 -->
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="ALL_FILE" />
-        </root>
-        <logger name="com.dsh.course.mapper" level="error"/>
-        <logger name="business-log" level="warn"/>
-    </springProfile>
-
-</configuration>
\ No newline at end of file

--
Gitblit v1.7.1