相宜相亲
|
All checks were successful
continuous-integration/drone/push Build is passing
- Add BuildDefaultTemplateData method to construct fallback template data - Map notification fields to WeChat template placeholders (first, keyword1-3, remark) - Provide default template structure when database field mapping is not configured - Ensures template messages can be sent with sensible defaults as safety net |
||
|---|---|---|
| .vscode | ||
| admin | ||
| deploy | ||
| docs | ||
| miniapp | ||
| nginx | ||
| scripts | ||
| server | ||
| website | ||
| .drone.yml | ||
| .gitignore | ||
| CI-CD部署文档.md | ||
| docker-compose.yml | ||
| README_SignalR.md | ||
| README_最终总结.md | ||
| README_聊天功能.md | ||
| README.md | ||
| SignalR实现总结.md | ||
| SignalR快速启动指南.md | ||
| 快速参考.md | ||
| 聊天功能完整实现总结.md | ||
| 聊天功能集成完成报告.md | ||
相宜相亲
一站式相亲交友平台,包含微信小程序、后台管理系统、官方网站三端,采用 .NET 8 + Vue 3 + uni-app 技术栈。
项目结构
xiangyixiangqin/
├── server/ # 后端服务(.NET 8)
│ ├── src/
│ │ ├── XiangYi.Core/ # 核心层:实体、枚举、常量、接口
│ │ ├── XiangYi.Application/ # 应用层:业务服务、DTO、校验、定时任务
│ │ ├── XiangYi.Infrastructure/ # 基础设施层:数据库、缓存、微信、支付、存储、短信
│ │ ├── XiangYi.AppApi/ # 小程序端 API + SignalR 聊天
│ │ └── XiangYi.AdminApi/ # 后台管理端 API
│ └── tests/ # 单元测试 & 集成测试
├── admin/ # 后台管理前端(Vue 3 + Element Plus)
├── miniapp/ # 微信小程序(uni-app)
├── website/ # 官方网站(静态页面)
├── deploy/ # 生产部署配置
├── docs/ # 需求文档、协议文本
└── scripts/ # 运维脚本
技术栈
后端
| 类别 | 技术 | 说明 |
|---|---|---|
| 运行时 | .NET 8 | LTS 版本 |
| Web 框架 | ASP.NET Core WebAPI | RESTful API,双 API 独立部署 |
| ORM | FreeSql | CodeFirst,支持迁移 |
| 数据库 | SQL Server | 主数据库 |
| 缓存 | Redis | 验证码、Token、热点数据 |
| 认证 | JWT | 身份认证 |
| 实时通信 | SignalR | 聊天消息推送 |
| 后台任务 | Hangfire | 每日推荐刷新、通知推送等 |
| 日志 | Serilog | 结构化日志 |
| 对象映射 | Mapster | 轻量级映射 |
| 参数校验 | FluentValidation | 请求验证 |
后台管理前端
| 类别 | 技术 |
|---|---|
| 框架 | Vue 3 + TypeScript |
| 构建 | Vite |
| UI | Element Plus |
| 状态管理 | Pinia |
| 图表 | ECharts |
小程序端
| 类别 | 技术 |
|---|---|
| 框架 | uni-app (Vue 3) |
| UI | uView Plus |
| 状态管理 | Pinia |
第三方服务
| 服务 | 方案 |
|---|---|
| 文件存储 | 腾讯云 COS(可切换阿里云 OSS) |
| 短信 | 阿里云 SMS(可切换腾讯云 SMS) |
| 实名认证 | 阿里云实人认证(可切换腾讯云) |
| 支付 | 微信支付 V3 |
所有第三方云服务采用接口抽象 + 依赖注入模式,可通过配置切换服务商。
核心功能
- 用户体系 — 微信登录、手机绑定、实名认证、相亲编号
- 相亲资料 — 资料提交/编辑、照片管理、择偶条件
- 智能推荐 — 基于择偶条件的每日推荐匹配
- 即时聊天 — 基于 SignalR 的实时消息、在线状态
- 会员服务 — 会员等级、联系方式解锁、微信支付
- 互动功能 — 浏览、收藏、点赞、送花、关注
- 内容管理 — Banner 轮播、首页弹窗、系统通知
- 后台管理 — 用户审核、数据统计、系统配置、操作日志
本地开发
后端
cd server
dotnet restore
dotnet run --project src/XiangYi.AppApi # 小程序 API,默认 http://localhost:5000
dotnet run --project src/XiangYi.AdminApi # 管理端 API,默认 http://localhost:5001
后台管理前端
cd admin
npm install
npm run dev # 默认 http://localhost:5173
小程序
cd miniapp
npm install
npm run dev:mp-weixin # 生成到 unpackage/dist/dev/mp-weixin
用微信开发者工具打开 unpackage/dist/dev/mp-weixin 目录进行调试。
部署
项目使用 Drone CI + Harbor + Docker Compose 进行自动化部署。
推送代码到 master 分支后,Drone 自动执行:
- 并行构建 3 个 Docker 镜像(admin-api、app-api、admin-web)
- 推送到内网 Harbor 镜像仓库
- SSH 到目标服务器执行
docker compose pull && docker compose up -d
| 服务 | 默认端口 |
|---|---|
| Admin API | 2801 |
| App API | 2802 |
| Admin Web | 2803 |
详见 CI-CD部署文档.md。
相关文档
| 文档 | 说明 |
|---|---|
| 技术栈与开发规范 | 技术选型、项目结构、API 设计、安全规范 |
| 数据库设计 | 表结构、字段说明、索引设计 |
| CI-CD部署文档 | Drone CI 流水线、Harbor 镜像管理、部署步骤 |
| 需求文档 | 产品需求说明 |