[作品分享] 付费用户数上千的小程序成品——花辞典
需求分析
花辞典是我们将要构建的项目名称,是一个花卉行业内容付费类型的小程序。本软件将使用完全定制化的方式来构建,仅基于Laravel框架,70%内容源自于教程。
1. 角色
在辞典中,将会出现以下角色:
- 空白用户——仅仅是访问过小程序;
- 授权用户——授权小程序获取过昵称及头像;
- 正式用户——绑定完手机号;
- 会员——付费用户,拥有特殊权限(阅读、下载);
- 管理员——辅助站长做内容管理;
- 站长——权限最高的用户角色;
2. 信息结构
主要信息有:
- 用户——模型名称 User,付费阅读为“用户核心”产品,除花卉数据外所有内容都围绕用户来进行;
- 分类——模型名称 Category,花卉大类,例如鲜切花、塑料花、盆栽。
- 品类——模型名称 Sort,鲜切花的品类,每一个品种必须对应一个品类,品类由管理员创建;
- 花卉(品种)——模型名称 Breed,花辞典最核心数据;
- 品牌——模型名称 Brand,花卉的品牌;
- 颜色——模型名称 Color,花卉的颜色,用于编码,存在“双色”等情况;
- 色值——模型名称 ColorItem,具体描述花卉颜色,例如:红、蓝、白;
- 属性——模型名称 AttrName、AttrValue,花卉的属性,用于编码;
- 花卉图片——模型名称 Image,花图册核心数据,每一张图片必须对应一个花卉;
- 广告——模型名称 Advert,前期主要盈利点;
- 订单——模型名称 Order,会员购买订单,支持团购活动,记录会员购买;
- 团购——模型名称 Group,让用户能够进行团购;
- 下载记录——模型名称 DownloadLog,记录用户下载;
- 用户反馈——模型名称 Suggest,记录用户反馈;
- 用户图片——模型名称 UserImage,用户自己上传的图片;
- 下载次数增加记录——模型名称 TimeLog,记录用户下载次数增加的原因;
次要信息有:
- 消息通知
- 足迹
- 搜索记录
- 花卉行情
- 站点配置
3. 用例
为了减少重复,用例的顺序做了编排,排后的高权限角色适用前面角色的用例。
1. 游客
- 游客可以通过微信接口自动创建空白用户(能记录分享链接)
- 游客可以绑定手机号码,绑定之后赠送免费阅读权限
2. 正式用户
- 正式用户可以查看所有品类的列表
- 正式用户可以查看所有会员购买规则
- 正式用户可以创建会员购买订单
- 正式用户可以分享会员购买订单(拼团)
- 正式用户可以对订单进行支付
- 正式用户可以看到个人页面
- 正式用户可以查看会员权益页面、用户协议页面、续费提醒页面等站点信息
- 正式用户可以创建建议反馈
- 正式用户可以查看消息列表
- 正式用户可以分享程序吸引新用户注册并获得下载次数奖励
3. 会员
- 会员可以查看所有花卉(品种)列表
- 会员可以查看所有花卉(品种)详情(包括花卉图片)
- 会员可以查看花卉行情
- 会员可以使用搜索功能对花卉进行检索
- 会员可以查看历史搜索记录
- 会员可以查看足迹列表
- 会员在有下载次数的情况下可以下载花卉原图
4. 团购流程
用户所创建的团购类型订单总共存在五个状态:待发起、拼团中、拼团成功、已退款、发起失败
- 用户通过购买规则创建订单,状态为待发起,收到支付接口成功通知之后变为拼团中
- 其他用户可以直接对拼团中的订单进行支付,发起成功之时起24小时内有3个人同时对此订单成功支付,则视为拼团成功,否则失败退款(可配置)
实际情况比需求描述复杂的多得多
5. 花卉图片
- 花卉图片上传之后系统会进行处理,保存为三份:原图、下载图、水印缩略图
- 对花卉图片的资源进行防下载处理,无法通过本程序之外的任何客户端进行访问
实际情况比需求描述复杂的多得多得多
接口编写
整个项目完成之后总共有41个接口,使用Dingo\Api进行编写
界面展示
后台截图
小程序二维码
暂时不考虑开源,将准备把遇到的难点单独分享,祝大家学习愉快
本帖已被设为精华帖!
本帖由系统于 6年前 自动加精
高认可度评论:
难得看到如此高品质的作品分享,界面很棒 :+1:
难得看到如此高品质的作品分享,界面很棒 :+1:
厉害咯!
很强
个人觉得小程序 UI 简洁精致
全部都是一个人完成的么
厉害了
另外 手机型号 iphone 7

可惜不开源;-(
@huajuntang 。。。
能开源吗
漂亮
好赞
后台界面用的什么 UI,看着很舒心
不错!!!
做了多久?
希望你能把团购,拼团这部分的思路分享一下
@szlwl01 laravel-admin应该是这个
6666