Kaynağa Gözat

修改日志配置,增加客户端小程序微信客服组件

skyline 3 hafta önce
ebeveyn
işleme
6f93c5b260

+ 0 - 1
haha-miniapp/src/main/java/com/haha/miniapp/controller/WeChatCustomerController.java

@@ -3,7 +3,6 @@ package com.haha.miniapp.controller;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.util.XmlUtil;
 import cn.hutool.crypto.digest.DigestUtil;
-import com.alibaba.fastjson2.JSON;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;

+ 19 - 21
haha-miniapp/src/main/resources/logback-spring.xml

@@ -1,43 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <contextName>logback</contextName>
-    
-    <!-- 使用 Spring Boot 的日志路径配置 -->
+    <contextName>haha-miniapp</contextName>
+
     <springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="./logs"/>
-    <property name="log.path" value="${LOG_PATH}/haha-miniapp.log"/>
+    <springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="haha-miniapp"/>
+
+    <property name="log.path" value="${LOG_PATH}/${APP_NAME}.log"/>
+
     <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%thread] %highlight(%-5level) %cyan(%logger{36}) - %msg%n"/>
     <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%thread] %-5level %logger{36} - %msg%n"/>
-    
-    <!-- 控制台输出 -->
+
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
             <charset>UTF-8</charset>
         </encoder>
     </appender>
-    
-    <!-- 文件输出 -->
+
     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${log.path}</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_PATH}/haha-miniapp-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
-            <maxHistory>30</maxHistory>
-        </rollingPolicy>
         <encoder>
             <pattern>${FILE_LOG_PATTERN}</pattern>
             <charset>UTF-8</charset>
         </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
+            <maxFileSize>100MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
     </appender>
 
-    <!-- ERROR 级别日志文件输出 -->
     <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}/haha-miniapp-error.log</file>
+        <file>${LOG_PATH}/${APP_NAME}-error.log</file>
         <encoder>
             <pattern>${FILE_LOG_PATTERN}</pattern>
             <charset>UTF-8</charset>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_PATH}/haha-miniapp-error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
+            <fileNamePattern>${LOG_PATH}/${APP_NAME}-error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
             <maxFileSize>50MB</maxFileSize>
             <maxHistory>60</maxHistory>
             <totalSizeCap>5GB</totalSizeCap>
@@ -49,25 +50,22 @@
         </filter>
     </appender>
 
-    <!-- 开发环境:控制台输出 -->
     <springProfile name="dev,default">
         <root level="INFO">
             <appender-ref ref="CONSOLE"/>
             <appender-ref ref="FILE"/>
             <appender-ref ref="ERROR_FILE"/>
         </root>
-        <logger name="com.haha.miniapp" level="DEBUG"/>
+        <logger name="com.haha" level="DEBUG"/>
         <logger name="cn.dev33.satoken" level="DEBUG"/>
     </springProfile>
 
-    <!-- 生产环境:文件输出 -->
     <springProfile name="prod">
         <root level="INFO">
-            <appender-ref ref="CONSOLE"/>
             <appender-ref ref="FILE"/>
             <appender-ref ref="ERROR_FILE"/>
         </root>
-        <logger name="com.haha.miniapp" level="INFO"/>
-        <logger name="cn.dev33.satoken" level="INFO"/>
+        <logger name="com.haha" level="INFO"/>
+        <logger name="cn.dev33.satoken" level="WARN"/>
     </springProfile>
 </configuration>

+ 12 - 0
haha-mp/src/components/CustomerServiceButton.vue

@@ -69,12 +69,24 @@ const onContact = (e: any) => {
     width: 100%;
     display: flex;
     align-items: center;
+    justify-content: flex-start;
     padding: $spacing-md $spacing-lg;
     border-radius: 0;
     text-align: left;
     min-height: 88rpx;
     box-sizing: border-box;
 
+    :deep(image),
+    ::v-deep image,
+    .menu-svg-icon {
+      width: 40rpx !important;
+      height: 40rpx !important;
+      min-width: 40rpx !important;
+      min-height: 40rpx !important;
+      max-width: 40rpx !important;
+      max-height: 40rpx !important;
+    }
+
     &:active {
       background: $color-bg-secondary;
     }

+ 6 - 0
haha-mp/src/pages.json

@@ -130,6 +130,12 @@
 			}
 		}
 	],
+	"easycom": {
+		"autoscan": true,
+		"custom": {
+			"^CustomerServiceButton$": "@/components/CustomerServiceButton.vue"
+		}
+	},
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "AI零售柜",

+ 0 - 1
haha-mp/src/pages/index/index.vue

@@ -68,7 +68,6 @@ import { checkPayscoreEnabled } from '../../api/payscore'
 import { getCouponCount } from '../../api/coupon'
 import { isLoggedIn, getToken } from '../../utils/auth'
 import { logger } from '../../utils/logger'
-import CustomerServiceButton from '../../components/CustomerServiceButton.vue'
 
 // 页面显示时检查 token
 onShow(() => {

+ 3 - 2
haha-mp/src/pages/my/my.vue

@@ -86,6 +86,7 @@
             </view>
             <view class="menu-text">联系客服</view>
             <view class="service-phone">在线咨询</view>
+            <view class="menu-arrow"></view>
           </CustomerServiceButton>
           <view class="menu-item" @click="goToOfficialAccount">
             <view class="menu-icon">
@@ -118,7 +119,6 @@ import { clearAuth, getUserInfo as getStoredUserInfo } from '../../utils/auth';
 import { logger } from '../../utils/logger';
 import { APP_VERSION } from '../../utils/config';
 import type { UserInfo } from '../../api/user';
-import CustomerServiceButton from '../../components/CustomerServiceButton.vue';
 
 const userInfo = ref<UserInfo | null>(null);
 const availableCouponCount = ref(0);
@@ -415,7 +415,8 @@ const handleLogout = () => {
   .service-phone {
     font-size: 24rpx;
     color: $color-text-secondary;
-    margin-left: $spacing-sm;
+    margin-left: auto;
+    margin-right: $spacing-sm;
   }
 }
 

+ 0 - 1
haha-mp/src/pages/orderDetail/orderDetail.vue

@@ -139,7 +139,6 @@ import { getOrderDetail } from '../../api/order';
 import type { OrderInfo } from '../../api/order';
 import { checkAuth } from '../../utils/auth';
 import { getStatusText, canRefund } from '../../utils/order';
-import CustomerServiceButton from '../../components/CustomerServiceButton.vue';
 
 const order = ref<OrderInfo | null>(null);
 const loading = ref(false);

+ 0 - 1
haha-mp/src/pages/refund/refund.vue

@@ -146,7 +146,6 @@ import { checkAuth } from '../../utils/auth';
 import { getOrderDetail } from '../../api/order';
 import type { OrderInfo } from '../../api/order';
 import { post } from '../../utils/request';
-import CustomerServiceButton from '../../components/CustomerServiceButton.vue';
 
 // 路由参数
 const orderId = ref<string>('');

+ 0 - 1
haha-mp/src/pages/shopping/shopping.vue

@@ -125,7 +125,6 @@ import type { RecognizeResultResponse } from '../../api/status';
 
 import { logger } from '../../utils/logger';
 import type { OrderProduct } from '../../api/order';
-import CustomerServiceButton from '../../components/CustomerServiceButton.vue';
 
 const doorStatus = ref<'opened' | 'closing' | 'closed' | 'error'>('opened');
 const countdown = ref(60);