# 资源登记平台 - 后端 基于 Spring Boot 3 + MyBatis-Plus + MySQL + JWT 的内部资源台账系统后端。 ## 启动步骤 1. **初始化数据库** 先执行根目录 `sql/schema.sql`,会创建数据库 `resource_platform` 及全部表,并插入初始管理员账号。 2. **修改配置** 编辑 `src/main/resources/application.yml`: - `spring.datasource` 改成你自己的 MySQL 账号密码 - `spring.mail` 改成你们公司的SMTP服务器信息(到期提醒邮件依赖这个) - `jwt.secret` 生产环境务必换成自己的随机字符串 3. **启动** ```bash mvn clean package -DskipTests java -jar target/resource-platform.jar ``` 或者直接用IDE运行 `ResourcePlatformApplication`。 **无 Maven 环境时**可用离线构建脚本: ```bash python build.py # 构建(自动递增版本号) bash start.sh # 启动(自动检测最新版本) ``` 详见根目录 `AGENTS.md`。 4. **默认账号** - 账号:`admin` - 密码:`admin123` - 首次登录后请立即在"个人中心-修改密码"里改掉。 ## 模块说明 | 模块 | 说明 | |---|---| | auth | 登录、修改密码 | | user | 用户管理(仅管理员) | | resource-type / provider | 资源类型、服务商字典,可自行扩展 | | project | 项目管理 | | resource | 资源管理(核心),含多对多项目关联、Excel导出 | | dashboard | 工作台概览 | | operation-log | 操作日志 | | task.ResourceExpireTask | 每天定时扫描,刷新到期状态 + 发送邮件提醒 | ## 关于到期提醒 `notify.cron` 控制扫描频率(默认每天8点),`remind-days-far`(默认30天)和 `remind-days-near`(默认7天) 控制提前多久开始提醒。同一个资源同一个阶段只会发一封邮件,记录在 `expire_notify_log` 表里,不会每天打扰负责人。 ## 待你补充/确认的点 - 邮件SMTP配置是真实账号密码,**不要把改好真实密码的yml提交到代码仓库**,建议改成读环境变量。 - 当前权限是最简单的二级(管理员/普通用户),如果后续需要"只能管自己负责的资源"这种更细粒度权限,可以在Controller层基于`SecurityUtils.getCurrentUserId()`再加过滤,目前还没做。