Press Subscription System
| .direnv | ||
| .forgejo/workflows | ||
| gradle/wrapper | ||
| src | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle | ||
| flake.lock | ||
| flake.nix | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle | ||
企业报刊订阅管理系统
基于 Spring Boot 3 开发的企业报刊订阅管理系统,用于数字化管理企业的报刊订阅业务。
项目特性
- Spring Boot 3.4.6 - 最新的Spring Boot框架
- Spring Data JPA - 数据持久化
- Thymeleaf - 模板引擎
- PostgreSQL - 数据库
- Bootstrap 5 - 前端UI框架
- Maven - 项目管理
功能模块
1. 录入功能
- 员工信息管理:录入员工编号、姓名、性别、部门、联系方式等基本信息
- 报刊信息管理:录入报刊编号、名称、类型、单价、出版周期等基本信息
- 数据唯一性检查:确保员工编号和报刊编号唯一,重复录入时提示并取消操作
2. 订阅功能
- 订阅关系建立:关联订阅人员与报刊,记录订阅起始日期、订阅时长
- 金额自动计算:根据报刊单价和订阅时长自动计算订阅金额
- 订阅记录修改:允许对已建立的订阅关系进行调整
3. 查询功能
- 按人员查询:输入员工编号或姓名,显示该员工的所有订阅信息
- 按报刊查询:输入报刊编号或名称,显示订阅该报刊的所有员工信息
- 按部门查询:选择部门,显示该部门所有员工的订阅情况
- 查询结果展示:提供清晰的数据展示界面
4. 统计功能
- 按报刊统计:统计每种报刊的订阅人数和总金额
- 按人员统计:统计每位员工的订阅报刊数量和总花费
- 按部门统计:统计各部门的订阅情况和总费用
- 统计结果展示:支持图表和数据表格形式展示
5. 系统维护
- 数据初始化:系统首次启动时自动添加示例数据
- 数据验证:完整的输入数据验证机制
- 错误处理:友好的错误提示和处理
技术架构
┌─ 控制层 (Controller)
│ ├─ HomeController # 主页控制器
│ ├─ EmployeeController # 员工管理控制器
│ ├─ NewspaperController # 报刊管理控制器
│ └─ SubscriptionController # 订阅管理控制器
│
├─ 服务层 (Service)
│ ├─ EmployeeService # 员工服务
│ ├─ NewspaperService # 报刊服务
│ └─ SubscriptionService # 订阅服务
│
├─ 数据访问层 (Repository)
│ ├─ EmployeeRepository # 员工数据访问
│ ├─ NewspaperRepository # 报刊数据访问
│ └─ SubscriptionRepository # 订阅数据访问
│
└─ 实体层 (Entity)
├─ Employee # 员工实体
├─ Newspaper # 报刊实体
└─ Subscription # 订阅关系实体
数据库设计
员工表 (employees)
- employee_id (主键) - 员工编号
- name - 姓名
- gender - 性别
- department - 部门
- contact_info - 联系方式
- created_at, updated_at - 时间戳
报刊表 (newspapers)
- newspaper_id (主键) - 报刊编号
- name - 报刊名称
- type - 报刊类型
- unit_price - 单价
- publishing_cycle - 出版周期
- description - 描述
- created_at, updated_at - 时间戳
订阅表 (subscriptions)
- id (主键) - 订阅ID
- employee_id (外键) - 员工编号
- newspaper_id (外键) - 报刊编号
- start_date - 订阅起始日期
- duration_months - 订阅时长(月)
- end_date - 订阅结束日期
- total_amount - 订阅总金额
- status - 订阅状态
- notes - 备注
- created_at, updated_at - 时间戳
环境要求
- Java 21+
- PostgreSQL 12+
- Maven 3.6+
快速开始
- 克隆项目
git clone ssh://git@code.rikki.ltd/Rikki/subpress.git
cd subpress
- 配置数据库 创建PostgreSQL数据库:
CREATE DATABASE subpress;
修改 src/main/resources/application.yml 中的数据库配置:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/subpress
username: your_username
password: your_password
- 运行项目
./gradlew bootRun
- 访问系统 打开浏览器访问:http://localhost:8080/subpress
系统截图
首页概览
- 显示系统统计数据
- 快速操作入口
- 功能模块导航
员工管理
- 员工列表查看
- 员工信息录入
- 员工信息编辑
- 按部门筛选
报刊管理
- 报刊列表管理
- 报刊信息维护
- 类型和价格管理
订阅管理
- 订阅关系建立
- 订阅记录查询
- 金额自动计算
- 订阅状态管理
统计报表
- 多维度数据统计
- 图表可视化展示
- 数据导出功能
开发说明
项目采用标准的Spring Boot MVC架构:
- 实体类:定义数据模型和数据库映射
- Repository:数据访问层,提供CRUD和复杂查询
- Service:业务逻辑层,处理业务规则
- Controller:控制层,处理HTTP请求
- 模板:Thymeleaf模板,提供用户界面
课程实践要点
-
系统分析与设计
- 功能模块分析
- 数据库设计
- 类层次设计
-
面向对象编程
- 实体类设计
- 继承和多态应用
- 设计模式实践
-
数据库应用
- JPA/Hibernate应用
- 复杂查询实现
- 事务管理
-
Web开发技术
- Spring MVC架构
- 模板引擎使用
- 前端交互设计
-
软件工程实践
- 项目结构组织
- 代码规范
- 测试与调试
贡献
不开源,等阁下有授权的时候再说吧
许可证
© Copyright