# 端口 server: port: 38927 # 多环境配置 spring: profiles: active: dev # active: prod application: name: server # 连接池配置 datasource: druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 30000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 test-while-idle: true test-on-borrow: true test-on-return: false remove-abandoned: true remove-abandoned-timeout: 1800 #pool-prepared-statements: false #max-pool-prepared-statement-per-connection-size: 20 filters: stat, wall validation-query: SELECT 'x' aop-patterns: com.gxwebsoft.*.*.service.* stat-view-servlet: url-pattern: /druid/* reset-enable: true login-username: admin login-password: admin # json时间格式设置 jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss # 设置上传文件大小 servlet: multipart: max-file-size: 100MB max-request-size: 100MB mvc: async: request-timeout: 600000 # 邮件服务器配置 mail: host: smtp.qq.com username: 517289602@qq.com password: fhvgbekxmxrxcaec default-encoding: UTF-8 properties: mail: smtp: auth: true socketFactory: class: javax.net.ssl.SSLSocketFactory port: 465 # Mybatis-plus配置 mybatis-plus: mapper-locations: classpath*:com/gxwebsoft/**/*Mapper.xml configuration: map-underscore-to-camel-case: true cache-enabled: true global-config: :banner: false db-config: id-type: auto logic-delete-value: 1 logic-not-delete-value: 0 # 框架配置 config: open-office-home: C:/OpenOffice4/ swagger-base-package: com.gxwebsoft swagger-title: 网宿软件 API文档 swagger-version: 1.0 token-key: WLgNsWJ8rPjRtnjzX/Gx2RGS80Kwnm/ZeLbvIL+NrBs= server-url: https://server.gxwebsoft.com/api file-server: http://localhost:38927 upload-path: /Users/liangxin/Project/JAVA/tower-java/ local-upload-path: /Users/gxwebsoft/Documents/uploads/ wx: miniapp: configs: - appid: wxf7ee9cd5801bf7a6 secret: b418211f69a64c9cecd1e5efc2a5765c msgDataFormat: JSON wxpay: api-v3-key: g4ny70843ynmcoxwfej0v2yuv9n28nut pub-key-id: PUB_KEY_ID_0117329300312025112800181693000807 app-id: wxf7ee9cd5801bf7a6 mch-id: 1732930031 mch-serial-no: 7EE24C695B278DB2C4F0C1CB42069065ECCBE3FD # Dify 平台对接 # # 注意这里有两套环境,Key 与知识库 ID 互不通用(实测:文档给的 Key 打到 82.156.98.71 上全部 401): # 1) 公网实例 http://82.156.98.71/v1 —— 当前线上在用的实例,下列默认值即取自它 # 2) 内网实例 http://10.100.158.15/v1 —— 见《Dify API 文档》,已由服务器实测 8 个应用全部 200 # 切到内网实例时,在 application-prod.yml 覆盖 base-url 与全部 apps/dataset 密钥即可。 # 不要直接改这里的默认值,否则本地开发会一起被切走。 dify: base-url: http://82.156.98.71/v1 timeout-ms: 600000 apps: # 医科大团委智能知识库问答系统 chat: app-ou0qPesouiopaPpmxcFV2gFG # 活动策划大纲生成 activity-outline: app-hp4PJknbejImmdDuMfziVcnN # AI 内容创作与宣传助手 manuscript: app-hCzkdd6OsnMnwI2dQByLyNIN # AI 创意助手 creative-assistant: app-l3accBEJLDAh9Pn8fLW8nNJ0 # 项目书质量初审 project-quality-review: app-HiI2FrNjcwL0A7QOOf7GIP50 # 竞赛文件预处理 competition-history-preprocess: app-bhyQLMAw2JEDXMTs2mzNRiIU # 医科大智能文档处理系统 # 公网实例上该 Key 无效(实测 401),仅内网实例可用,故允许环境变量覆盖 document-process: ${DIFY_KEY_DOCUMENT_PROCESS:app-ohdIhk0lVfUwoy10xXRebmjD} # 申报书生成,同上 declaration: ${DIFY_KEY_DECLARATION:app-k20aDmiQYh3LxqZSLuX8wjkU} dataset: # 知识库列表等不区分知识库的接口所用密钥 api-key: ${DIFY_DATASET_API_KEY:dataset-1n6MECRtQvEVGOL1o7SrSGfe} # 知识库 ID -> 独立密钥 keys: b342f096-98b1-4a83-a296-f4ab60a6db0e: ${DIFY_DATASET_API_KEY:dataset-1n6MECRtQvEVGOL1o7SrSGfe} aa72c649-71a0-46e7-ac55-47f44b397a4e: ${DIFY_DATASET_API_KEY:dataset-1n6MECRtQvEVGOL1o7SrSGfe} # 内网实例的两个知识库各自签发独立密钥 181d58e3-78c2-4b7d-939c-57e780a8f7d6: ${DIFY_DATASET_KEY_COMPETITION:dataset-jaqtnAQvYcQTEjECzxhQfNCv} 3e0ac108-3a0d-41e2-8447-aa1c1044d3ac: ${DIFY_DATASET_KEY_GXMU:dataset-f2a0Hjxix7lBcPNZtNMyKDTQ} # 业务代号 -> 知识库 ID ids: # 公网实例现用:挑战杯历史案例(5 篇) challenge-cup: b342f096-98b1-4a83-a296-f4ab60a6db0e gxmu-constitution: aa72c649-71a0-46e7-ac55-47f44b397a4e # 内网实例:竞赛案例(146 篇)、GXMU 团章(10 篇) competition-cases: 181d58e3-78c2-4b7d-939c-57e780a8f7d6 gxmu-constitution-internal: 3e0ac108-3a0d-41e2-8447-aa1c1044d3ac # 工作流变量名映射。 # 左边是入参实体的业务字段(中划线),右边是 Dify 工作流开始节点的真实变量名。 # # 下两段取自 2026-09-19 在内网实例上跑 probe-dify.sh 的实际输出, # 注意它们与公网实例的命名习惯并不一致 —— 不要凭直觉推断,必须以探针输出为准。 workflows: # 内网实测: query,pdf_url,pdf_file(文件类) document-process: fields: query: query pdf-url: pdf_url pdf-file: pdf_file # 内网实测: core_idea,tech_route,team_intro,upload_file(文件类),parse_value declaration: fields: core-idea: core_idea tech-route: tech_route team-intro: team_intro upload-file: upload_file parse-value: parse_value # 医科大开放平台对接 gxmu: openplat: base-url: http://210.36.49.10:15031/api/bd-api app-id: d50666e1621f493688a2 app-secret: c12ba36360a82ae7a59a4f0a056ec39d kfzzh: twxt2026 # 开发者密码, 建议用环境变量 OPENPLAT_KFZMM 覆盖 kfzmm: ${OPENPLAT_KFZMM:twxt2026} timeout-ms: 30000 max-retries: 2 page-size: 10000 # 学校统一身份认证(微服务认证平台 API v2.3),小程序的「学号 + 统一身份认证密码」登录走这里。 # # appid/appsecret 由学校认证管理员在认证后台 - 应用管理 - 应用列表 中签发。 # 2026-09-18 拿到后只在本地验证过(见 .scratch/student-sso/README.md 第 5.1 节), # 但这段配置当时漏了提交,代码上线后 /api/sso/login 一直报 # 「学校统一身份认证未配置,请联系管理员」——见本文件所在提交的说明。 # 与 openplat 凭证同样处理:默认值写在这里,同时保留环境变量覆盖。 auth: enabled: true base-url: https://cas.gxmu.edu.cn/lyuapServer app-id: ${GXMU_AUTH_APPID:7D8F6695611309E0} app-secret: ${GXMU_AUTH_APPSECRET:24f9dab5-3319-42cc-908d-2748417b7f92} timeout-ms: 10000 # 名册外的账号默认拒绝登录,见 ADR-0001:学生须先同步进名册 allow-unknown-user: false openplat-sync: enabled: true # 每天 03:30 cron: 0 30 3 * * ? # 教师同步时派生登录账号(手机号即用户名,后六位即密码),见 docs/adr/0008。 # 默认关闭:首次全量会建出上万账号,需要有意打开。 # 打开后重跑一次教师同步,即可给已有账号补授 teacher 角色。 teacher-account: enabled: true