门店会员卡过期时间管理

更新日期: 2022-11-23 阅读次数: 50 字数: 501 分类: 工具

会员卡状态

开卡时,设置是否激活字段

status 是否更合适:

  • 0 未激活
  • 1 已激活
  • 2 已过期
  • 3 已注销
  • 4 无剩余次数

卡的有效期类型

  • ExpireType int // 有效期类型。1:永久有效;2:购买后 N 天内有效;3:使用后 N 天内有效;4:指定时间段
  • ExpireValue string // 根据有效期不同的类型,存储不同的值。2/3 存储数字;4 存储时间段,逗号分隔,例如:2022-11-04,2022-12-04

开卡时,初始化会员卡状态字段

逐个类型判断,设置有效期,及 status 状态字段。

永久有效

  • 开卡时 status 为已激活
  • 过期时间设置为 "9999-12-31 23:59:59",即 mysql datetime 字段类型的最大值。(raw sql 更简单)

购买后 N 天内有效

  • 开卡时 status 为已激活
  • 过期时间设置为当前时间 + N 天.(raw sql 更简单)
  • 拉取卡信息时,判断是否过期,是否无剩余次数

使用后 N 天内有效

  • 开卡时 status 为已激活 (这个不可能是未激活,否则没法用第一次。。。);过期时间设置为 "9999-12-31 23:59:59",因为只要没用,就是一直可以用。。。
  • 第一次扣卡时,修正过期时间,过期时间设置为当前时间 + N 天.(raw sql 更简单)
  • 拉取卡信息时,判断是否过期,是否无剩余次数

指定时间段

  • 开卡时 status 是否激活,取决于当前时间是否大于起始时间
  • 过期时间设置为结束时间
  • 每次拉取卡信息时,若 status 为未激活,要判断当前时间是否大于起始时间,并设置 status 值;同时判断是否过期,是否无剩余次数

TODO

  • [X] 新增会员卡状态字段
  • [X] 开卡时,初始化会员卡状态字段
  • [X] 拉取卡信息时,计算状态
  • 扣卡时的逻辑

tags: 门店会员管理软件

爱评论不评论