application.yml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. server:
  2. port: 8002
  3. spring:
  4. application:
  5. name: zhijiayun-pharmacy
  6. # 激活环境(dev=开发 / prod=生产)
  7. profiles:
  8. active: dev
  9. # Jackson 序列化时区(全局生效,北京时间返回前端)
  10. jackson:
  11. time-zone: Asia/Shanghai
  12. date-format: yyyy-MM-dd HH:mm:ss
  13. # 文件上传配置
  14. servlet:
  15. multipart:
  16. enabled: true
  17. max-file-size: 10MB
  18. max-request-size: 20MB
  19. file-size-threshold: 2MB
  20. # JWT 配置(公共,各环境可覆盖)
  21. jwt:
  22. secret: YourSuperSecretKeyForJWTTokenGenerationMustBeAtLeast256BitsLong!!
  23. user-expiration: 3600000 # 普通用户(PC等) 1小时(毫秒)
  24. admin-expiration: 43200000 # 管理员 12小时(毫秒)
  25. miniapp-expiration: 2592000000 # 小程序 30天(毫秒)
  26. expiration: 86400000 # 旧字段兼容
  27. refresh-expiration: 604800000 # 7天(毫秒)
  28. # 微信开放平台配置(公共,各环境可覆盖 app-id/app-secret)
  29. wechat:
  30. open:
  31. app-id: wxd5f6a9d072f9a9f0
  32. app-secret: 67d696a9f0a9d072f9a9f0d5f6a9d072
  33. qr-connect:
  34. redirect-uri: https://your-domain.com/api/auth/wechat/callback
  35. scope: snsapi_login
  36. # 外部系统(小程序后台)API 配置
  37. # 注意:API Key 鉴权已升级为数据库管理(t_system_config 表,configType=EXTERNAL_API,config_key=miniapp_external_api)
  38. # config_value JSON 中包含 apiKey 和 allowedIps 字段
  39. # 运营端管理路径:/api/admin/system-config(按 configType 筛选)
  40. # 以下 yml 配置仅用于数据库无匹配记录时的兜底,正式使用请通过运营端管理
  41. external-system:
  42. miniapp:
  43. base-url: ${EXTERNAL_MINIAPP_API_URL:https://api.kailin.com.cn}
  44. api-key: ${EXTERNAL_MINIAPP_API_KEY:a3f8c21e67b94d0e5f1a6c8d3b9e2071}
  45. connect-timeout: 5000
  46. read-timeout: 10000
  47. # 第三方"智价云药店版"店铺资源同步接口(审核入驻信息通过后推送客户信息)
  48. shop-resource:
  49. base-url: ${EXTERNAL_SHOP_RESOURCE_API_URL:https://api.kailin.com.cn}
  50. app-id: ${EXTERNAL_SHOP_RESOURCE_APP_ID:wx246605ec671bf08d}
  51. connect-timeout: 5000
  52. read-timeout: 10000
  53. # 应用下载与站点配置
  54. app:
  55. download:
  56. windows-url: ${APP_DOWNLOAD_WINDOWS_URL:https://proprice.kailin.com.cn/download/windows}
  57. official-site: ${APP_OFFICIAL_SITE:https://proprice.kailin.com.cn}
  58. version: ${APP_VERSION:1.0.0}
  59. # 阿里云短信(公共模板,各环境可覆盖 key)
  60. sms:
  61. access-key-id: ${ALIBABA_CLOUD_ACCESS_KEY_ID:LTAI5tDwjfteBvivYN41r8sJ}
  62. access-key-secret: ${ALIBABA_CLOUD_ACCESS_KEY_SECRET:yowuOGi2nYYnrqGpO3qcz94C4brcPp}
  63. sign-name: 开邻
  64. template-code: SMS_483305249
  65. code-length: 6
  66. expire-minutes: 5
  67. endpoint: dysmsapi.aliyuncs.com
  68. # 阿里云OSS配置
  69. oss:
  70. endpoint: ${OSS_ENDPOINT:oss-cn-shenzhen.aliyuncs.com}
  71. access-key-id: ${ALIBABA_CLOUD_ACCESS_KEY_ID:LTAI5t5pWgfa1BMztEuWBjdK}
  72. access-key-secret: ${ALIBABA_CLOUD_ACCESS_KEY_SECRET:wU7FLzEr1NqLg2rJrmAu7Ibn69np0u}
  73. bucket-name: ${OSS_BUCKET_NAME:kailin-saas}
  74. base-path: ${OSS_BASE_PATH:uploads/}
  75. # 访问URL前缀(如绑定了自定义域名,可覆盖;默认使用OSS公网域名)
  76. url-prefix: ${OSS_URL_PREFIX:}
  77. # MyBatis-Plus 配置
  78. mybatis-plus:
  79. configuration:
  80. map-underscore-to-camel-case: true
  81. log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  82. global-config:
  83. db-config:
  84. id-type: auto
  85. logic-delete-field: deleted
  86. logic-delete-value: 1
  87. logic-not-delete-value: 0
  88. mapper-locations: classpath*:/mapper/**/*.xml
  89. # 日志配置
  90. logging:
  91. level:
  92. com.xuekairui: debug
  93. org.springframework.security: info
  94. file:
  95. name: logs/zhijiayun-pharmacy.log
  96. max-size: 200MB
  97. max-history: 30
  98. total-size-cap: 10GB
  99. logback:
  100. rollingpolicy:
  101. max-file-size: 200MB
  102. max-history: 30
  103. total-size-cap: 10GB
  104. # ========== 支付模块配置 ==========
  105. payment:
  106. mock: false
  107. order-expire-minutes: 15
  108. qrcode:
  109. width: 200
  110. height: 200
  111. # 微信支付配置(Native扫码支付)
  112. wechat:
  113. app-id: ${WECHAT_PAY_APP_ID:}
  114. mch-id: ${WECHAT_PAY_MCH_ID:}
  115. api-v3-key: ${WECHAT_PAY_API_V3_KEY:}
  116. private-key-path: ${WECHAT_PAY_PRIVATE_KEY_PATH:}
  117. serial-no: ${WECHAT_PAY_SERIAL_NO:}
  118. notify-url: ${WECHAT_PAY_NOTIFY_URL:https://your-domain.com/api/payment/callback/wechat}
  119. platform-cert-path: ${WECHAT_PAY_PLATFORM_CERT_PATH:}
  120. # 微信小程序支付(JSAPI 调起支付签名 appId)
  121. # 小程序 JSAPI 下单签名的 appId 必须为小程序自身的 appId,与 Native 扫码的 appId 区分
  122. # 不配置时自动回退到 payment.wechat.app-id(当两者相同时可省略)
  123. miniapp:
  124. app-id: ${WECHAT_PAY_MINIAPP_APP_ID:}
  125. app-secret: ${WECHAT_PAY_MINIAPP_APP_SECRET:}
  126. # 支付宝配置(电脑网站支付 alipay.trade.page.pay)
  127. alipay:
  128. app-id: ${ALIPAY_APP_ID:}
  129. app-private-key: ${ALIPAY_APP_PRIVATE_KEY:}
  130. alipay-public-key: ${ALIPAY_PUBLIC_KEY:}
  131. notify-url: ${ALIPAY_NOTIFY_URL:https://your-domain.com/api/payment/callback/alipay}
  132. return-url: ${ALIPAY_RETURN_URL:https://your-domain.com/payment/success}
  133. server-url: https://openapi.alipay.com/gateway.do
  134. format: json
  135. charset: UTF-8
  136. sign-type: RSA2
  137. # 支付宝安心付配置(小程序应用 - 周期卡会员管理)
  138. # 安心付对应的是支付宝小程序应用,与网页应用(二维码付款)使用不同的 appId、密钥和证书
  139. anxin-alipay:
  140. enabled: false
  141. app-id: ${ALIPAY_ANXIN_APP_ID:}
  142. app-private-key: ${ALIPAY_ANXIN_APP_PRIVATE_KEY:}
  143. alipay-public-key: ${ALIPAY_ANXIN_PUBLIC_KEY:}
  144. notify-url: ${ALIPAY_ANXIN_NOTIFY_URL:https://your-domain.com/api/payment/anxin/notify/deduct}
  145. card-notify-url: ${ALIPAY_ANXIN_CARD_NOTIFY_URL:https://your-domain.com/api/payment/anxin/notify/card-change}
  146. server-url: https://openapi.alipay.com/gateway.do
  147. format: json
  148. charset: UTF-8
  149. sign-type: RSA2
  150. # ========== 网关配置 ==========
  151. gateway:
  152. logging:
  153. enabled: true
  154. slow-threshold: 1000
  155. exclude-paths:
  156. - /actuator/health
  157. - /favicon.ico
  158. rate-limit:
  159. enabled: true
  160. default-limit: 100
  161. default-window: 60
  162. rules:
  163. # 短信验证码:防短信轰炸,10次/分钟
  164. - path-prefixes:
  165. - /api/auth/sms
  166. limit: 10
  167. # 登录/Token/注册/邀请:防刷,30次/分钟
  168. - path-prefixes:
  169. - /api/auth/login
  170. - /api/auth/wechat
  171. - /api/auth/external
  172. - /api/auth/refresh
  173. - /api/auth/register
  174. - /api/invite/click
  175. limit: 30
  176. # 其余接口走默认 100次/分钟,无需单独列出