Java 实现简单的签到领金币功能

您所在的位置:网站首页 京东双十一签到断签一天怎么办啊 Java 实现简单的签到领金币功能

Java 实现简单的签到领金币功能

2024-07-13 19:13| 来源: 网络整理| 查看: 265

Java实现简单的签到领金币功能 简介

现在很多APP上都会有签到的功能,签到领金币或者领积分等等。最近也正好遇到了一个这样的业务,并且规则是连续签到每天的金币不一样,要是断了,再签到的话重新从第一天金币数开始。并且有个补签功能,一星期只能补签一次,假如中断了两天,补了第二个补签那天,而后面是有连续签到记录的,则金币为一周期内第一天的金币数补上,如果补了中断两天里的第一天,那就按一周期里那是第几天的金币加。

思路

既然这样,解决方案就需要两张表,一张是数据字典表,告诉我七天里每天的金币数是多少;另一张是用户签到表;而前端传参的话需要两个参数,一个是补签天数,如果是补签就传补签当天的时间参数;另一个参数是当前周期七天里的第几天。然后每点击签到一次,在签到表里新增一条记录,并且保存状态是否补签,根据传参的天数用代码判断前一天是否有签到记录。

如果前一天有签到记录,计算出前面签了几天,那今天就是该领这个天数金币;如果前面没有签到记录,那就是第一天的金币数,就正好符合了需求:正常签到,根据天数领取相应金币;补签规则如果12345五天,23中断了,145签到了,假设补签了3,那就领取1的金币数,假设补签了2,因1已经签过,领取2的金币数。

代码

有了以上的解决思路,那就上代码,先看数据字典表 数据字典 顺序依次是:主键,金币数,描述,用来查询条件的value,根据这个value获取金币数

签到表就不贴图了,设计公司业务,大致的字段就是:主键,签到用户,签到时间,签到状态(是否补签)

上重点,贴代码 在这里插入图片描述 解说一下,代码很简单,这是个Service方法,再Controller层已经做了今天是否签到过的判断,如果签到过进不来这个方法的。

这个定义了一个status,用来判断前端是否传入了时间参数,上面说到,要是传了就是补签,补签状态是1,正常是2,正常的话取当天时间存入签到表,不然就是传入的时间存入。重点在于循环,根据前端传入的周期里的某一天作为循环次数,再根据传入的时间或者当前时间以及用户ID去签到表里查记录,并且是查询过一次之后时间设置为前一天,连续签到数 + 1来计算出前面签到过多少天。这样的话天数已经拿到了,就可以把天数传入数据字典表里value进行查询金币,然后更新用户账户金币数。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3