# 1111 **Repository Path**: hngcadmin/one1 ## Basic Information - **Project Name**: 1111 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-02 - **Last Updated**: 2026-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 弥渡花灯文化宣传平台 ## 项目说明 这是一个包含主站、内部业务 API、管理员后台的完整本地项目: - 主站:`HTML + CSS + 原生 JS`,用 `Vite` 启动和构建 - 真实后端:`Node.js + Express + MySQL` - 管理后台:`admin-backend`,现在已经改成通过真实后端代理访问数据库,不再使用内存 mock 数据 ## 当前架构 ### 1. 主站前端 - 目录:项目根目录页面文件、`js/`、`css/` - 启动端口:`5173` - 作用:文化宣传、登录注册、商品浏览、购物车、创建订单、订单查询、个人中心、商家中心 ### 2. 真实后端 - 目录:`server/` - 技术:`Express + mysql2 + JWT + multer` - 启动端口:`3001` - 作用:用户、商品、订单、媒体、商家入驻等真实 API - 说明:这是内部服务端口,给主站和管理后台代理使用,正常使用时不需要直接打开 ### 3. 管理员后台 - 目录:`admin-backend/` - 启动端口:`3002` - 作用:用户管理、商品管理、订单管理、商家审核、媒体管理 - 说明:所有页面操作都通过 `admin-backend -> server -> MySQL` 完成,已经统一成真实数据链路 ## 数据库 项目数据库是 **MySQL**。 数据库连接配置文件: - [server/.env](/Users/ljd/Desktop/db/sheji-web/server/.env) 当前默认配置: ```env DB_HOST=localhost DB_USER=root DB_PASSWORD=123456 DB_NAME=midu_flower_lantern DB_PORT=3306 ``` ## 我已经完成的改造 ### 1. 后端改造 - 修复了根目录 `package.json` 非法注释导致的启动失败 - 修复了后端从项目根目录启动时 `.env` 读取不正确的问题 - 重写了以下真实路由: - `auth` - `users` - `products` - `orders` - `media` - 保留并接通了商家入驻审核接口 ### 2. 数据库结构补齐 我已经把数据库结构补到能支撑后台实际使用: - `users` - 新增/兼容:`nickname`、`gender`、`phone`、`birthday`、`status`、`avatar`、`last_login` - `products` - 新增/兼容:`category`、`stock`、`warning_stock`、`updated_at` - `media` - 新增/兼容:`title`、`description` - `orders` - 新增/兼容:`shipping_contact`、`shipping_phone`、`shipping_address`、`payment_method` - 新增/兼容:`logistics_company`、`tracking_number`、`shipping_note`、`shipped_at`、`delivered_at` - `merchants` - 保留商家申请和审核状态 数据库初始化脚本: - [server/db/init-db.js](/Users/ljd/Desktop/db/sheji-web/server/db/init-db.js) ### 3. 管理后台改造 我已经把 `admin-backend` 从“假数据演示后台”改成了“真实后台入口”: - 自动向真实后端获取管理员 token - 页面统一请求 `admin-backend` 的 `/api/*` - `admin-backend` 再代理到真实后端 - 所有用户、商品、订单、商家、媒体操作都来自 MySQL ### 4. 页面级修复 我已经重做了以下页面逻辑: - 主站商品页 - 主站特色美食页 - 主站订单页 - 主站个人中心 - 主站商家中心 - 仪表盘 - 用户管理 - 商品管理 - 订单管理 - 商家审核 - 媒体资源管理 现在这些页面的新增、编辑、删除、查看、筛选都走真实数据库。 ### 5. 最近补齐的功能 这轮又补齐了前台和商家中心里几类关键交互: - 主站 `shop.html` - 新增显式 `去结算`、`创建订单`、`我的订单` - 商品详情支持 `立即下单` 和 `加入购物车` - 购物车数量与总金额实时刷新 - 主站 `food.html` - 已改成数据库驱动的美食商品页 - 支持 `查看详情`、`加入购物车`、`立即下单`、`查看购物车`、`创建订单` - 下单成功后可直接跳转 `orders.html` - 主站商家中心 `merchant.html` - 修复订单详情查看 - 修复商品新增/编辑 - 修复库存编辑 - 修复商家资料编辑 - 页面顶部增加常驻退出登录按钮 - 全站导航 - 登录后右上角支持直接退出登录并重新登录别的账号 ## 已实测通过的能力 我已经真实执行并验证过: - 用户注册 - 用户登录 - 管理员登录 - 管理后台自动鉴权 - 主站商品页购物车与创建订单 - 主站特色美食页购物车与创建订单 - 用户新增、修改、删除 - 商品新增、修改、删除 - 商品分类读取 - 订单创建写入数据库 - 订单列表读取 - 订单状态修改 - 订单支付、取消、发货物流回写 - 商家申请读取与审核 - 商家审核通过后自动升级为商家角色 - 媒体上传、修改、删除 - 商品图片上传与商品创建 - 仪表盘统计读取 - 商家中心订单/商品/库存/资料弹窗操作 - 主站与商家中心退出登录 - 数据库初始化 - 前端构建 `npm run build` ## 默认账号 ### 管理员 - 账号:`admin` - 密码:`12345678` 说明:这是项目内置管理员账号密码,不是 MySQL root 密码。 ### 普通用户 - 账号:`user` - 密码:`123456` ## 一键部署 ### macOS 直接运行: - [deploy/macos-start.command](/Users/ljd/Desktop/db/sheji-web/deploy/macos-start.command) 这个脚本会自动完成: 1. 写入 `server/.env` 2. 安装根目录依赖 3. 安装 `admin-backend` 依赖 4. 检查并尝试启动 MySQL 5. 初始化数据库 6. 创建测试用户 7. 启动真实后端 8. 启动管理后台 9. 启动主站前端 10. 自动打开浏览器 ### Windows 双击运行: - [deploy/windows-start.bat](/Users/ljd/Desktop/db/sheji-web/deploy/windows-start.bat) 或直接运行: - [deploy/windows-start.ps1](/Users/ljd/Desktop/db/sheji-web/deploy/windows-start.ps1) 它会完成和 macOS 脚本相同的事情。 ## 启动后的默认地址 - 主站:`http://127.0.0.1:5173` - 管理后台:`http://127.0.0.1:3002` 正常给使用者的只有这两个地址。 内部 API 服务: - 后端内部服务:`http://127.0.0.1:3001` 主站通过 `Vite /api + /uploads` 代理访问后端,管理后台通过 `admin-backend` 代理访问后端,所以最终对外可以只记: - 用户端:`5173` - 管理端:`3002` 补充说明: - `5173` 已经包含用户端下单、订单查询、个人中心、商家中心 - `3002` 是管理员维护后台,前台页面展示内容和商品数据由后台维护后同步体现在主站 ## 手动部署方式 如果你不想使用一键脚本,也可以手动执行。 ### 1. 安装依赖 根目录: ```bash npm install ``` 管理后台: ```bash cd admin-backend npm install cd .. ``` ### 2. 初始化数据库 ```bash node server/db/init-db.js node server/create-test-user.js ``` ### 3. 启动内部 API 服务 ```bash node server/server.js ``` ### 4. 启动管理后台 ```bash node admin-backend/server.js ``` ### 5. 启动主站前端 ```bash npm run dev -- --host 127.0.0.1 --port 5173 ``` ## 生产构建 执行: ```bash npm run build ``` 构建产物目录: - [dist](/Users/ljd/Desktop/db/sheji-web/dist) ## 关键文件 - 主站配置:[package.json](/Users/ljd/Desktop/db/sheji-web/package.json) - Vite 配置:[vite.config.js](/Users/ljd/Desktop/db/sheji-web/vite.config.js) - 后端入口:[server/server.js](/Users/ljd/Desktop/db/sheji-web/server/server.js) - 数据库连接:[server/db/db.js](/Users/ljd/Desktop/db/sheji-web/server/db/db.js) - 数据库初始化:[server/db/init-db.js](/Users/ljd/Desktop/db/sheji-web/server/db/init-db.js) - 管理后台入口:[admin-backend/server.js](/Users/ljd/Desktop/db/sheji-web/admin-backend/server.js) - 管理后台样式:[admin-backend/public/admin.css](/Users/ljd/Desktop/db/sheji-web/admin-backend/public/admin.css) - 管理后台逻辑:[admin-backend/public/admin-app.js](/Users/ljd/Desktop/db/sheji-web/admin-backend/public/admin-app.js) - 一键部署脚本: - [deploy/macos-start.command](/Users/ljd/Desktop/db/sheji-web/deploy/macos-start.command) - [deploy/windows-start.bat](/Users/ljd/Desktop/db/sheji-web/deploy/windows-start.bat) - [deploy/windows-start.ps1](/Users/ljd/Desktop/db/sheji-web/deploy/windows-start.ps1) ## 注意事项 ### 1. MySQL 前提 一键脚本会尽量自动启动 MySQL,但前提仍然是: - 你的机器已经安装了 MySQL - Windows 脚本会优先读取系统环境变量 `DB_PASSWORD` - 如果没有设置环境变量,会尝试读取 `server/.env` - 如果仍然没有配置,会按常见默认值依次尝试 `123456` 和 `12345678` 如果你要显式指定密码,Windows 可以先执行: ```bat set DB_PASSWORD=123456 deploy\windows-start.bat ``` ### 2. 端口占用 默认使用: - `3001` - `3002` - `5173` 如果有其他程序占用这些端口,一键脚本会尝试清理;若清理失败,请手动结束对应进程。 ### 3. 当前范围 这次改造的重点是把 **主站业务页 + 管理后台 + 真实数据库链路补完整**,所以现在前后台主要业务已经能直接用。 目前已经补到以下状态: - 前台商品页和特色美食页都可以直接创建订单 - 订单、物流、商家申请、商品图片、媒体资源都来自数据库 - 商家中心的查看、编辑、库存、资料、退出登录都可直接使用 如果你下一步要继续做: - 真正的生产登录权限体系 - 更严格的文件管理 - 商家管理扩展 可以继续在这套基础上往下做。