主要兩張表
用戶積分表
| 用戶ID | 可用 | 已用 | 更新日期 |
| 1 | 1000 | 5000 | 2019-12-11 |
積分日志表
| 自增ID | 用戶ID | 積分金額 | 是否過期 | 創建日期 |
| 1 | 1 | 10000 | 1 | 2018-12-10 |
一 . 加積分
1.增加用戶積分表的可用;
2.寫日志
二 . 減積分
1.使用積分是 +已用 -可用;
三 . 查積分
1.每次從用戶積分表來取當前可用時判斷下更新日期是否是當天, 當天直接返回
2.否則查更新日期距離當天多少天,設為D
3.取最新過期的過期時間往前推D天,取該段時間內獲取的過期積分總額,設為E
4.如果沒有過期的,直接將更新日期設為當天同時返回可用
5.有過期的, 已用 = max(0, 已用 - E), 可用 = max(可用 - max(0, E - 已用 ), 0),更新日期=當天,落地DB后返回計算后的可用
暫時可滿足我們的需求, 有什么問題一起探討
