# Gigplatform_backend **Repository Path**: wx6765/Gigplatform_backend ## Basic Information - **Project Name**: Gigplatform_backend - **Description**: 智慧零工平台后端系统是一个基于Spring Boot 3.3.5开发的RESTful API服务,为零工市场提供完整的后端支持。系统支持雇主发布工作、工人申请工作、技能认证、保险管理、培训管理等全流程业务功能。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-06-02 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧零工平台后端系统 [![Java](https://img.shields.io/badge/Java-21-orange.svg)](https://www.oracle.com/java/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.3.5-brightgreen.svg)](https://spring.io/projects/spring-boot) [![MyBatis-Flex](https://img.shields.io/badge/MyBatis--Flex-1.9.1-blue.svg)](https://mybatis-flex.com/) [![SQLite](https://img.shields.io/badge/SQLite-Latest-lightgrey.svg)](https://www.sqlite.org/) ## 项目简介 智慧零工平台后端系统是一个基于Spring Boot 3.3.5开发的RESTful API服务,为零工市场提供完整的后端支持。系统支持雇主发布工作、工人申请工作、技能认证、保险管理、培训管理等全流程业务功能。 ### 核心特性 - 🔐 **安全认证**: 基于JWT的用户认证和权限管理 - 👥 **双端支持**: 同时支持雇主端和工人端业务流程 - 📱 **移动优先**: 专为移动端应用设计的API接口 - 🚀 **高性能**: 使用MyBatis-Flex实现高效的数据库操作 - 🔄 **实时通知**: 支持工作申请、审核等实时通知 - 📊 **数据统计**: 提供工作统计和业务分析功能 - 💾 **轻量级**: 基于SQLite数据库,部署简单,性能优异 ## 技术栈 ### 核心框架 - **Spring Boot 3.3.5** - 主框架 - **Spring Security** - 安全认证 - **MyBatis-Flex 1.9.1** - 数据库ORM框架 - **SQLite** - 轻量级数据库 ### 开发工具 - **Java 21** - 编程语言 - **Gradle** - 项目构建工具 - **Lombok** - 代码简化 - **JWT** - 身份认证 - **Spring Boot Actuator** - 监控和管理 ### 第三方服务 - **文件上传** - 支持头像、图片等文件上传 - **短信验证** - 手机号验证和安全登录 ## 项目结构 ``` smart-gig-platformbackend/ ├── src/ │ ├── main/ │ │ ├── java/com/example/backend/ │ │ │ ├── controller/ # 控制器层 │ │ │ │ ├── AuthController.java # 认证相关 │ │ │ │ ├── JobsController.java # 工作管理 │ │ │ │ ├── UsersController.java # 用户管理 │ │ │ │ ├── EmployerProfilesController.java # 雇主资料 │ │ │ │ ├── WorkerProfilesController.java # 工人资料 │ │ │ │ ├── UploadController.java # 文件上传 │ │ │ │ └── ... # 其他业务控制器 │ │ │ ├── service/ # 服务层 │ │ │ ├── mapper/ # 数据访问层 │ │ │ ├── entity/ # 实体类 │ │ │ ├── config/ # 配置类 │ │ │ ├── JwtUtil.java # JWT工具类 │ │ │ ├── Result.java # 统一返回结果 │ │ │ └── BackendApplication.java # 启动类 │ │ └── resources/ │ │ ├── application.properties # 主配置文件 │ │ └── application-prod.properties # 生产环境配置 │ └── test/ # 测试代码 ├── build.gradle # Gradle构建文件 ├── ecosystem.config.js # PM2进程管理配置 ├── start.sh # 启动脚本 ├── backup.sh # 备份脚本 ├── smartgigplatform.db # SQLite数据库文件 ├── 接口文档.md # API接口详细文档 └── README.md # 项目说明文档 ``` ## 核心功能模块 ### 1. 用户认证与授权 - 用户注册/登录 - JWT令牌生成和验证 - 短信验证码 - 密码重置 - 权限控制 ### 2. 用户管理 - 用户基本信息管理 - 雇主资料管理 - 工人资料管理 - 头像上传 - 实名认证 ### 3. 工作管理 - 工作发布和编辑 - 工作列表和搜索 - 工作详情查看 - 工作状态管理 - 工作分类管理 ### 4. 申请与匹配 - 工作申请 - 申请状态跟踪 - 雇主审核申请 - 工人技能匹配 - 收藏工作功能 ### 5. 技能与培训 - 技能分类管理 - 工人技能认证 - 培训课程管理 - 培训记录跟踪 - 证书管理 ### 6. 保险与支付 - 保险产品管理 - 用户保险购买 - 支付记录管理 - 财务统计 ### 7. 通知系统 - 实时消息推送 - 系统通知 - 个人消息 - 通知历史 ### 8. 数据统计 - 工作统计分析 - 用户行为分析 - 业务数据报表 - 平台运营数据 ## API接口 系统提供完整的RESTful API接口,详细的接口文档请参考 [接口文档.md](./接口文档.md) ### 主要接口模块 | 模块 | 基础路径 | 说明 | |------|---------|------| | 认证 | `/api/auth` | 登录、注册、验证码等 | | 用户 | `/api/users` | 用户信息管理 | | 工作 | `/api/jobs` | 工作发布、申请、管理 | | 文件 | `/api/upload` | 文件上传服务 | | 雇主 | `/api/employer-profiles` | 雇主资料管理 | | 工人 | `/api/worker-profiles` | 工人资料管理 | | 技能 | `/api/skills` | 技能管理 | | 培训 | `/api/trainings` | 培训管理 | | 保险 | `/api/insurances` | 保险管理 | | 通知 | `/api/notifications` | 通知管理 | ### 通用返回格式 ```json { "code": 0, "message": "调用成功", "data": {} } ``` ## 快速开始 ### 环境要求 - Java 21 或更高版本 - Gradle 7.0+ 或 Maven 3.6+ - SQLite 3.0+ ### 本地开发 1. **克隆项目** ```bash git clone https://github.com/BXCQ/Gigplatform_backend.git cd Gigplatform_backend ``` 2. **配置数据库** ```bash # SQLite数据库文件已包含在项目中 # 位置: smartgigplatform.db ``` 3. **配置应用** ```bash # 复制配置文件 cp src/main/resources/application.properties.example src/main/resources/application.properties # 编辑配置文件,修改必要的配置项 ``` 4. **构建运行** ```bash # 使用Gradle构建 ./gradlew build # 运行应用 ./gradlew bootRun # 或者运行打包后的jar java -jar build/libs/smart-gig-platformbackend-0.0.1-SNAPSHOT.jar ``` 5. **验证服务** ```bash # 访问健康检查接口 curl http://localhost:8081/actuator/health # 测试登录接口 curl -X POST http://localhost:8081/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"test","password":"password"}' ``` ## 生产部署 ### 宝塔面板部署 详细的生产环境部署指南请参考项目中的部署文档。 #### 快速部署步骤 1. **环境准备** ```bash # 安装Java 21 # 配置环境变量 # 安装PM2进程管理器 ``` 2. **应用部署** ```bash # 上传jar包到服务器 scp build/libs/smart-gig-platformbackend-0.0.1-SNAPSHOT.jar user@server:/www/wwwroot/ # 启动服务 pm2 start ecosystem.config.js # 查看状态 pm2 status pm2 logs smart-gig-platform ``` 3. **配置Nginx** ```nginx # API代理配置 location /api/ { proxy_pass http://localhost:8081/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` ### Docker部署 ```dockerfile FROM openjdk:21-jdk-slim WORKDIR /app COPY build/libs/smart-gig-platformbackend-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8081 CMD ["java", "-jar", "app.jar"] ``` ```bash # 构建镜像 docker build -t smart-gig-platform-backend . # 运行容器 docker run -d -p 8081:8081 --name gig-platform-backend smart-gig-platform-backend ``` ## 配置说明 ### 应用配置 主要配置项说明: ```properties # 服务端口 server.port=8081 # 数据库配置 spring.datasource.url=jdbc:sqlite:smartgigplatform.db spring.datasource.driver-class-name=org.sqlite.JDBC # 文件上传配置 spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB file.upload.dir=uploads # JWT配置 jwt.secret=your-secret-key jwt.expiration=86400000 # 跨域配置 cors.allowed-origins=https://yourdomain.com ``` ### 生产环境配置 生产环境建议配置: ```properties # 数据库路径 spring.datasource.url=jdbc:sqlite:/www/wwwroot/smartgigplatform.db # 文件上传路径 file.upload.dir=/www/wwwroot/uploads # 日志配置 logging.file.name=/www/wwwroot/logs/application.log logging.level.com.example.backend=INFO # 安全配置 jwt.secret=production-secret-key-change-this ``` ## 监控和维护 ### 应用监控 系统集成了Spring Boot Actuator,提供以下监控端点: - `/actuator/health` - 健康检查 - `/actuator/info` - 应用信息 - `/actuator/metrics` - 性能指标 - `/actuator/env` - 环境信息 ### 日志管理 ```bash # 查看应用日志 tail -f /www/wwwroot/logs/application.log # 查看PM2日志 pm2 logs smart-gig-platform # 查看错误日志 grep ERROR /www/wwwroot/logs/application.log ``` ### 数据备份 ```bash # 数据库备份 cp /www/wwwroot/smartgigplatform.db /www/wwwroot/backup/smartgigplatform_$(date +%Y%m%d_%H%M%S).db # 使用备份脚本 ./backup.sh ``` ## 开发指南 ### 添加新功能 1. **创建实体类** ```java @Table("new_table") public class NewEntity { @Id private Long id; // 其他字段... } ``` 2. **创建Mapper接口** ```java public interface NewEntityMapper extends BaseMapper { // 自定义查询方法 } ``` 3. **创建Service类** ```java @Service public class NewEntityService { @Autowired private NewEntityMapper mapper; // 业务逻辑方法 } ``` 4. **创建Controller类** ```java @RestController @RequestMapping("/api/new-entities") public class NewEntityController { @Autowired private NewEntityService service; // API接口方法 } ``` ### 代码规范 - 使用统一的返回结果格式 `Result` - 所有接口都要进行参数验证 - 重要操作需要添加日志记录 - 异常处理要统一且用户友好 - API文档要及时更新 ## 常见问题 ### Q: 如何重置管理员密码? A: 直接修改数据库中的用户记录,密码使用BCrypt加密。 ### Q: 文件上传失败怎么办? A: 检查uploads目录权限,确保应用有写入权限。 ### Q: 数据库连接失败? A: 检查SQLite文件路径和权限,确保文件存在且可读写。 ### Q: JWT过期时间如何修改? A: 修改application.properties中的jwt.expiration配置项。 ## 版本历史 - **v0.0.1** (2024-01) - 初始版本,包含基础功能 - **v0.0.2** (2024-02) - 增加工作申请功能 - **v0.0.3** (2024-03) - 优化性能,修复已知问题 ## 贡献指南 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](LICENSE) 文件。 ## 联系方式 - 项目主页: https://github.com/BXCQ/Gigplatform_backend - 问题反馈: https://github.com/BXCQ/Gigplatform_backend/issues - 邮箱: 676567473@qq.com - 博客:https://blog.ybyq.wang/ ## 致谢 感谢以下开源项目: - [Spring Boot](https://spring.io/projects/spring-boot) - [MyBatis-Flex](https://mybatis-flex.com/) - [SQLite](https://www.sqlite.org/) - [JWT](https://jwt.io/) --- **智慧零工平台后端系统** - 让零工找工作更简单,让雇主招人更高效!