云印享 - 付费打印服务系统
项目简介
云印享是一个基于 gRPC 的付费打印服务后端系统,支持用户管理、文件上传下载、订单处理、打印任务调度、微信支付、文库管理等核心功能。
技术栈
- 语言: Go 1.21+
- 框架: gRPC + Protobuf
- 数据库: MySQL + GORM
- 认证: JWT (JSON Web Token)
- 支付: 微信支付 (gopay)
- 配置: Viper
项目结构
服务列表
| 服务 |
端口 |
描述 |
| gRPC Server |
8080 |
主服务端口 |
快速开始
1. 环境要求
- Go 1.21+
- MySQL 5.7+
- protoc (Protocol Buffer 编译器)
2. 数据库初始化
3. 配置修改
编辑 config.yaml 文件,修改以下配置:
4. 编译生成 gRPC 代码
5. 运行服务
API 文档
AuthService (用户认证服务)
| 方法 |
描述 |
| Login |
微信登录,获取 AccessToken 和 RefreshToken |
| RefreshToken |
刷新 AccessToken |
| GetUserInfo |
获取用户信息 |
| UpdateUser |
更新用户信息(昵称、头像) |
FileService (文件管理服务)
| 方法 |
描述 |
| Upload |
流式上传文件(支持分片) |
| GetFile |
流式下载文件 |
| DeleteFile |
删除文件 |
| AddWatermark |
添加水印 |
| GetFileList |
获取文件列表 |
OrderService (订单服务)
| 方法 |
描述 |
| CreateOrder |
创建订单 |
| GetOrder |
获取订单详情 |
| GetOrderList |
获取订单列表 |
| UpdateOrderStatus |
更新订单状态 |
| CancelOrder |
取消订单 |
PrintService (打印服务)
| 方法 |
描述 |
| GetPrinters |
获取打印机列表 |
| GetPrinterStatus |
获取打印机状态 |
| RegisterPrinter |
注册打印机 |
| PrinterHeartbeat |
打印机心跳 |
| SubmitPrintJob |
提交打印任务 |
| CancelPrintJob |
取消打印任务 |
| SubscribeJobs |
订阅打印任务(流式) |
| ReportJobStatus |
上报任务状态 |
LibraryService (文库服务)
| 方法 |
描述 |
| GetCategories |
获取文库分类 |
| GetFiles |
获取文库文件列表 |
| UploadFile |
上传文库文件 |
| DeleteFile |
删除文库文件 |
PriceService (价目表服务)
| 方法 |
描述 |
| GetPriceList |
获取价目表 |
| CreatePriceItem |
创建价目项 |
| UpdatePriceItem |
更新价目项 |
PayService (支付服务)
| 方法 |
描述 |
| CreateWxPayOrder |
创建微信支付订单 |
| QueryPayStatus |
查询支付状态 |
| HandlePayCallback |
处理支付回调 |
| PayByBalance |
余额支付 |
AdminService (管理后台服务)
| 方法 |
描述 |
| Login |
管理员登录 |
| GetStatistics |
获取统计数据 |
数据模型
订单状态
| 值 |
状态 |
| 0 |
待支付 |
| 1 |
已支付 |
| 2 |
打印中 |
| 3 |
已完成 |
| 4 |
已取消 |
支付状态
| 值 |
状态 |
| 0 |
待支付 |
| 1 |
支付中 |
| 2 |
成功 |
| 3 |
失败 |
打印机状态
打印任务状态
| 值 |
状态 |
| pending |
等待中 |
| printing |
打印中 |
| completed |
已完成 |
| failed |
失败 |
| cancelled |
已取消 |
默认账号
- 管理员用户名:
admin
- 管理员密码:
admin123 (需在生产环境修改)
初始价目表
| 名称 |
类型 |
价格 |
单位 |
| A4黑白打印 |
A4 |
0.10元 |
页 |
| A4彩色打印 |
A4 |
0.30元 |
页 |
| A3黑白打印 |
A3 |
0.20元 |
页 |
| A3彩色打印 |
A3 |
0.60元 |
页 |
| 照片打印 |
照片纸 |
2.00元 |
张 |
许可证
MIT License