需求
用户每日点击签到,获得x积分;用户连续签到y天后额外获得z积分。
x,y,z分别由后台配置。
需要记录用户今天是否已签到、当前连续签到数、本月签到列表数据供前端展示
表结构
CREATE TABLE `sign_in_logs` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
`year` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '年',
`month` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月',
`date_list` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '签到日期列表(按位储存)',
`count` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '累计连续签到的天数,到一定数量后清零',
`last_date` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '上一次签到的日期',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `sign_in_logs_user_id_index` (`user_id`),
KEY `sign_in_logs_year_month_index` (`year`,`month`),
KEY `sign_in_logs_date_list_index` (`date_list`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- 阅读剩余部分 -