You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
SLMS Development Team 1b02cd8b48
feat: 更新AI服务、数据管理和借阅历史等功能
4 weeks ago
.kiro/steering 通过就结项 1 month ago
.sonarlint 修复IDE问题:创建缺失目录、InterruptedException处理、静态方法调用 2 months ago
android feat: 更新AI服务、数据管理和借阅历史等功能 4 weeks ago
backend 提高SonarQube质检 4 weeks ago
cli feat: 更新AI服务、数据管理和借阅历史等功能 4 weeks ago
core feat: 更新AI服务、数据管理和借阅历史等功能 4 weeks ago
docs 完善Web端应用 4 weeks ago
gradle/wrapper qwen也不听话了 1 month ago
gui feat: 更新AI服务、数据管理和借阅历史等功能 4 weeks ago
launcher 本地和jenkins打包不一致 4 weeks ago
scripts 完善CLI的图书列表显示格式 1 month ago
uml CLI端完成 1 month ago
.gitignore 本地和jenkins打包不一致 4 weeks ago
Jenkinsfile 本地和jenkins打包不一致 4 weeks ago
README.md sonarqube扫码如何修复 1 month ago
build-dist.bat 本地和jenkins打包不一致 4 weeks ago
build.gradle 本地和jenkins打包不一致 4 weeks ago
gradle.properties 修复流水线Gradle下载问题:配置国内镜像和超时时间 1 month ago
gradlew.bat Android端完成:修复重复类问题,切换Web功能,构建成功 2 months ago
local.properties 修复 local.properties 格式:去掉多余引号 2 months ago
settings.gradle 实现启动器 1 month ago
sonar-project.properties Kiro与Opus解决所有问题 1 month ago

README.md

MCSLMS - 多客户端智能图书馆管理系统

Multi-Client Smart Library Management System

项目概述

MCSLMS 是一个现代化的图书馆管理系统,支持四种客户端界面:

  • CLI - 命令行界面
  • GUI - 图形用户界面 (JavaFX)
  • Web - 浏览器访问 (Spring Boot)
  • Android - 移动应用

快速开始

1. 启动应用

最简单的方式是使用统一启动器:

# Windows
start.bat

# 或直接运行
scripts\run-launcher.bat

启动器会显示菜单,让你选择要使用的客户端。

2. 构建所有模块

scripts\build-all.bat

3. 单独启动客户端

# CLI 客户端
scripts\run-cli.bat

# GUI 客户端
scripts\run-gui.bat

# Web 客户端
scripts\run-web.bat

# Android 客户端(需要模拟器或真机)
scripts\run-android.bat

4. 默认账号

系统会在首次运行时自动创建一个默认管理员账号,方便登录和审核新用户:

  • 管理员邮箱: admin@library.com
  • 初始密码: admin123
  • 角色: ADMIN

建议在首次登录后及时修改管理员密码,并通过“用户管理/审核”功能为读者创建正式账号。

项目结构

MCSLMS/
├── core/                   # 核心业务逻辑模块
├── cli/                    # CLI 客户端
├── gui/                    # GUI 客户端
├── backend/                # 后端服务Web
├── android/                # Android 客户端
├── launcher/               # 统一启动器
├── docs/                   # 项目文档
│   ├── architecture/       # 架构设计
│   ├── guides/            # 使用指南
│   ├── development/       # 开发文档
│   ├── deployment/        # 部署文档
│   └── reports/           # 测试报告
├── scripts/                # 构建和运行脚本
├── data/                   # 数据文件
├── config/                 # 配置文件
├── .jenkins/              # Jenkins 配置
├── start.bat              # 主启动脚本
└── README.md              # 本文件

功能特性

基础功能

  • 图书管理(增删改查)
  • 借阅管理
  • 用户管理
  • 借阅记录查询

智能功能

  • AI 图书推荐
  • 智能搜索
  • 语音交互
  • 图书摘要生成

四端切换

  • 统一启动器
  • 客户端间切换
  • 会话保持

技术栈

  • 语言: Java 21, Kotlin
  • 构建工具: Gradle 8.5
  • 数据库: SQLite (开发), PostgreSQL (生产)
  • 前端框架: JavaFX, Spring Boot + Thymeleaf
  • 移动端: Android SDK 34 (Android 14)
  • CI/CD: Jenkins, SonarQube
  • 版本控制: Git, Gitea

开发指南

环境要求

  • JDK 21+
  • Gradle 8.5+
  • Android SDK (用于 Android 客户端)

构建命令

# 构建所有模块
./gradlew build

# 构建特定模块
./gradlew :core:build
./gradlew :cli:build
./gradlew :gui:build
./gradlew :android:assembleDebug

# 打包可执行 JAR推荐使用 --no-daemon 避免端口占用)
./gradlew :cli:fatJar -x test --no-daemon
./gradlew :gui:fatJar -x test --no-daemon
./gradlew :launcher:fatJar -x test --no-daemon

四端运行指南

CLI 命令行客户端

# 1. 构建
.\gradlew.bat :cli:fatJar -x test --no-daemon

# 2. 运行直接运行JAR避免gradle run的调试端口问题
java -jar cli\build\libs\mcslms-cli-v1.11.0.0-all.jar

GUI 图形界面客户端

# 1. 构建
.\gradlew.bat :gui:fatJar -x test --no-daemon

# 2. 运行
java -jar gui/build/libs/mcslms-gui-v1.11.0.0-all.jar

Web 后端服务

# 1. 构建
.\gradlew.bat :backend:bootJar -x test --no-daemon

# 2. 运行
java -jar backend/build/libs/mcslms-backend-v1.11.0.0.jar

# 3. 访问
# 浏览器打开 http://localhost:8082

Android 移动客户端

# 1. 构建 APK
.\gradlew.bat :android:assembleDebug -x test --no-daemon

# 2. APK 位置
# android/build/outputs/apk/debug/android-debug.apk

# 3. 安装到设备
adb install android/build/outputs/apk/debug/android-debug.apk

快速登录测试账号

四端应用均支持快速登录功能,内置三个测试账号:

角色 邮箱 密码 权限
👨‍🏫 教师 teacher@test.com 123456 馆员权限(可审核用户)
👨‍🎓 学生 student@test.com 123456 读者权限
👤 访客 guest@test.com 123456 读者权限

在登录界面点击对应的快速登录按钮即可一键登录。

运行测试

# 运行所有测试
./gradlew test

# 运行特定模块测试
./gradlew :core:test
./gradlew :cli:test

文档

详细文档位于 docs/ 目录,查看 文档中心 获取完整索引。

快速链接:

🤖 AI服务配置与使用

MCSLMS 提供了多种AI服务实现可以通过系统属性或环境变量进行切换

AI服务类型

  1. SmartAIService默认:基于本地馆藏数据的智能分析服务
  2. DeepSeekAIService基于DeepSeek API的AI服务
  3. ZhipuAIService基于智谱AI API的服务
  4. MockAIService:简单的模拟服务,用于测试

使用方式

CLI端使用不同AI服务

# 使用默认SmartAIService
java -cp ".;cli/build/libs/mcslms-cli-v1.11.0.0-all.jar" com.smartlibrary.cli.Main

# 使用DeepSeek AI服务
java "-Dai.provider=deepseek" -cp ".;cli/build/libs/mcslms-cli-v1.11.0.0-all.jar" com.smartlibrary.cli.Main

# 使用智谱AI服务
java "-Dai.provider=zhipu" -cp ".;cli/build/libs/mcslms-cli-v1.11.0.0-all.jar" com.smartlibrary.cli.Main

# 使用Mock服务
java "-Dai.provider=mock" -cp ".;cli/build/libs/mcslms-cli-v1.11.0.0-all.jar" com.smartlibrary.cli.Main

其他端配置

  • GUI端:通过系统属性启动:java "-Dai.provider=deepseek" -jar gui/build/libs/mcslms-gui-v1.11.0.0.jar
  • Web端:在启动应用时设置环境变量:AI_PROVIDER=deepseek java -jar web/build/libs/mcslms-web-v1.11.0.0.jar
  • Android端通过系统设置菜单切换AI服务类型

API配置

如需使用DeepSeek或智谱AI服务请确保

  1. 在相应的AI服务实现类中配置了有效的API密钥
  2. 网络连接正常可以访问相应的API服务
  3. 账户有足够的API调用额度

🏗️ 架构设计

系统采用分层架构:

┌─────────────────────────────────────────┐
│     Client Applications (四端)          │
│  CLI  │  GUI  │  Web  │  Android       │
└─────────────────────────────────────────┘
                  ↓
┌─────────────────────────────────────────┐
│         Core Module (核心模块)          │
│  - Business Logic                       │
│  - Domain Models                        │
│  - Data Access                          │
└─────────────────────────────────────────┘
                  ↓
┌─────────────────────────────────────────┐
│         Database (数据库)               │
│  SQLite / PostgreSQL                    │
└─────────────────────────────────────────┘

贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

联系方式

致谢

感谢所有为本项目做出贡献的开发者!


版本: 1.20.0
最后更新: 2025-12-03

Jenkins.instance.getItemByFullName("mcslms").getBuildByNumber(120)?.queueItem?.doCancel();println("mcslms#120排队构建已取消")

sqp_28dee20a416dd020466799252e09228a1799e2be 账号密码sonar gitaiops123 http://localhost:9000

请将sonarqube扫描的结果保存sonarqube-mcslms-扫描报告.md mclsms项目许多问题怎么修复请制作详细的修复计划: sonarqube-mcslms-修复计划.md sonarqube与jenkins整合的现在的修复非常低效怎么更好更高效解决修复质量问题给出具体操作步骤 sonarqube-mcslms-jenkins修复操作.md

claude-key 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

./gradlew sonar -Dsonar.projectKey=mcslms -Dsonar.projectName='MCSLMS - 智能图书管理系统' -Dsonar.host.url=http://localhost:9000 -Dsonar.token=sqp_0e3f005f3c9c8df6bf8d731872e5d373692c9394

gradlew.bat clean build sonar -Dsonar.gradle.skipCompile=true -Dsonar.projectKey=mcslms -Dsonar.projectName=MCSLMS -Dsonar.host.url=http://localhost:9000 -Dsonar.token=sqp_0e3f005f3c9c8df6bf8d731872e5d373692c9394 -Dsonar.sourceEncoding=UTF-8 -Dsonar.java.source=21