# DepartmentStore **Repository Path**: Meta_haoyuan/department-store ## Basic Information - **Project Name**: DepartmentStore - **Description**: No description available - **Primary Language**: 其他 - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-10 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 果优先小程序 🍎🍊🍌 一个完整的微信小程序水果商城系统,包含用户端和后台管理系统,支持微信云开发和用户登录功能。 ## 🎉 最新更新 (v4.0 全面优化版) ### 🔒 安全加固(重要) - **管理云函数全部增加管理员权限校验**:saveProduct / updateProduct / deleteProduct / batchDeleteProducts / batchToggleProducts / toggleProductStatus / saveBanner / deleteBanner / saveCategory / deleteCategory / addNotice / updateNotice / deleteNotice / getUsers / getStats / getRevenue / freightConfig(update) / updateUser(权限字段) 现在都会校验调用者 `isAdmin`,未授权调用返回"无权限操作" - **数据越权修复**: - `cart` / `saveOrder` / `payOrder` / `getOrders` / `getLikes` 强制使用服务端 `OPENID`,无法再通过伪造 openid 操作他人购物车、订单、收藏 - `getOrders` 修复了 `.where()` 条件被覆盖导致普通用户可查看全部订单的漏洞 - `updateOrder` 发货仅管理员可操作,收货/取消/删除/支付仅订单本人可操作 - `updateUser` 设为管理员/禁用账号仅管理员可操作,普通字段仅本人可改 - ⚠️ **部署后请检查云数据库权限设置**:建议将所有集合权限设为"仅创建者可读写"或自定义规则(客户端不允许直接写库,全部写操作走云函数) ### 🐛 Bug 修复 - 修复 `utils/auth.js` 调用不存在的 `app.checkAndRefreshLogin()` 导致的崩溃 - 修复自定义 TabBar 购物车角标永不更新(`cartCount` vs `cartBadge` 字段不一致),现在加购后角标实时刷新 - 修复商品/轮播图/分类图标/购物车/订单的 `cloud://` 图片无法显示的问题(自动转换临时链接) - 修复 `deleteProduct` 删除商品时点赞记录清理失效(productId 取错字段) - 修复 `payOrder` 中 `prepay_data.result_code` 笔误及 appid 未取值 - 修复管理端商品"选择模式"勾选框不显示(WXML 不支持 `.includes()` 方法) - 修复订单"删除"按钮无效(云函数缺少 delete 动作) - 修复登录失败后按钮一直停留在"登录中"状态 - 修复管理首页"最新订单"只显示管理员自己的订单 - 修复后台编辑商品/分类时云存储图片无法预览 - 修复管理端批量删除后点赞记录残留 ### ⚡ 性能优化 - 购物车角标改用轻量 `count` 动作,每次页面切换不再做图片临时链接转换 - 商品/轮播图/分类图片临时链接统一在云函数端批量转换,减少客户端往返 - 首页实时数据监听增加 300ms 防抖,避免变更风暴引发请求洪峰 - 商品图片增加 `lazy-load` 懒加载 - `getOrders` 查询条件合并(减少无效查询)并区分管理员 500 条 / 用户 200 条上限 - 首页分类加载去掉冗余的客户端二次转换 ### 🧹 代码整理 - 删除遗留的 uni-app 脚手架文件(App.vue、main.js、manifest.json、pages.json 及 6 个 .vue 页面副本),项目为微信原生框架 - 统一公告云函数错误返回格式(message → error) - 新增 `utils/image.js` 云图片工具(toTempUrls / resolveProducts / firstImage) ### ⚠️ 升级部署说明 1. **重新部署所有修改过的云函数**(右键每个云函数目录 → 上传并部署:云端安装依赖) 2. 检查云数据库集合权限(products / orders / users / carts / likes / banners / notices / categories / sys_config 等) 3. 编译运行验证 ## 📱 功能特点 ### 用户端功能 - **首页** - 热门水果展示、分类入口、优惠活动 - **分类页** - 水果分类浏览、快速筛选 - **购物车** - 商品增删、数量调整、结算下单 - **商品详情** - 商品信息展示、加入购物车、立即购买 - **个人中心** - 用户信息、订单管理、地址管理 - **订单确认** - 地址选择、支付方式、订单提交 - **登录功能** - 微信一键授权登录 ### 🔧 后台管理系统 访问方式:打开"我的"页面 → 点击用户名旁边的"⚙️"图标 #### 管理首页 - 📊 数据统计面板(商品数量、订单数、用户统计) - 👥 用户管理入口 - ⚡ 快捷操作入口 - 📋 最新订单列表 #### 商品管理 - 🔍 商品搜索功能 - 🏷️ 分类筛选(苹果、香蕉、橙子等) - ✏️ 编辑商品信息 - 🗑️ 删除商品 - 🖼️ **多图支持**(最多9张) #### 添加商品 - 📷 **图片上传**(支持相册选择和相机拍摄,最多9张) - 📝 商品名称、描述 - 💰 价格设置 - 📦 库存管理 - 🏷️ 分类选择 - ⭐ 热门、新品标签 #### 订单管理 - 📊 订单状态筛选(待付款、待发货、待收货、已完成) - 📦 订单商品详情 - 🚚 **发货处理**(待发货订单) #### 用户管理 - 👥 查看所有用户列表 - 🔍 搜索用户(昵称、OpenID) - 📊 用户筛选(全部、今日新用户、活跃用户) - ⚙️ 设置/取消管理员权限 - 🗑️ 删除用户 ## 🔧 技术栈 - **前端框架**: 微信小程序原生框架 - **样式**: WXML + WXSS + JavaScript - **云服务**: 微信云开发(云数据库、云存储、云函数) - **数据存储**: 本地缓存 + 云数据库双模式 ## 📁 项目结构 ``` ├── pages/ # 页面文件 │ ├── index/ # 首页 │ ├── category/ # 分类页 │ ├── cart/ # 购物车 │ ├── mine/ # 个人中心 │ ├── product/ # 商品详情 │ ├── order/ # 订单相关 │ ├── login/ # 登录页面 │ └── admin/ # 后台管理 │ ├── index # 管理首页 │ ├── products # 商品管理 │ ├── addProduct # 添加商品 │ ├── orders # 订单管理 │ └── users # 用户管理 ├── utils/ # 工具函数 │ └── auth.js # 登录验证工具 ├── app.js # 应用入口 ├── app.json # 应用配置 ├── app.wxss # 全局样式 └── README.md ``` ## 🚀 快速开始 ### 1. 环境准备 - 下载并安装 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) - 开通微信云开发功能 ### 2. 云开发配置 1. 在微信开发者工具中,点击"云开发"按钮,开通云开发 2. 创建云环境,复制环境ID 3. 在 `app.js` 中替换 `CLOUD_ENV` 为你的环境ID: ```javascript const CLOUD_ENV = 'your-cloud-env-id'; // 替换为你的云环境ID ``` ### 3. 云数据库配置 在云开发控制台创建以下集合: - `products` - 商品集合 - `orders` - 订单集合 - `users` - 用户集合 ### 4. 运行项目 1. 打开项目文件夹 2. 使用小程序 AppID(测试号即可) 3. 编译运行 ## 📖 使用说明 ### 功能测试 #### 用户端测试 1. **浏览商品**:打开首页,浏览热门水果 2. **查看详情**:点击商品进入详情页 3. **加入购物车**: - 未登录时,会提示登录 - 点击"微信授权登录"完成登录 - 登录后才能加入购物车 4. **结算下单**:选择商品 → 结算 → 创建订单 #### 后台管理测试 1. 进入"我的" → 点击用户名旁的"⚙️"图标 2. **商品管理**: - 点击"添加商品"上传商品(支持多图) - 查看商品列表 - 编辑或删除商品 3. **用户管理**: - 查看所有登录用户 - 搜索用户 - 设置管理员 4. **订单管理**: - 查看所有订单 - 筛选不同状态订单 - 处理发货 ## ☁️ 云开发功能 ### 本地模式 vs 云模式 系统支持两种数据存储模式: **本地模式**(默认) - 所有数据存储在本地缓存 - 重启小程序会重置数据 - 适合开发和测试 **云模式** - 数据存储在云数据库 - 支持图片上传到云存储 - 用户信息跨设备同步 - 适合正式使用 ### 如何启用云模式 1. 开通云开发 2. 配置环境ID 3. 创建云数据库集合 4. 系统自动检测并启用云模式 ## 🔐 登录系统 ### 登录流程 1. 用户点击需要登录的操作(如加入购物车) 2. 弹出登录提示框 3. 用户点击"微信授权登录" 4. 系统获取用户微信信息 5. 保存到本地和云数据库 6. 继续执行用户操作 ### 用户信息记录 - OpenID(用户唯一标识) - 昵称、头像 - 性别、国家、省份、城市 - 登录时间、登录次数 ## ⚙️ 配置说明 ### app.js 配置 ```javascript const CLOUD_ENV = 'your-environment-id'; // 云环境ID ``` ### app.json 配置 - 页面路由配置 - 窗口样式配置 - TabBar 配置 ## 📝 更新日志 ### v3.0 (2024-04-28) - ✨ 新增多图上传功能(最多9张) - ☁️ 对接微信云开发 - 👥 新增用户登录系统 - 👥 新增后台用户管理模块 - 🔐 登录验证功能 - 📊 用户统计数据 ### v2.0 (2024-04-28) - ✨ 新增完整后台管理系统 - 📊 管理首页数据统计功能 - 📦 商品管理(增删改查) - 📋 订单管理系统 - 🚚 订单发货处理功能 - ⚙️ 后台入口优化 ### v1.0 (2024-04-27) - 🎉 基础用户端功能 - 🛒 购物车功能 - 📱 订单流程 ## ⚠️ 注意事项 1. **图片上传**:云存储需要配置合法域名(开发阶段可忽略) 2. **登录功能**:需要用户主动授权 3. **数据存储**:本地模式数据会丢失,建议启用云模式 4. **管理员权限**:普通用户无法访问后台 5. **测试号限制**:部分云函数功能需要正式 AppID ## 📞 技术支持 如有问题或建议,请联系: - 📧 邮箱:support@guoyx.com - 📞 电话:400-123-4567 ## 📄 许可证 本项目仅供学习交流使用,禁止商业用途。 --- **果优先** - 让新鲜水果触手可及 🍎🍊🍌