# HMChina1 **Repository Path**: hhxcaz/hmchina1 ## Basic Information - **Project Name**: HMChina1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 好莱坞模特选美大赛中国区官方网站 一个集选手招募、赛事管理、品牌展示、媒体服务和粉丝互动于一体的数字化平台。 ## 📖 项目简介 本项目是好莱坞模特选美大赛在中国区的官方线上平台,包含: - **前台官网** - 面向公众的展示和报名平台 - **后台管理系统** - 赛事运营和内容管理系统 - **后端服务** - RESTful API 服务 ## ✨ 核心功能 ### 前台官网 (web/) - 🏠 **首页** - 动态轮播、赛事倒计时、内容推荐 - 📝 **在线报名** - 5步表单、资料上传、协议签署、进度查询 - 💳 **支付系统** - 微信/支付宝支付、订单管理、退款、发票 - 🎭 **选手展示** - 选手风采墙、个人详情页、点赞投票 - 📰 **赛事动态** - 新闻资讯、文章分类、社交分享 - 🎬 **多媒体中心** - 图片库、视频库、灯箱浏览 - 🤝 **合作赞助** - 权益展示、合作意向表单 ### 后台管理系统 (admin/) - 📊 **仪表盘** - 数据总览、实时统计、快捷操作 - 👥 **选手管理** - 报名审核、档案管理、状态流转、批量操作 - 📝 **内容管理** - 文章编辑、媒体库、首页配置 - 💰 **订单管理** - 订单列表、支付回调、对账导出 - 💸 **退款管理** - 退款申请、审批流程、原路退回 - 🧾 **发票管理** - 电子发票开具、作废重开、批量处理 - 🛡️ **风控系统** - 设备去重、黑名单、异常限流 - 📈 **数据统计** - 报名趋势、转化漏斗、渠道归因 - 👤 **用户权限** - 角色管理、权限分配、操作审计 ### 后端服务 (backend/) - 🔐 **认证授权** - JWT + RBAC 权限体系 - 💾 **数据管理** - Sequelize ORM + MySQL - 💳 **支付集成** - 微信支付v3、支付宝开放平台 - 📦 **文件存储** - 阿里云OSS/腾讯COS - 🔄 **异步处理** - BullMQ 消息队列 - 🚦 **限流防护** - Redis 缓存 + 限流中间件 - 📝 **审计日志** - 操作留痕、数据快照 ## 🛠️ 技术栈 ### 前端 - **框架**: Vue 3 + Nuxt 3 (官网) / Vue 3 + Vite (后台) - **UI组件**: Naive UI (官网) / Element Plus (后台) - **状态管理**: Pinia - **路由**: Vue Router - **HTTP客户端**: Axios - **动画**: GSAP - **样式**: SCSS + CSS变量 ### 后端 - **运行时**: Node.js 18+ - **框架**: Koa2 - **ORM**: Sequelize - **数据库**: MySQL 8 - **缓存**: Redis - **队列**: BullMQ - **认证**: JWT - **文件上传**: Multer - **支付**: 微信支付v3、支付宝 ## 📁 项目结构 ``` starmodelchina/ ├── web/ # 前台官网 (Nuxt 3) │ ├── api/ # API接口模块 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── layouts/ # 布局组件 │ ├── pages/ # 页面路由 │ ├── public/ # 公共文件 │ ├── stores/ # 状态管理 │ ├── utils/ # 工具函数 │ └── nuxt.config.ts # Nuxt配置 │ ├── admin/ # 后台管理系统 (Vue 3 + Vite) │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 公共组件 │ │ ├── config/ # 配置文件 │ │ ├── layout/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ ├── styles/ # 样式文件 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面视图 │ ├── .env.development # 开发环境配置 │ ├── .env.production # 生产环境配置 │ └── vite.config.js # Vite配置 │ ├── backend/ # 后端服务 (Koa2) │ ├── config/ # 配置文件 │ ├── controllers/ # 控制器 │ ├── middlewares/ # 中间件 │ ├── models/ # 数据模型 │ ├── routes/ # 路由定义 │ ├── services/ # 业务逻辑 │ ├── lib/ # 工具库 │ │ ├── payments/ # 支付集成 │ │ └── risk/ # 风控模块 │ ├── migrations/ # 数据库迁移 │ ├── seeders/ # 数据种子 │ └── server.js # 服务入口 │ └── docs/ # 文档 ├── 需求文档.md ├── 系统开发文档.md └── UI设计文档.md ``` ## 🚀 快速开始 ### 环境要求 - Node.js >= 18.0.0 - MySQL >= 8.0 - Redis >= 6.0 - npm 或 pnpm ### 1. 克隆项目 ```bash git clone https://gitee.com/hhxcaz/hmchina1.git cd starmodelchina ``` ### 2. 安装依赖 ```bash # 后端 cd backend npm install # 前台官网 cd ../web npm install # 后台管理 cd ../admin npm install ``` ### 3. 配置环境变量 #### 后端配置 (backend/.env) ```env # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=beauty_contest DB_USER=root DB_PASSWORD=your_password # Redis配置 REDIS_HOST=localhost REDIS_PORT=6379 # JWT密钥 JWT_SECRET=your_jwt_secret # 服务端口 PORT=3001 # 文件上传 UPLOAD_DIR=./uploads # 支付配置 WECHAT_APP_ID=your_wechat_app_id WECHAT_MCH_ID=your_wechat_mch_id ALIPAY_APP_ID=your_alipay_app_id ``` #### 前台配置 (web/.env) ```env NUXT_PUBLIC_API_BASE=http://localhost:3001 ``` #### 后台配置 (admin/.env.development) ```env VITE_API_BASE_URL=http://localhost:3001 VITE_APP_PORT=5173 ``` ### 4. 初始化数据库 ```bash cd backend # 运行迁移 npx sequelize-cli db:migrate # 运行种子数据 npx sequelize-cli db:seed:all ``` ### 5. 启动服务 ```bash # 启动后端 (端口: 3001) cd backend npm run dev # 启动前台官网 (端口: 3000) cd web npm run dev # 启动后台管理 (端口: 5173) cd admin npm run dev ``` ### 6. 访问应用 - 前台官网: http://localhost:3000 - 后台管理: http://localhost:5173 - 后端API: http://localhost:3001 ### 默认账号 - 用户名: `admin` - 密码: `admin123` ## 📚 核心功能说明 ### 报名流程 1. **填写基本信息** - 姓名、性别、生日、身高体重等 2. **上传资料** - 照片、视频、自我介绍 3. **填写联系方式** - 手机、邮箱、地址 4. **签署协议** - 参赛协议、肖像权协议、隐私政策 5. **提交审核** - 等待组委会审核 ### 支付流程 1. **创建订单** - 报名成功后生成订单 2. **选择支付方式** - 微信/支付宝 3. **完成支付** - 跳转支付页面 4. **支付回调** - 自动更新订单状态 5. **开具发票** - 支持电子发票 ### 审核流程 1. **待审核** - 报名提交后进入待审核状态 2. **初审** - 审核基本资料和照片 3. **复审** - 评委打分评审 4. **通过/拒绝** - 更新选手状态并通知 ### 退款流程 1. **申请退款** - 用户提交退款申请 2. **审核** - 管理员审核退款理由 3. **执行退款** - 原路退回到支付账户 4. **完成** - 更新订单状态 ## 🔐 权限系统 ### 角色定义 - **超级管理员** - 所有权限 - **内容编辑** - 文章、媒体管理 - **选手管理员** - 报名审核、选手管理 - **财务人员** - 订单、退款、发票管理 - **评委** - 评分系统 ### 权限控制 ```javascript // 路由权限 meta: { permissions: ['user:view', 'user:create'] } // 按钮权限 v-permission="['user:delete']" // 代码权限 if (hasPermission('user:edit')) { // 执行操作 } ``` ## 🛡️ 安全特性 - ✅ JWT 认证 - ✅ RBAC 权限控制 - ✅ SQL 注入防护 - ✅ XSS 防护 - ✅ CSRF 防护 - ✅ 请求限流 - ✅ 支付签名验证 - ✅ 敏感信息加密 - ✅ 操作审计日志 - ✅ 设备指纹识别 - ✅ 黑名单机制 ## 📊 数据统计 ### 报名统计 - 报名趋势图 - 地域分布 - 年龄分布 - 身高分布 ### 转化统计 - 访问量 - 报名转化率 - 支付转化率 - 渠道归因 ### 财务统计 - 订单金额 - 退款金额 - 发票开具 - 对账报表 ## 🧪 测试 ```bash # 后端测试 cd backend npm test # 前端测试 cd web npm test cd admin npm test ``` ## 📦 部署 ### 生产构建 ```bash # 后端 cd backend npm run build # 前台 cd web npm run build # 后台 cd admin npm run build ``` ### Docker 部署 ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d ``` ### PM2 部署 ```bash # 安装 PM2 npm install -g pm2 # 启动后端 cd backend pm2 start ecosystem.config.js # 启动前台 cd web pm2 start npm --name "web" -- start # 查看状态 pm2 status ``` ## 🔧 配置说明 ### 报名费配置 在后台管理系统中可以配置: - 是否启用报名费 - 报名费金额 - 币种 - 优惠策略 - 免费时间窗口 ### 支付配置 支持配置: - 微信支付参数 - 支付宝支付参数 - 回调地址 - 超时时间 ### 风控配置 可配置: - 设备指纹规则 - 手机号去重 - 身份证去重 - 黑名单管理 - 限流策略 ## 📝 开发指南 ### 添加新页面 1. 在 `web/pages/` 或 `admin/src/views/` 创建页面组件 2. 配置路由(Nuxt自动路由 / Vue Router手动配置) 3. 添加权限控制(如需要) ### 添加新API 1. 在 `backend/controllers/` 创建控制器 2. 在 `backend/routes/` 配置路由 3. 在前端 `api/` 目录创建API模块 ### 数据库迁移 ```bash # 创建迁移 npx sequelize-cli migration:generate --name add-field-to-table # 运行迁移 npx sequelize-cli db:migrate # 回滚迁移 npx sequelize-cli db:migrate:undo ``` ## 🐛 常见问题 ### 1. 数据库连接失败 检查 MySQL 服务是否启动,配置是否正确。 ### 2. 支付回调失败 检查回调地址是否可访问,签名验证是否正确。 ### 3. 文件上传失败 检查上传目录权限,文件大小限制。 ### 4. 前端跨域问题 检查后端 CORS 配置,代理配置。 ## 📄 文档 - [需求文档](./需求文档.md) - [系统开发文档](./系统开发文档.md) - [UI设计文档](./UI设计文档.md) - [后台管理文档](./admin/README.md) - [API文档](./backend/docs/API.md) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📜 License MIT License ## 👥 团队 好莱坞模特选美大赛中国区组委会 ## 📞 联系我们 - 官网: https://starmodelchina.com - 邮箱: contact@starmodelchina.com - 电话: 400-xxx-xxxx --- **祝您使用愉快!** 🎉