• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot 签到奖励实现方案的示例代码

springboot 搞代码 4年前 (2022-01-09) 30次浏览 已收录 0个评论

前言

最近在做社交业务,用户进入APP后有签到功能,签到成功后获取相应的奖励:

项目状况:前期尝试业务阶段;

特点:

  • 快速实现(不需要做太重,满足初期推广运营即可)
  • 快速投入市场去运营

用户签到:

  • 用户在每次启动时查询签到记录(规则:连续7日签到从0开始,签到过程中有断签从0开始)
  • 如果今日未签到则提示用户可以进行签到
  • 用户签到获取相应的奖励

提到签到,脑海中首先浮现特点:

  • 需要记录每位用户每天的签到情况
  • 查询时根据规则进行签到记录情况

需求&流程设计&技术实现方案

需求原型图

查询签到记录

进行签到

技术实现方案

  • SpringBoot
  • MySQL

数据库表结构

签到记录最新表

CREATE TABLE `zh_sign_in` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
 `customer_id` varchar(32) DEFAULT NULL COMMENT '签到用户编码',
 `sign_in_date` datetime DEFAULT NULL COMMENT '签到日期(单位精确到日)',
 `reward_money` int(11) DEFAULT NULL COMMENT '本次签到奖励金币个数',
 `continuite_day` int(2) DEFAULT '1' COMMENT '连续签到天数(A:7天内如果有断签从0开始 B:7天签满从0开始)',
 `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
 `param1` int(2) DEFAULT N<p style="color:transparent">本文来源gao!daima.com搞$代!码网</p>ULL COMMENT '预留字段1',
 `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
 `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
 `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
 `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
 `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
 PRIMARY KEY (`id`) USING BTREE,
 UNIQUE KEY `uk_zh_sign_in_buno` (`bu_no`),
 UNIQUE KEY `uk_zh_sign_in_cid_signindate` (`customer_id`,`sign_in_date`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户签到表';

签到记录历史表

CREATE TABLE `zh_sign_in_hist` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',
 `customer_id` varchar(32) DEFAULT NULL COMMENT '签到用户编码',
 `sign_in_date` datetime NULL DEFAULT NULL COMMENT '签到日期(单位精确到日)',
 `reward_money` int(11) DEFAULT NULL COMMENT '本次签到奖励金币个数',
 `continuite_day` int(2) DEFAULT '1' COMMENT '连续签到天数(A:7天内如果有断签从0开始 B:7天签满从0开始)',
 `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
 `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
 `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
 `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
 `param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',
 `param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',
 `param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',
 PRIMARY KEY (`id`) USING BTREE,
 UNIQUE KEY `uk_zh_sign_in_hist_cid_signindate` (`customer_id`,`sign_in_date`) USING BTREE,
 KEY `key_zh_sign_in_hist_buno` (`bu_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户签到历史表';

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot 签到奖励实现方案的示例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址