任务模板表:
名称
目标数量
完成数量
任务类型(天任务,周任务,月任务)
任务状态(上架,下架)
发放方式(单次发放,完成发放)
奖励值
开始时间
结果时间
更新时间
创建时间
用户任务表:
任务编号
用户编号
目标数量
完成数量
领取数量
发放方式(单次发放,完成发放)
奖励值
已领取奖励值(合计)
任务类型(天任务,周任务,月任务)
任务状态(未完成,已完成,部分完成,未领取,已领取)
更新时间
创建时间
用户任务明细表:
用户任务表ID
任务编号
用户编号
奖励值
领取状态(未领取,已领取)
创建时间
实现逻辑:
查询任务列表:
前端入参:用户编号
后端查询SQL:根据用户编号和时间(天任务传当天,周任务传本周,月任务传本月),任务模板表与用户任务表联表查询,
用户任务表有数据则是有做任务的,没有数据说明没做任务,返回前端是未完成
插入任务数据:
用户任务表:每天一个任务一条数据,任务目标数据是多个的话,则是更新完成数据
任务明细表:每完成一条任务都插入数据
领取奖励:更新用户任务表任务状态,并发放相应奖励,增加用户奖励及添加奖励流水
注意事项:
任务切记不要用定时跑批方式整理用户任务表(重置数量和状态),用户量大会导致更新过慢,时效问题,有些用户刚过0点就开始做任务,如果定时任务没跑完,则导致部分用户无法做任务,定时任务跑失败也会导致用户无法再做任务,正确方式是实时查询用户任务表,每完成一次任务都是插入数据