java 实现签到功能及数据库表设计

前言:公司积分商城增加签到功能,如下:
            每次签到+1分,连续签到7天,第7天多+1分。第8天+1,连续签到7天后,再多+1分。
            若每个用户每天签到数据直接累计,数据库数据将成倍增加,故每个用户只维持一条签到数据。判断是否是连续签到的话,根据continue_sign,连续签到最大值为6,第七天重置为0
                根据userId查询,
                SELECT * FROM t_sign WHERE user_id='1111';
                若用户第一次签到,直接插入数据,
                INSERT  INTO t_sign(id,user_id,mark,create_time,update_time,continue_sign,COUNT) VALUES ('1','111','生日快乐','2018-09-10 10:20:41','2018-09-10 10:20:41',1,1);
                若非第一次签到,更新签到时间(update_time)                
                UPDATE t_sign SET update_time='2018-09-10 10:20:41' where id='111';
                    若不是第一次签到,还需判断签到时间是否间隔大于一天
                        若是连续签到,判断是否为连续七天签到,且将连续签到置为0
                        若不是连续签到,更新签到时间,将连续签到+1

 

public class Sign implements Serializable {
    private static final long serialVersionUID = 1L;
    //主键
    private String id;
    //用户id
    private String userId;
    //签到信息
    private String mark;
    //总签到数
    private int count;
    //七天连续签到
    private int continueSign;
    //创建时间
    private Date createTime;
    //更新时间
    private Date updateTime;
    //set/get方法
    ........
}

你可能感兴趣的:(java,签到,积分)