xiangyixiangqin/README.md
zpc b55b56c9cb
All checks were successful
continuous-integration/drone/push Build is passing
Add notification template configuration management
2026-03-29 01:11:22 +08:00

138 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 相宜相亲
一站式相亲交友平台,包含微信小程序、后台管理系统、官方网站三端,采用 .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 轮播、首页弹窗、系统通知
- **后台管理** — 用户审核、数据统计、系统配置、操作日志
## 本地开发
### 后端
```bash
cd server
dotnet restore
dotnet run --project src/XiangYi.AppApi # 小程序 API默认 http://localhost:5000
dotnet run --project src/XiangYi.AdminApi # 管理端 API默认 http://localhost:5001
```
### 后台管理前端
```bash
cd admin
npm install
npm run dev # 默认 http://localhost:5173
```
### 小程序
```bash
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 自动执行:
1. 并行构建 3 个 Docker 镜像admin-api、app-api、admin-web
2. 推送到内网 Harbor 镜像仓库
3. SSH 到目标服务器执行 `docker compose pull && docker compose up -d`
| 服务 | 默认端口 |
|------|---------|
| Admin API | 2801 |
| App API | 2802 |
| Admin Web | 2803 |
详见 [CI-CD部署文档.md](CI-CD部署文档.md)。
## 相关文档
| 文档 | 说明 |
|------|------|
| [技术栈与开发规范](server/技术栈与开发规范.md) | 技术选型、项目结构、API 设计、安全规范 |
| [数据库设计](server/数据库设计.md) | 表结构、字段说明、索引设计 |
| [CI-CD部署文档](CI-CD部署文档.md) | Drone CI 流水线、Harbor 镜像管理、部署步骤 |
| [需求文档](docs/需求文档.md) | 产品需求说明 |