mi-assessment/server/MiAssessment/TEMPLATE_README.md
2026-02-04 10:11:31 +08:00

8.4 KiB

学业邑规划 (MiAssessment) - 后端服务

基于 .NET 10 的多元智能测评小程序后端服务,采用清洁架构设计,提供小程序 API 和后台管理系统。

技术栈

组件 技术
框架 ASP.NET Core (.NET 10)
ORM Entity Framework Core
数据库 SQL Server 2022
缓存 Redis
认证 JWT Bearer + Refresh Token
日志 Serilog
对象映射 Mapster
API 文档 Scalar (OpenAPI)
DI 容器 Autofac

功能特性

  • 用户认证: 微信小程序登录、JWT 认证、Token 刷新
  • 微信集成: 小程序登录、手机号获取
  • 微信支付: V3 支付、回调验签、退款
  • 用户管理: 用户信息、登录日志、地址管理
  • 测评系统: 题库管理、测评记录、报告生成
  • 订单系统: 支付订单、分销佣金
  • 后台管理: 完整的 RBAC 权限控制
  • 字典管理: 静态数据 + 动态 SQL 查询

项目结构

server/MiAssessment/
├── MiAssessment.sln                    # 解决方案文件
├── scripts/                            # 数据库脚本
│   ├── init_admin_db.sql               # 后台管理数据库初始化
│   ├── init_business_db.sql            # 业务数据库初始化
│   ├── init_business_dict.sql          # 业务字典数据
│   └── seed_business_permissions.sql   # 业务权限种子数据
│
├── src/
│   ├── MiAssessment.Api/               # 小程序 API 接口层
│   │   ├── Controllers/                # API 控制器
│   │   ├── Filters/                    # 过滤器
│   │   └── Program.cs                  # 程序入口
│   │
│   ├── MiAssessment.Admin/             # 后台管理系统
│   │   ├── admin-web/                  # 前端代码 (Vue 3 + TypeScript)
│   │   ├── Controllers/                # 管理 API 控制器
│   │   ├── Services/                   # 管理服务
│   │   ├── Entities/                   # 管理实体
│   │   ├── Data/                       # 数据库上下文
│   │   ├── Filters/                    # 权限过滤器
│   │   └── Models/                     # DTO 模型
│   │
│   ├── MiAssessment.Admin.Business/    # 后台业务模块 (主要开发区域)
│   │   ├── Controllers/                # 业务管理控制器
│   │   ├── Services/                   # 业务服务
│   │   │   └── Interfaces/             # 服务接口
│   │   ├── Entities/                   # 业务实体
│   │   ├── Models/                     # 请求/响应模型
│   │   ├── Data/                       # 业务数据库上下文
│   │   └── Attributes/                 # 自定义特性
│   │
│   ├── MiAssessment.Core/              # 核心业务逻辑层
│   │   ├── Interfaces/                 # 服务接口
│   │   ├── Services/                   # 服务实现
│   │   ├── Mappings/                   # 对象映射配置
│   │   └── Constants/                  # 常量定义
│   │
│   ├── MiAssessment.Infrastructure/    # 基础设施层
│   │   ├── Cache/                      # Redis 缓存
│   │   ├── External/                   # 外部服务集成
│   │   └── Modules/                    # 功能模块
│   │
│   └── MiAssessment.Model/             # 数据模型层
│       ├── Entities/                   # 数据库实体
│       ├── Models/                     # DTO 模型
│       ├── Data/                       # 数据库上下文
│       └── Base/                       # 基类
│
└── tests/
    └── MiAssessment.Tests/             # 单元测试 & 属性测试

后台管理前端

前端代码位于 src/MiAssessment.Admin/admin-web/,技术栈:

  • 框架: Vue 3 + TypeScript
  • 构建工具: Vite
  • UI 组件: Element Plus (或其他)
  • 状态管理: Pinia
  • HTTP 客户端: Axios
# 进入前端目录
cd src/MiAssessment.Admin/admin-web

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建生产版本
npm run build

快速开始

1. 环境要求

  • .NET 10 SDK
  • SQL Server 2022
  • Redis
  • Node.js 18+ (前端开发)

2. 配置数据库

修改 appsettings.json 中的连接字符串:

{
  "ConnectionStrings": {
    "AdminConnection": "Server=localhost;Database=MiAssessment_Admin;User Id=sa;Password=YourPassword;TrustServerCertificate=True",
    "DefaultConnection": "Server=localhost;Database=MiAssessment_Business;User Id=sa;Password=YourPassword;TrustServerCertificate=True"
  },
  "Redis": {
    "Host": "localhost",
    "Port": 6379
  }
}

3. 初始化数据库

-- 创建管理后台数据库
CREATE DATABASE [MiAssessment_Admin];
GO
-- 执行 scripts/init_admin_db.sql

-- 创建业务数据库
CREATE DATABASE [MiAssessment_Business];
GO
-- 执行 scripts/init_business_db.sql
-- 执行 scripts/init_business_dict.sql
-- 执行 scripts/seed_business_permissions.sql

4. 启动服务

# 还原依赖
dotnet restore

# 构建项目
dotnet build

# 启动小程序 API (端口 5238)
dotnet run --project src/MiAssessment.Api

# 启动后台管理 API (端口 5239)
dotnet run --project src/MiAssessment.Admin

5. 访问服务

服务 地址
小程序 API http://localhost:5238
小程序 API 文档 http://localhost:5238/scalar/v1
后台管理 API http://localhost:5239
后台管理前端 http://localhost:5173 (开发模式)

6. 默认管理员账号

  • 用户名: admin
  • 密码: admin123

数据库说明

管理后台数据库 (MiAssessment_Admin)

表名 说明
departments 部门层级
admin_users 管理员账号
roles 角色定义
permissions 权限定义
menus 菜单配置
admin_user_roles 管理员-角色关联
role_menus 角色-菜单关联
role_permissions 角色-权限关联
operation_logs 操作审计日志
refresh_tokens 刷新令牌
dict_types 字典类型
dict_items 字典项

业务数据库 (MiAssessment_Business)

表名 说明
users 用户账号
user_details 用户扩展信息
user_addresses 收货地址
user_login_logs 登录日志
payment_orders 支付订单
order_notifies 支付回调记录
configs 系统配置
assessment_* 测评相关表

配置项说明

配置项 说明
ConnectionStrings:AdminConnection 管理后台数据库连接
ConnectionStrings:DefaultConnection 业务数据库连接
Redis:Host Redis 服务器地址
Redis:Port Redis 端口
Jwt:Secret JWT 密钥 (至少32字符)
Jwt:Issuer JWT 签发者
Jwt:Audience JWT 受众
WeChat:AppId 小程序 AppId
WeChat:AppSecret 小程序 AppSecret
WeChatPay:MchId 微信支付商户号
WeChatPay:ApiKey 微信支付 API 密钥
WeChatPay:NotifyUrl 支付回调地址

API 接口规范

路由格式

小程序 API: /api/{module}/{action}
后台管理 API: /api/admin/{module}/{action}

请求方式

  • GET: 查询操作,参数通过 Query String 传递
  • POST: 新增、修改、删除操作,参数通过 JSON Body 传递

响应格式

{
  "code": 0,
  "message": "success",
  "data": {}
}

分页响应

{
  "code": 0,
  "message": "success",
  "data": {
    "items": [],
    "total": 100,
    "page": 1,
    "pageSize": 20,
    "totalPages": 5
  }
}

Docker 部署

# 构建小程序 API 镜像
docker build -t miassessment-api -f src/MiAssessment.Api/Dockerfile .

# 构建后台管理 API 镜像
docker build -t miassessment-admin -f src/MiAssessment.Admin/Dockerfile .

# 构建后台管理前端镜像
docker build -t miassessment-admin-web -f src/MiAssessment.Admin/admin-web/Dockerfile src/MiAssessment.Admin/admin-web

开发规范

详细开发规范请参考 docs/开发规范/ 目录下的文档:

  • 编程规约 (命名风格、代码风格、注释规约)
  • 异常日志 (日志规约、异常处理)

相关文档