门店会员管理软件之开卡/扣卡功能

更新日期: 2022-11-16 阅读次数: 1263 字数: 440 分类: 工具

需求背景

  • 一个客户可以办多张卡
  • 一张卡可以关联多个服务
  • 卡与服务的关联表,有的包含使用次数。(卡分时卡和次卡,次卡包含次数。时卡指,年卡/季卡/月卡等。)

数据存储

  • 卡项关联至客户。新建表 client_card, 客户可能开多张卡,一条记录代表一张卡
  • 卡项信息、服务信息 copy 一份存储在开卡信息中,防止卡项及服务信息修改。service 备份在关联表中;开卡时间,有效期,更新时间

字段设计

  • 复制卡项的字段到 client_card 关联表。最好同时保存原卡项的 ID,方便统计。
  • 因为一张卡可能包含多项服务,所以把服务字段 json 序列化之后,存储到 client_card 关联表的一个字段中,也保留服务 ID
  • 序列化字段,需要包含剩余次数。因为扣卡的频率并不高,所以这里直接在 go 逻辑层实现都可以。
  • 需新增开卡时间、卡过期时间。这个得用 mysql date 类型,对应的 golang 使用 string 就可以?得测试一下为空的情况。

查询会员的开卡信息

提交会员 ID,查询开卡信息。

会员 model preload 关联表 struct 即可。

扣卡

提交会员 ID,卡 ID,服务 ID,服务次数(可能多种消费),进行扣减。

这里需要确认,是否需要一次扣多张卡,多种服务的情况。 或者简化一点

[卡 ID,服务 ID,服务次数]

即便是时卡,也需要提交,为了保存消费日志。

消费日志需要新增一种类型,扣卡。

tags: 门店会员管理软件

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式