application-prod.yml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. server:
  2. port: 8989
  3. spring:
  4. datasource:
  5. type: com.alibaba.druid.pool.DruidDataSource
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. url: jdbc:mysql://rm-2vc2zl1990od9qvg0eo.mysql.cn-chengdu.rds.aliyuncs.com:3306/z_electric?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
  8. username: root
  9. password: 1KQaNI+vPz8^xfYcb%l6
  10. data:
  11. redis:
  12. database: 6
  13. host: 47.109.18.141
  14. port: 6379
  15. password: BXyzm3RKR2nA9vn5ZkeP
  16. timeout: 10s
  17. lettuce:
  18. pool:
  19. # 连接池最大连接数 默认8 ,负数表示没有限制
  20. max-active: 8
  21. # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认-1
  22. max-wait: -1
  23. # 连接池中的最大空闲连接 默认8
  24. max-idle: 8
  25. # 连接池中的最小空闲连接 默认0
  26. min-idle: 0
  27. cache:
  28. enabled: false
  29. # 缓存类型 redis、none(不使用缓存)
  30. type: redis
  31. # 缓存时间(单位:ms)
  32. redis:
  33. time-to-live: 3600000
  34. # 缓存null值,防止缓存穿透
  35. cache-null-values: true
  36. caffeine:
  37. spec: initialCapacity=50,maximumSize=1000,expireAfterWrite=600s
  38. # 邮件配置
  39. mail:
  40. host: smtp.youlai.tech
  41. port: 587
  42. username: your-email@example.com
  43. password: 123456
  44. properties:
  45. mail:
  46. smtp:
  47. auth: true
  48. starttls:
  49. enable: true
  50. # 邮件发送者
  51. from: youlaitech@163.com
  52. # 第三方认证配置
  53. third-party:
  54. jwt:
  55. secret: "vgct1TZ4ZikKjaaeIiq3LUwIvpmcgYa6ABCD1234EFGH5678IJKL9012MNOP3456"
  56. expire: 9600
  57. mybatis-plus:
  58. mapper-locations: classpath*:/mapper/**/*.xml
  59. global-config:
  60. db-config:
  61. # 主键ID类型
  62. id-type: none
  63. # 逻辑删除对应的全局属性名(注意:须是对象属性名,不能是表字段名,如 isDeleted 而非 is_deleted,否则逻辑删除失效)
  64. logic-delete-field: isDeleted
  65. # 逻辑删除-删除值
  66. logic-delete-value: 1
  67. # 逻辑删除-未删除值
  68. logic-not-delete-value: 0
  69. configuration:
  70. # 驼峰下划线转换
  71. map-underscore-to-camel-case: true
  72. # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
  73. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  74. # 异步线程池配置
  75. async:
  76. thread-pool:
  77. core-pool-size: 10
  78. max-pool-size: 50
  79. queue-capacity: 1000
  80. keep-alive-seconds: 60
  81. thread-name-prefix: "business-async-"
  82. allow-core-thread-timeout: false
  83. await-termination-seconds: 30
  84. # 安全配置
  85. security:
  86. session:
  87. type: jwt # 会话方式 jwt/redis-token
  88. access-token-time-to-live: 259200 # 访问令牌 有效期(单位:秒),默认 3 天,-1 表示永不过期
  89. refresh-token-time-to-live: 1209600 # 刷新令牌有效期(单位:秒),默认 14 天,-1 表示永不过期
  90. jwt:
  91. secret-key: SecretKey012345678901234567890123456789012345678901234567890123456789 # JWT密钥(HS256算法至少32字符)
  92. redis-token:
  93. allow-multi-login: true # 是否允许多设备登录
  94. # 安全白名单路径,仅跳过 AuthorizationFilter 过滤器,还是会走 Spring Security 的其他过滤器(CSRF、CORS等)
  95. ignore-urls:
  96. - /api/v1/auth/login/** # 登录接口(账号密码登录、手机验证码登录和微信登录)
  97. - /api/v1/auth/captcha # 验证码获取接口
  98. - /api/v1/auth/refresh-token # 刷新令牌接口
  99. - /api/v1/auth/logout # 开放退出登录
  100. - /api/v1/auth/wx/** # 微信相关所有接口
  101. - /ws/** # WebSocket接口
  102. - /applet/v1/homePage/** # 用户端分页查询站点信息
  103. - /charge-business/charge-business/v1/linkData/query_token
  104. - /applet/v1/station/connector/detail
  105. # 非安全端点路径,完全绕过 Spring Security 的安全控制
  106. unsecured-urls:
  107. - ${springdoc.swagger-ui.path}
  108. - /doc.html
  109. - /doc.html/**
  110. - /swagger-ui.html
  111. - /swagger-ui/**
  112. - /swagger-resources/**
  113. - /v3/api-docs
  114. - /v3/api-docs/**
  115. - /webjars/**
  116. - /favicon.ico
  117. - /charge-business/v1/linkData/**
  118. - /applet/v1/homePage/** # 用户端分页查询站点信息
  119. - /applet/v1/wft/order/notify
  120. - /third_party/v1/** # 第三方接入接口
  121. # 只走第三方过滤器、不走其他安全链
  122. third-party-urls:
  123. - /charge-business/v1/linkData/notification_start_charge_result
  124. - /charge-business/v1/linkData/notification_equip_charge_status
  125. - /charge-business/v1/linkData/notification_stop_charge_result
  126. - /charge-business/v1/linkData/notification_charge_order_info
  127. - /charge-business/v1/linkData/notification_stationStatus
  128. # XSS 和 SQL 注入防护过滤器配置
  129. filter:
  130. # 是否启用 XSS 防护
  131. xss-enabled: false
  132. # 是否启用 SQL 注入防护
  133. sql-injection-enabled: false
  134. # SQL 注入检测严格模式
  135. # true: 严格模式,可能误判一些正常输入
  136. # false: 宽松模式,减少误判但可能漏掉一些攻击
  137. sql-strict-mode: false
  138. # 排除的 URL 路径(不进行安全检查,注意:默认已经排除了 /doc.html、/swagger-ui 等接口文档相关路径)
  139. exclude-urls:
  140. - /api/v1/auth/captcha # 验证码接口
  141. - /charge-business/v1/linkData/ # 第三方充电平台接口(数据为加密的Base64,会误判)
  142. - /charge-business/v1/linkData/notification_charge_order_info
  143. - /charge-business/v1/linkData/notification_start_charge_result
  144. - /charge-business/v1/linkData/notification_equip_charge_status
  145. - /charge-business/v1/linkData/notification_stop_charge_result
  146. - /charge-business/v1/linkData/notification_stationStatus
  147. - /charge-business/v1/linkData/query_token
  148. - /applet/v1/homePage/test # 首页测试接口(包含加密数据)
  149. - /third-party/v1/** # 第三方接入接口(数据为加密的Base64,会误判)
  150. # 额外需要检查的请求头(默认已检查 User-Agent、Referer、X-Forwarded-For)
  151. check-headers:
  152. # - Referer
  153. # - X-Forwarded-For
  154. okhttp:
  155. connect-timeout: 30s
  156. read-timeout: 120s
  157. write-timeout: 60s
  158. retry-on-connection-failure: true
  159. max-retry-count: 2
  160. connection-pool:
  161. max-idle-connections: 200
  162. keep-alive-duration: 300s
  163. # 文件存储配置
  164. oss:
  165. # OSS 类型 (目前支持aliyun、minio、local)
  166. type: aliyun
  167. # MinIO 对象存储服务
  168. minio:
  169. # MinIO 服务地址
  170. endpoint: http://localhost:9000
  171. # 访问凭据
  172. access-key: minioadmin
  173. # 凭据密钥
  174. secret-key: minioadmin
  175. # 存储桶名称
  176. bucket-name: zsElectric
  177. # (可选) 自定义域名:配置后,文件 URL 会使用该域名格式
  178. custom-domain:
  179. # 阿里云OSS对象存储服务
  180. aliyun:
  181. # 服务Endpoint
  182. endpoint: oss-cn-beijing.aliyuncs.com
  183. # 访问凭据`
  184. access-key-id: LTAI5tJscqbev7wSugGCrEtt
  185. # 凭据密钥
  186. access-key-secret: xJkoJR1ILpXNSF2ERnxNq71UZTQNcB
  187. # 存储桶名称
  188. bucket-name: national-motion
  189. # 本地存储
  190. local:
  191. # 文件存储路径 请注意下,mac用户请使用 /Users/your-username/your-path/,否则会有权限问题,windows用户请使用 D:/your-path/
  192. storage-path: /Users/theo/home/
  193. # 短信配置
  194. sms:
  195. # 阿里云短信
  196. aliyun:
  197. accessKeyId: xxx
  198. accessKeySecret: xxx
  199. domain: dysmsapi.aliyuncs.com
  200. regionId: cn-shanghai
  201. signName: 中数未来
  202. templates:
  203. # 注册短信验证码模板
  204. register: SMS_22xxx771
  205. # 登录短信验证码模板
  206. login: SMS_22xxx772
  207. # 修改手机号短信验证码模板
  208. change-mobile: SMS_22xxx773
  209. # springdoc配置: https://springdoc.org/properties.html
  210. springdoc:
  211. swagger-ui:
  212. path: /swagger-ui.html
  213. operations-sorter: alpha
  214. tags-sorter: alpha
  215. api-docs:
  216. path: /v3/api-docs
  217. group-configs:
  218. - group: "系统管理"
  219. paths-to-match: "/**"
  220. packages-to-scan:
  221. - com.zsElectric.boot.auth.controller
  222. - com.zsElectric.boot.system.controller
  223. - com.zsElectric.boot.platform.file.controller
  224. - com.zsElectric.boot.platform.codegen.controller
  225. - com.zsElectric.boot.charging.controller
  226. - com.zsElectric.boot.business.controller
  227. - com.zsElectric.boot.business.controller.applet
  228. default-flat-param-object: true
  229. # knife4j 接口文档配置
  230. knife4j:
  231. # 是否开启 Knife4j 增强功能
  232. enable: true # 设置为 true 表示开启增强功能
  233. # 生产环境配置
  234. production: false # 设置为 true 表示在生产环境中不显示文档,为 false 表示显示文档(通常在开发环境中使用)
  235. setting:
  236. language: zh_cn
  237. # xxl-job 定时任务配置
  238. xxl:
  239. job:
  240. # 定时任务开关
  241. enabled: false
  242. admin:
  243. # 调度中心地址,多个逗号分隔
  244. addresses: http://127.0.0.1:8080/xxl-job-admin
  245. accessToken: default_token
  246. # 执行器配置
  247. executor:
  248. appname: xxl-job-executor-${spring.application.name} # 执行器AppName
  249. address: # 执行器注册地址,默认为空,多网卡时可手动设置
  250. ip: # 执行器IP,默认为空,多网卡时可手动设置
  251. port: 9999 # 执行器通讯端口
  252. logpath: /data/applogs/xxl-job/jobhandler # 任务运行日志文件存储磁盘路径
  253. logretentiondays: 30 # 日志保存天数,值大于3时生效
  254. # 验证码配置
  255. captcha:
  256. # 验证码类型 circle-圆圈干扰验证码|gif-Gif验证码|line-干扰线验证码|shear-扭曲干扰验证码
  257. type: circle
  258. # 验证码宽度
  259. width: 120
  260. # 验证码高度
  261. height: 40
  262. # 验证码干扰元素个数
  263. interfere-count: 2
  264. # 文本透明度(0.0-1.0)
  265. text-alpha: 0.8
  266. # 验证码字符配置
  267. code:
  268. # 验证码字符类型 math-算术|random-随机字符
  269. type: math
  270. # 验证码字符长度,type=算术时,表示运算位数(1:个位数运算 2:十位数运算);type=随机字符时,表示字符个数
  271. length: 1
  272. # 验证码字体
  273. font:
  274. # 字体名称 Dialog|DialogInput|Monospaced|Serif|SansSerif
  275. name: SansSerif
  276. # 字体样式 0-普通|1-粗体|2-斜体
  277. weight: 1
  278. # 字体大小
  279. size: 24
  280. # 验证码有效期(秒)
  281. expire-seconds: 120
  282. wx:
  283. #商户号
  284. mch_id: 105520131602
  285. #小程序appid
  286. appid: wx9894a01b9e92c368
  287. #appid密钥
  288. secret: b1e83dbcf83af310c38c0a138739ddcf
  289. #md5密钥
  290. key: f5131b3f07acb965a59041b690a29911
  291. #同一支付请求地址
  292. req_url: https://eoap.cebbank.com/uiap/bcac/pay/pay/gateway
  293. #支付请求成功后的回调地址--需要配置正确的域名
  294. # notify_url: https://13cd4c06.r28.cpolar.top/applet/v1/wft/order/notify
  295. notify_url: https://cd.admin.zswlgz.com/applet/v1/wft/order/notify
  296. #私钥
  297. mchPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDeFB5G2OYT762PpUytCw7Du40i6WnzcmbvEE9IXPXi+QirPwMvW9mBqNDIUk5hQS3ZnHjj80YQRWG6yksjE6kHAYIWahCDiaPlBqYvYSJ8ePzbT61THZJbzqFaIG3svW7xq9nsUmzVBub0ATIzC1DQRu9ZTdrj/iuMUEhJyJ8IHrTP09eTwNYdoagHQlKWRVoNE3LuU4GXG3VCbkQ2ixbMo8dXBisDIi3GYOSFWzota6H+OCp9Mta1jTqdwALKAU9PNlRkQwOMLk2OmMqGUhImVVpl+eGrIYn3iARce0alNFg8hghFMJ8MKpSxJDM6YHNOJQ06S25YYhTpd+C2/VOBAgMBAAECggEBAM/W9ksJ/bJU0xOn+W3N9oB7C+jLmMwtmmZM1lZ8IefNeC6Ep59wD81ISDXiydY9YQLTbVSxPjZGKOPfJZjrcnrLD4uYsmHYtFnI8klPWC40MTmzhRxPhcWESgAGb7prw+RMGIUS0yY/8nAUmn2pLnXunVzv/1b3bpxAGpdrOmMmU28GBt9AlXiIpVmnxnkhp66c4zFj5gvvVoDrz9m/6Acyn6n7yccCHD2iYw0D78GPItEWky38tH/FV0lRcCCYAf5fc2nFnicrdgj1RYjqTWxM7A92UecviTAbiuPO6CQQl7+sMtGU2d6UeKj0Xrrl2gly+lOS97P/NcLtZf5vklECgYEA8SMlCg5AToSkIwal7dXYgM2VlNFwSRDuO3hEVoWe7bM/LkEp8dqSpV025ZtngTY/qziXsGP/7l8bcS1th19cX/+/MFFOWsoxtqvOam2Elp+Qg1johEfnWI+Bo4WiQ5CHYNQRN3cuiWTc5HHuI0KQAEPx/aYogD057X2FIsiu6S0CgYEA68RAFsupZ6R8BhJbfY2CK07XLNvXu5DAYBmU3trmQFnaxXeQFfhQ8hi9m5Awu14YCnRmHzc8+QXFD/GqTAbxtImc6AZQKWdLuUntkitPWmJK6dtJC8Is3U9Yqz5+CkSmgZSfqW0DvEt7jagoNfpKgy29Qq4r35b6JsDXtnTQICUCgYEAjmwnkEzihn2pRFbE4jiP62OBmagqHb22N8HM+x1oxRQ9mOA8GfDy9GCd7/ddpt+Xs1V1omUt4GikGLCwJGiacsjm727WTKFnw3CuNgYBbcVI4Ys9qgOeDJyWATMIp8dRbktS7+OgxN2h6fuwn3rM+psm7p2ZBkUjVbXxUJ4fUPECgYEAw1wmAv2VjRUF0/4oI5w7bWlx8XDljT1/uuHXsuZN/qq2FgRht2LAqCsKCjprtwZcA2W6LUmXU32Ncg29ICxs4j1ZcAWzLOu0GoAAxKrwoSNrkeYr2/t1M5kJDzTEOfvywNMHjduQSdl+Mr5RO5D/Zz1iYztxjV9MPwpydHTM9KUCgYAHuT98NkBilMxQNNmUB13E10MYQvZuiGVFZtT3up69Elpmtm7Z5cEW7QNG0g1LPPfkzfWPsq+6I98FmozLickqvjntdpul4czTITn8SNHqoxvdbcVnDipF1KwlHcnXhjO1KjSZg3a/iv554OR3/rbD9SWDzDAT7Zy6zX9n8OwGRA==
  298. #公钥(商户平台的公钥,不是自己生成的公钥)
  299. platPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2HOacYJOO9zsWPVmauV/YCeR78RsRDtusdLEngi/JkPkZVSE0X47z2RpJncGyV1QfdHv0udVEND4bvjXku4qUJp5DYAulm6pDXdcwWPcdI77V7dqoDvYm9Cc8kGj9s+/0xeuxX4qJmwzFTf7XjRfTT7+OVSvFnnButAkgMuD3cW1rtcQYeY9S9puQneN1i1+Lek5GCpW5PFsezK6QMgrpB1TFVSF5tloUODfc4fBDY5quGxn29Fo9gzJXO8ehoRft/JEaS4rNqmlfbvaJfEROXALlKoUX8Iki050ss7WwIBS6xuV08JnHTUHzHmAzOscwyYmT3RZChPgluWuyYW30wIDAQAB
  300. # 微信小程序配置
  301. miniapp:
  302. # 微信小程序 AppID(在微信公众平台获取)
  303. app-id: wx9894a01b9e92c368
  304. # 微信小程序 AppSecret(在微信公众平台获取)
  305. app-secret: b1e83dbcf83af310c38c0a138739ddcf
  306. # ==================== AI 命令系统配置 ====================
  307. ai:
  308. # 是否启用 AI 功能
  309. enabled: false
  310. # 当前使用的提供商:qwen、deepseek、openai
  311. provider: qwen
  312. # 所有提供商配置(统一管理,扩展性强)
  313. providers:
  314. # 阿里通义千问(推荐:有免费额度)
  315. qwen:
  316. # API Key(https://bailian.console.aliyun.com/ 获取)
  317. api-key: ${QWEN_API_KEY:sk-c2941d05bf2f411ca80424fcxxxxxxxx}
  318. # Base URL(OpenAI 兼容端点)
  319. base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
  320. # 模型:qwen-plus(推荐)、qwen-turbo、qwen-max、qwen-long
  321. model: qwen-plus
  322. # 显示名称
  323. display-name: 阿里通义千问
  324. # 超时时间(秒)
  325. timeout: 30
  326. # DeepSeek
  327. deepseek:
  328. api-key: ${DEEPSEEK_API_KEY:}
  329. base-url: https://api.deepseek.com/v1
  330. model: deepseek-chat
  331. display-name: DeepSeek
  332. timeout: 30
  333. # OpenAI(添加新提供商只需配置,无需修改代码)
  334. openai:
  335. api-key: ${OPENAI_API_KEY:}
  336. base-url: https://api.openai.com/v1
  337. model: gpt-4
  338. display-name: OpenAI GPT-4
  339. timeout: 60
  340. # 安全配置
  341. security:
  342. enable-audit: true
  343. dangerous-operations-confirm: true
  344. function-whitelist:
  345. - deleteUser
  346. - updateUser
  347. - queryUsers
  348. - assignRole
  349. sensitive-params:
  350. - password
  351. - idCard
  352. - bankCard
  353. - token
  354. # 限流配置
  355. rate-limit:
  356. max-executions-per-minute: 10
  357. max-executions-per-day: 100