server: port: 9082 tomcat: headers: X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mode=block Strict-Transport-Security: max-age=31536000; includeSubDomains spring: servlet: multipart: max-file-size: 50MB max-request-size: 50MB application: name: cfc-backend datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.16.251:3306/zxyj?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true username: zxyj password: zxyj@123 hikari: maximum-pool-size: 50 minimum-idle: 10 connection-timeout: 30000 idle-timeout: 600000 max-lifetime: 1800000 pool-name: CfcHikariPool sfms: datasource: enabled: false # 本地开发禁用 SFMS 数据源,需要迁移时改为 true driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.16.251:3306/zxyj?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true username: zxyj password: zxyj@123 mybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.etotem.cfc.entity configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: id-type: auto logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 jwt: secret: cfc-secret-key-2026-spring-boot-jwt-token expiration: 86400000 zkxz: enabled: false sync-api-url: https://api.zkxz.org.cn/api/ login-url: member/login sync-client-url: user/create list-client-url: user/list sync-teacher-url: teacher/create user-report: user/report report-info: report/info zx-user: "" zx-pass: "" wechat: appid: wx5ba8038ef16fb245 secret: 3dae525c6f5e010cc034f59abbd1b1cc mch-id: 1703255039 mch-key: wx5ba8038ef16fb245wx5ba8038ef16f api-v3-key: wx5ba8038ef16fb245wx5ba8038ef16f mch-serial-no: 53C2A906094D725BC350A3414AADCA6D79882AAF private-key-path: cert/apiclient_key.pem notify-url: http://cfc.bianwoyou.com.cn/api/payment/notify login-url: https://api.weixin.qq.com/sns/jscode2session phone-url: https://api.weixin.qq.com/wxa/business/getuserphonenumber test-mode: false # 测试模式:跳过微信API调用,使用模拟数据 test-phone: "13800138000" # 测试模式使用的手机号 alert-template-id: ${WECHAT_ALERT_TEMPLATE_ID:} promotion-tier-template-id: ${WECHAT_PROMOTION_TIER_TEMPLATE_ID:} # 小程序码环境:dev=development / test=trial / prod=release env-version: ${WECHAT_ENV_VERSION:release} dify: base-url: http://dify.bianwoyou.cn/v1 api-key: app-rtNSAHG2NFzRsXCGkeZlVNR9 nutrition-api-key: app-OnHzTiI6EULUfLyceCDqJkQu # 精准营养助手 tongue-api-key: "" # 舌诊分析,空字符串=mock模式 callback-secret: dify-callback-secret # Dify Workflow HTTP回调认证密钥 math: verify-mode: dify # dify | eval; dify=走Dify工作流, eval=服务端计算(兜底) workflow-id: "" # Dify 数学判题工作流 ID(留空则使用 eval 兜底) upload: base-dir: /data/cfc-uploads allowed-types: image/jpeg,image/png,image/gif,image/webp shop: order: payment-timeout-minutes: 30 # 订单超时时间(分钟) logging: level: com.etotem.cfc: debug # Admin 登录配置 admin: skip-captcha: true # 测试环境跳过验证码,方便自动化测试