小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定
【小店会员管理系统微信小程序开发教程】本教程介绍如何使用微信云开发(云函数+云数据库)结合AI工具Cursor快速开发商业级小店会员管理系统。系统包含会员端(余额查询、消费记录、个人信息)和管理端(会员管理、充值扣费、店铺配置)两大模块,采用分层架构设计,实现多角色权限控制、防刷机制和操作日志。教程涵盖从需求分析、架构设计到AI辅助编码的全流程,提供完整视频教程+源码下载,适合理发店、宠物店等线下
大家好,我是小锋老师,最近更新《2027版 小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定》专辑,感谢大家支持。
本课程主要结合AI编程 Cursor 实现一个开源商业项目是-小店会员管理微信小程序系统,使用微信云函数和云数据库。讲解内容包括需求分析,架构和设计,利用Cursor AI编程实现Plan沟通项目方案,Agent生成项目,Agent修复bug和完善功能。
视频教程+课件+源码打包下载 :
链接:https://pan.baidu.com/s/1Oo7dtFf_Zt7hJyl6aYX6TA?pwd=1234
提取码:1234
小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定
项目演示以及需求分析

小店会员微信小程序开发需求
一、技术栈
-
微信小程序云开发(纯云函数 + 云数据库)
二、用户角色
-
VIP 会员:普通用户
-
管理员:通过数据库配置的多个管理员(老板、店长等),支持多 openid
三、TabBar 页面结构
1. “关于我们”页面
-
门店轮播图(管理员后台可动态编辑)
-
会员余额显示
-
充值按钮 → 跳转至新页面,展示:
-
老板微信二维码
-
联系电话
-
导航地图(地址由管理员配置)
-
-
店铺介绍区域(支持富文本,管理员可动态编辑业务介绍、价格等)
2. “消费记录”页面
-
展示当前会员的消费记录(项目、金额、时间)
3. “个人中心”页面
-
显示/编辑:姓名(可编辑)
-
绑定手机号(首次登录强制授权,绑定后不可编辑)
-
显示余额
-
会员编号:仅在首次充值后显示(未充值隐藏)
四、管理员功能(仅在管理员用户 TabBar 显示“系统管理”)
系统管理页面包含以下模块:
-
店铺管理
-
上传门店轮播图(多张)
-
设置导航地址(经纬度/位置)
-
上传老板微信二维码
-
编辑联系电话
-
编辑店铺介绍内容
-
-
会员管理
-
按会员编号/手机号查询
-
按时间筛选
-
会员充值(输入会员编号 → 增加余额)
-
会员扣费(输入会员编号 → 扣除余额,生成消费记录)
-
-
消费项目管理
-
增删常用消费项目(如“洗剪吹”、“烫发”)
-
增删常用价格模板(如 30 元、100 元)
-
扣费时可选择预设项目或手动输入项目名称和金额
-
-
消费记录查看
-
查看所有会员的消费记录(管理员视角)
-
五、核心业务规则
-
首次进入:必须授权手机号并绑定 openid,否则无法使用任何功能。
-
会员编号:4 位数字(0001~9999),仅首次充值时自动生成,全局唯一,不重复。
-
充值/扣费:统一通过会员编号操作,管理员输入编号即可定位会员。
-
消费记录格式:
年月日时分 - 消费项目 - 消费金额
六、安全与防护(云函数层面)
-
权限校验
-
所有云函数入口必须使用
cloud.getWXContext().OPENID获取 openid,并校验该用户是否有权执行操作。 -
普通用户只能操作自己的数据(除管理员外)。
-
管理员操作需验证 openid 是否在管理员列表中。
-
-
防刷限制
-
每个微信用户每月最多调用 500 次云函数。
-
每个管理员用户每月最多调用 20 万次云函数。
-
使用云数据库记录调用次数(字段:openid、手机号、时间戳),按月统计。
-
若 24 小时内总调用量超过 1 万次,在管理员端顶部显示红色警报横幅(不自动消失,需管理员手动关闭)。
-
-
日志记录
-
管理员操作日志表:openid、手机号、操作时间(精确到秒)、操作详情(例如“为会员 0001 充值 100 元”)。
-
会员操作日志表:openid、手机号、操作时间、操作详情(例如“登录”)。
-
七、开发要求
-
所有云函数调用前必须校验 openid。
-
管理员操作需记录详细日志。
-
前端需遵循微信小程序设计规范,保证用户体验。
-
底部开源信息须保留,但可设计为小字号或折叠,不影响主界面。
注册微信小程序以及新建微信小程序项目
注册微信小程序
要开发微信小程序项目,首先是必须注册一个微信小程序:https://mp.weixin.qq.com/cgi-bin/wx
注册好后,登录微信小程序,在开发与服务 - > 开发管理 - > 开发设置 里可以找到AppID(小程序ID)和AppSecret(小程序秘钥),我们开发小程序项目需要用到这个两个参数。小程序秘钥可以点击右侧“生成”链接,生成下,切记一定不能泄露出去。

新建微信小程序项目
打开微信开发者工具,点新建项目,选择项目目录,输入项目名称,后端服务选微信云开发,然后点“创建”按钮。

这样的话,我们就把小程序项目新建完了。

利用Cursor AI编程 Plan沟通项目方案
小店会员微信小程序开发需求
一、技术栈
-
微信小程序云开发(纯云函数 + 云数据库)
二、用户角色
-
VIP 会员:普通用户
-
管理员:通过数据库配置的多个管理员(老板、店长等),支持多 openid
三、TabBar 页面结构
1. “关于我们”页面
-
门店轮播图(管理员后台可动态编辑)
-
会员余额显示
-
充值按钮 → 跳转至新页面,展示:
-
老板微信二维码
-
联系电话
-
导航地图(地址由管理员配置)
-
-
店铺介绍区域(支持富文本,管理员可动态编辑业务介绍、价格等)
2. “消费记录”页面
-
展示当前会员的消费记录(项目、金额、时间)
3. “个人中心”页面
-
显示/编辑:姓名(可编辑)
-
绑定手机号(首次登录强制授权,绑定后不可编辑)
-
显示余额
-
会员编号:仅在首次充值后显示(未充值隐藏)
四、管理员功能(仅在管理员用户 TabBar 显示“系统管理”)
系统管理页面包含以下模块:
-
店铺管理
-
上传门店轮播图(多张)
-
设置导航地址(经纬度/位置)
-
上传老板微信二维码
-
编辑联系电话
-
编辑店铺介绍内容
-
-
会员管理
-
按会员编号/手机号查询
-
按时间筛选
-
会员充值(输入会员编号 → 增加余额)
-
会员扣费(输入会员编号 → 扣除余额,生成消费记录)
-
-
消费项目管理
-
增删常用消费项目(如“洗剪吹”、“烫发”)
-
增删常用价格模板(如 30 元、100 元)
-
扣费时可选择预设项目或手动输入项目名称和金额
-
-
消费记录查看
-
查看所有会员的消费记录(管理员视角)
-
五、核心业务规则
-
首次进入:必须授权手机号并绑定 openid,否则无法使用任何功能。
-
会员编号:4 位数字(0001~9999),仅首次充值时自动生成,全局唯一,不重复。
-
充值/扣费:统一通过会员编号操作,管理员输入编号即可定位会员。
-
消费记录格式:
年月日时分 - 消费项目 - 消费金额
六、安全与防护(云函数层面)
-
权限校验
-
所有云函数入口必须使用
cloud.getWXContext().OPENID获取 openid,并校验该用户是否有权执行操作。 -
普通用户只能操作自己的数据(除管理员外)。
-
管理员操作需验证 openid 是否在管理员列表中。
-
-
防刷限制
-
每个微信用户每月最多调用 500 次云函数。
-
每个管理员用户每月最多调用 20 万次云函数。
-
使用云数据库记录调用次数(字段:openid、手机号、时间戳),按月统计。
-
若 24 小时内总调用量超过 1 万次,在管理员端顶部显示红色警报横幅(不自动消失,需管理员手动关闭)。
-
-
日志记录
-
管理员操作日志表:openid、手机号、操作时间(精确到秒)、操作详情(例如“为会员 0001 充值 100 元”)。
-
会员操作日志表:openid、手机号、操作时间、操作详情(例如“登录”)。
-
七、开发要求
-
所有云函数调用前必须校验 openid。
-
管理员操作需记录详细日志。
-
前端需遵循微信小程序设计规范,保证用户体验。
-
底部开源信息须保留,但可设计为小字号或折叠,不影响主界面。
首先打开cursor ,导入项目。

然后把需求贴到对话框里,模型选Opus4.6,模式选Plan。然后点提交。

大概几分钟后,Opus4.6大模型就给出你设计方案:

如果你有哪里不满意的话,可以继续 Plan沟通,知道方案你满意为止。
录制过程有个小插曲,突然死机了。锋哥有重新搞了一遍提示词生成项目,所以最终方案看下面的。大家可能生成的也和我不一样,都没关系,用AI都可以改的。
1. 项目概述
┌─────────────────────────────────────────────────────────┐
│ 微信客户端(用户侧) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 微信小程序(miniprogram/) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Pages │ │Components│ │ Utils │ │ │
│ │ │ 12个页面 │ │ 自定义组件│ │ api/auth/util │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └───────────────────────┬─────────────────────────────┘ │
└──────────────────────────┼──────────────────────────────┘
│ wx.cloud.callFunction
▼
┌─────────────────────────────────────────────────────────┐
│ 微信云开发平台(Serverless) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 云函数 xiaodian(Node.js) │ │
│ │ ┌────────────┐ ┌──────────────┐ ┌────────────┐ │ │
│ │ │ Middleware │ │ Controllers │ │ Utils │ │ │
│ │ │ 鉴权/限流 │ │ 业务逻辑层 │ │ 辅助工具 │ │ │
│ │ │ /日志 │ │ user/shop/ │ │ │ │ │
│ │ │ │ │ member/finance│ │ │ │ │
│ │ │ │ │ /system │ │ │ │ │
│ │ └────────────┘ └──────────────┘ └────────────┘ │ │
│ └───────────────────────┬─────────────────────────────┘ │
│ │ cloud.database() │
│ ┌───────────────────────▼─────────────────────────────┐ │
│ │ 云数据库(文档型 NoSQL) │ │
│ │ 13 个集合:t_user / t_admin / t_shop / ... │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 云存储(图片/文件) │ │
│ │ 轮播图 / 二维码 等静态资源 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
1.1 产品定位
基于微信云开发的小店会员管理系统,面向线下实体小店(如美发店、美容店等),提供会员注册、余额充值、消费扣费、消费记录查询等核心功能。
1.2 核心功能
| 角色 | 功能模块 | 说明 |
|---|---|---|
| 会员 | 关于我们 | 店铺轮播图、余额展示、充值入口、导航地图、店铺介绍 |
| 会员 | 消费记录 | 个人消费历史,支持分页加载 |
| 会员 | 个人中心 | 查看/编辑姓名、手机号、余额、会员编号 |
| 管理员 | 店铺管理 | 轮播图、导航地址、微信二维码、联系电话、店铺介绍 |
| 管理员 | 会员管理 | 会员列表、按时间/编号/手机号搜索筛选 |
| 管理员 | 会员充值 | 通过会员编号或手机号查询并充值 |
| 管理员 | 消费管理 | 选择/输入消费项目和金额,执行扣费 |
| 管理员 | 项目管理 | 管理常用消费项目和常用价格 |
2. 系统架构总览
2.1 架构特点
-
Serverless 架构:无需自建服务器,云函数按需执行,自动弹性伸缩
-
单云函数路由:所有业务逻辑集中在一个云函数
xiaodian中,通过action参数路由分发 -
中间件管道:请求经过 鉴权 → 限流 → 业务处理 → 日志记录 的标准流程
-
前后端一体化:微信云开发天然打通鉴权(openid),无需传统的 token/session 机制
3. 技术栈
| 层级 | 技术选型 | 版本/说明 |
|---|---|---|
| 客户端框架 | 微信小程序原生 | WXML + WXSS + JS |
| 基础库 | 微信小程序基础库 | 3.15.1 |
| 服务端运行时 | Node.js(云函数) | 微信云开发托管 |
| 服务端 SDK | wx-server-sdk | ~2.6.3 |
| 数据库 | 微信云数据库 | 文档型 NoSQL(类 MongoDB) |
| 文件存储 | 微信云存储 | 图片/静态资源 |
| 身份认证 | 微信 OpenID + 手机号授权 | 内置鉴权 |
| 开发工具 | 微信开发者工具 | 编译/调试/部署一体化 |
| 代码加载策略 | 按需注入 | lazyCodeLoading: "requiredComponents" |
4. 目录结构
xiaodian2/
├── project.config.json # 微信开发者工具项目配置
├── project.private.config.json # 本地私有配置覆盖
├── README.md # 项目说明文档
├── ARCHITECTURE.md # 架构技术设计文档(本文档)
│
├── miniprogram/ # ===== 小程序前端 =====
│ ├── app.js # 全局入口(云初始化、登录检查)
│ ├── app.json # 页面路由、TabBar、窗口配置
│ ├── app.wxss # 全局样式
│ ├── sitemap.json # 搜索索引规则
│ │
│ ├── custom-tab-bar/ # 自定义 TabBar 组件
│ │ ├── index.js # 动态 Tab 逻辑(管理员/会员切换)
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
│ │
│ ├── components/ # 公共组件
│ │ └── footer/ # 底部版权组件
│ │
│ ├── utils/ # 工具函数
│ │ ├── api.js # 云函数调用统一封装
│ │ ├── auth.js # 登录态管理与守卫
│ │ └── util.js # 通用格式化工具
│ │
│ └── pages/ # ===== 页面目录 =====
│ ├── about/ # Tab1 - 关于我们(店铺首页)
│ ├── records/ # Tab2 - 消费记录
│ ├── profile/ # Tab3(会员) - 个人中心
│ ├── admin/ # Tab3(管理员) - 系统管理面板
│ ├── login/ # 登录授权页(手机号授权)
│ ├── recharge-info/ # 充值方式展示(二维码)
│ ├── shop-manage/ # 店铺信息管理
│ ├── member-manage/ # 会员列表管理
│ ├── member-recharge/ # 会员充值操作
│ ├── consume-manage/ # 消费扣费操作
│ ├── item-manage/ # 消费项目管理
│ └── shop-intro-edit/ # 店铺介绍富文本编辑
│
└── cloudfunctions/ # ===== 云函数 =====
└── xiaodian/ # 唯一业务云函数
├── index.js # 入口 & 路由分发
├── config.json # 超时配置 & 开放接口权限
├── package.json # npm 依赖声明
│
├── middleware/ # 中间件层
│ ├── auth.js # 鉴权(用户/管理员身份判定)
│ ├── rateLimit.js # 频率限制(月限/日统计/警报)
│ └── logger.js # 操作日志(管理员/会员分表记录)
│
├── controllers/ # 业务控制器层
│ ├── user.js # 用户:登录、资料查看/修改
│ ├── shop.js # 店铺:信息查看/更新
│ ├── member.js # 会员:列表查询、编号查询
│ ├── finance.js # 财务:充值、消费、记录查询
│ ├── system.js # 系统:项目/价格/警报/日志管理
│ └── initDb.js # 开发期数据库初始化
│
└── utils/
└── helper.js # 辅助工具(会员编号生成等)
5. 前端架构设计
5.1 应用生命周期
App.onLaunch
│
├── 1. wx.cloud.init() 初始化云环境
│
├── 2. initDb.run 开发期自动初始化数据库集合
│
└── 3. checkLogin() 异步检查登录态
│
├── 调用 user.getProfile
│
├── 已登录 → 设置 globalData(userInfo/isAdmin/isLoggedIn)
│
└── 未登录 → loginChecked = true,等待页面级处理
5.2 全局状态管理
使用 App.globalData 作为全局状态中心:
| 字段 | 类型 | 说明 |
|---|---|---|
env |
string | 云开发环境 ID |
userInfo |
object/null | 当前用户信息(含 balance、memberNo 等) |
isAdmin |
boolean | 是否管理员 |
isLoggedIn |
boolean | 是否已登录 |
loginChecked |
boolean | 启动期登录检查是否完成 |
5.3 页面结构与导航
采用自定义 TabBar 实现动态角色导航:
| Tab 位 | 会员视角 | 管理员视角 |
|---|---|---|
| Tab 1 | 关于我们 | 关于我们 |
| Tab 2 | 消费记录 | 消费记录 |
| Tab 3 | 个人中心 | 系统管理 |
管理员 Tab3 自动切换为「系统管理」面板,通过 custom-tab-bar 组件根据 isAdmin 动态渲染。
5.4 登录态守卫
页面 onShow / onLoad
│
└── auth.checkLogin(page)
│
├── loginChecked && isLoggedIn → 正常加载数据
├── loginChecked && !isLoggedIn → 跳转 /pages/login/login
└── !loginChecked → 注册 loginReadyCallback,等待 App 回调
5.5 API 调用封装
utils/api.js 统一封装所有云函数调用:
callCloud(action, data)
→ wx.cloud.callFunction({ name: 'xiaodian', data: { action, ...data } })
→ result.code === 0 ? resolve(result.data) : reject + Toast 提示
-
云函数名固定为
xiaodian -
所有接口通过
action字符串路由(如user.login、finance.recharge) -
统一错误处理与用户提示
6. 后端架构设计(云函数)
6.1 单入口路由架构
所有请求统一进入 xiaodian 云函数的 exports.main,通过 event.action 路由到对应 Controller:
请求进入 (event.action)
│
├── 1. 路由校验 action 是否在 ROUTE_MAP 中
├── 2. OpenID 提取 cloud.getWXContext().OPENID
├── 3. 开发期分支 DEV_NO_AUTH_ACTIONS → 直接执行
├── 4. 鉴权中间件 authenticate(openid)
├── 5. 限流中间件 checkRateLimit(openid, isAdmin, phone)
├── 6. 注册校验 非 PUBLIC_ACTIONS 须已绑定手机号
├── 7. 权限校验 ADMIN_ACTIONS 须 isAdmin === true
├── 8. 执行业务 ROUTE_MAP[action](event, authResult)
├── 9. 异步日志 logOperation(authInfo, action, event)
└── 10. 返回结果 { code: 0, data } 或 { code: 非0, message }
6.2 路由映射表(ROUTE_MAP)
| Action | Controller | 方法 | 权限 |
|---|---|---|---|
user.login |
userCtrl | login | 公开 |
user.getProfile |
userCtrl | getProfile | 公开 |
user.updateName |
userCtrl | updateName | 已登录 |
shop.getInfo |
shopCtrl | getInfo | 已登录 |
shop.updateInfo |
shopCtrl | updateInfo | 管理员 |
member.list |
memberCtrl | list | 管理员 |
member.getByMemberNo |
memberCtrl | getByMemberNo | 管理员 |
finance.recharge |
financeCtrl | recharge | 管理员 |
finance.consume |
financeCtrl | consume | 管理员 |
finance.getMyRecords |
financeCtrl | getMyRecords | 已登录 |
finance.getMemberRecords |
financeCtrl | getMemberRecords | 管理员 |
system.getItems |
systemCtrl | getItems | 管理员 |
system.addItem |
systemCtrl | addItem | 管理员 |
system.deleteItem |
systemCtrl | deleteItem | 管理员 |
system.getPrices |
systemCtrl | getPrices | 管理员 |
system.addPrice |
systemCtrl | addPrice | 管理员 |
system.deletePrice |
systemCtrl | deletePrice | 管理员 |
system.getAlerts |
systemCtrl | getAlerts | 管理员 |
system.dismissAlert |
systemCtrl | dismissAlert | 管理员 |
system.getAdminLogs |
systemCtrl | getAdminLogs | 管理员 |
initDb.run |
initDbCtrl | run | 开发期免鉴权 |
6.3 中间件层
6.3.1 鉴权中间件(auth.js)
authenticate(openid)
│
├── 查询 t_user → 判断 registered(是否有 phone)
├── 查询 t_admin → 判断 isAdmin
│
└── 返回 { openid, registered, isAdmin, userInfo, phone }
6.3.2 限流中间件(rateLimit.js)
| 维度 | 规则 | 阈值 |
|---|---|---|
| 普通用户月限 | 按 openid + 月份统计 | 500 次/月 |
| 管理员月限 | 所有管理员合计统计 | 200,000 次/月 |
| 全局日统计 | 按日期统计所有调用 | 10,000 次/日触发警报 |
限流流程:
checkRateLimit(openid, isAdmin, phone)
│
├── 查询/创建 t_rate_limit 月度计数记录(原子 inc)
│
├── 管理员 → 汇总当月所有管理员调用,>200,000 则限制
├── 普通用户 → 当前用户当月 >500 则限制
│
└── 异步触发 checkDailyAlert(today)
├── 更新 t_daily_count 日统计
└── >10,000 且无未关闭警报 → 写入 t_alert
6.3.3 日志中间件(logger.js)
logOperation(authInfo, action, event)
│
├── 管理员 → 写入 t_admin_log
├── 已注册会员 → 写入 t_member_log
└── 未注册用户 → 不记录
日志内容包含:openid、phone、action、可读详情(buildDetail 映射)、时间戳。
6.4 统一响应格式
// 成功
{ "code": 0, "data": { ... } }
// 业务错误
{ "code": 400, "message": "无效的操作" }
{ "code": 401, "message": "身份验证失败,无法获取openid" }
{ "code": 403, "message": "请先完成手机号授权登录" }
{ "code": 403, "message": "权限不足,需要管理员权限" }
{ "code": 429, "message": "本月云函数调用次数已达上限(500次)" }
{ "code": 500, "message": "服务器内部错误" }
7. 数据库设计
7.1 数据库类型
微信云数据库,文档型 NoSQL(类 MongoDB),通过 wx-server-sdk 的 cloud.database() 访问。
7.2 集合(表)设计
7.2.1 核心业务集合
t_user — 用户/会员表
| 字段 | 类型 | 说明 |
|---|---|---|
_id |
string | 文档 ID(自动生成) |
openid |
string | 微信 OpenID(唯一标识) |
phone |
string | 手机号(授权绑定) |
name |
string | 用户姓名 |
balance |
number | 会员余额(元) |
memberNo |
string/null | 4位会员编号(首次充值时生成) |
firstRechargeTime |
date | 首次充值时间 |
createTime |
date | 创建时间 |
updateTime |
date | 最后更新时间 |
t_admin — 管理员表
| 字段 | 类型 | 说明 |
|---|---|---|
_id |
string | 文档 ID |
openid |
string | 管理员微信 OpenID |
phone |
string | 手机号 |
name |
string | 管理员姓名 |
t_shop — 店铺信息表
| 字段 | 类型 | 说明 |
|---|---|---|
_id |
string | 文档 ID |
| 轮播图、地址坐标、二维码、联系电话、店铺介绍等 | mixed | 店铺展示信息 |
7.2.2 交易流水集合
t_recharge_record — 充值记录
| 字段 | 类型 | 说明 |
|---|---|---|
memberNo |
string | 会员编号 |
userOpenid |
string | 会员 OpenID |
userPhone |
string | 会员手机号 |
amount |
number | 充值金额 |
adminOpenid |
string | 操作管理员 OpenID |
adminPhone |
string | 管理员手机号 |
createTime |
date | 充值时间 |
t_consume_record — 消费记录
| 字段 | 类型 | 说明 |
|---|---|---|
memberNo |
string | 会员编号 |
userOpenid |
string | 会员 OpenID |
userPhone |
string | 会员手机号 |
project |
string | 消费项目名称 |
amount |
number | 消费金额 |
adminOpenid |
string | 操作管理员 OpenID |
adminPhone |
string | 管理员手机号 |
createTime |
date | 消费时间 |
7.2.3 配置集合
| 集合 | 说明 |
|---|---|
t_consume_item |
常用消费项目(如洗剪吹、烫发) |
t_price_item |
常用价格选项(如 30 元、100 元) |
7.2.4 安全与运维集合
| 集合 | 说明 |
|---|---|
t_rate_limit |
月度调用频率统计(按 openid + yearMonth) |
t_daily_count |
每日调用总量统计 |
t_alert |
异常警报记录(超阈值自动生成) |
t_admin_log |
管理员操作日志 |
t_member_log |
会员操作日志 |
t_counter |
计数器(会员编号自增序列,0001-9999) |
7.3 集合关系图
t_admin ─────┐
│ openid
t_user ──────┤◄──── t_recharge_record
│ │ ▲ adminOpenid
│ memberNo │ │
│ │ t_consume_record
│ │ ▲ adminOpenid
│ │
│ ├──── t_rate_limit(按 openid 统计)
│ ├──── t_admin_log(管理员操作)
│ └──── t_member_log(会员操作)
│
└── t_counter(会员编号序列生成器)
t_shop ── 独立(单条文档,存储店铺配置信息)
t_consume_item / t_price_item ── 独立配置项
t_daily_count / t_alert ── 运维监控
8. 接口设计(API)
8.1 调用方式
所有接口通过统一方式调用:
wx.cloud.callFunction({
name: 'xiaodian',
data: {
action: 'module.method',
// ...业务参数
}
})
8.2 接口分类
用户模块(user)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
user.login |
手机号授权登录 | code |
userInfo + isAdmin |
user.getProfile |
获取个人资料 | - | userInfo 或 { needLogin } |
user.updateName |
修改姓名 | name |
{ success } |
店铺模块(shop)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
shop.getInfo |
获取店铺信息 | - | 店铺配置对象 |
shop.updateInfo |
更新店铺信息 | 各店铺字段 | 更新结果 |
会员模块(member)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
member.list |
会员列表 | 筛选/分页参数 | 列表 + 分页 |
member.getByMemberNo |
按编号查会员 | memberNo |
会员信息 |
财务模块(finance)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
finance.recharge |
充值 | memberNo/phone, amount |
会员最新余额 |
finance.consume |
消费扣费 | memberNo, project, amount |
会员最新余额 |
finance.getMyRecords |
我的消费记录 | page, pageSize |
分页记录列表 |
finance.getMemberRecords |
会员记录(管理员) | memberNo, page, pageSize |
消费+充值记录 |
系统模块(system)
| 接口 | 说明 |
|---|---|
system.getItems / addItem / deleteItem |
消费项目 CRUD |
system.getPrices / addPrice / deletePrice |
常用价格 CRUD |
system.getAlerts / dismissAlert |
警报查看/关闭 |
system.getAdminLogs |
管理员操作日志 |
9. 安全机制
9.1 身份认证
微信授权体系
│
┌───────────────┼───────────────┐
▼ ▼ ▼
OpenID 自动获取 手机号授权 管理员白名单
(cloud.getWXContext) (getPhoneNumber) (t_admin)
│ │ │
└───────────────┼───────────────┘
▼
三级权限判定
公开 < 已登录 < 管理员
| 层级 | 条件 | 可访问接口 |
|---|---|---|
| 公开 | 仅需 OpenID | user.login、user.getProfile |
| 已登录 | OpenID + 已绑定手机号 | 所有非管理员接口 |
| 管理员 | OpenID + t_admin 存在记录 | ADMIN_ACTIONS 列表中的接口 |
9.2 调用频率限制
| 对象 | 限额 | 超限行为 |
|---|---|---|
| 普通用户 | 500 次/月 | 返回 429,拒绝服务 |
| 管理员(全体) | 200,000 次/月 | 返回 429,拒绝服务 |
| 全局日统计 | 10,000 次/日 | 自动生成 t_alert 警报 |
9.3 业务安全校验
-
充值金额:必须 > 0 且 <= 100,000 元
-
消费金额:必须 > 0 且 <= 100,000 元,且不超过会员余额
-
姓名修改:非空且 <= 20 字符
-
会员编号:4 位数字(0001-9999),通过
t_counter原子自增保证唯一性
利用Cursor AI编程 Agent生成项目
我们点Build生成项目

大概等待20分钟左右,项目生成完成了。

我们把项目导入微信开发者工具,尝试运行。

利用Cursor AI编程 Agent修复bug和完善功能

我们用得是旗舰模型Opus4.6,目前生成的项目基本也没啥问题,我测试了一遍。假如大家还有不满意的话,可以然AI继续改即可。
更多推荐


所有评论(0)