从另一个项目Copy了完成每日任务/基本任务,领取奖励豆 的模块。先多Copy别人的,再自己创造。因为是1期,做的也比较粗糙。任务只涉及豆的累计、无消耗。
设计任务的初衷:
1、基本任务——类似于新手引导,引导用户完善自己的资料。这种任务(放在永久缓存里)只能完成一次。
2、每日任务——增加用户与各个模块的互动,提高PV、UV。每天可随机指定一定数量的任务,或全部给出。
任务设计:
展示:任务名 +3个豆 【认领任务】 【领取奖励】
当完成任务但未领取奖励:任务名 +3个豆 【已认领】 【领取奖励】
当完成任务且领取完任务,则不再任务页面显示,可在【已完成任务】页面查询今天完成并领取过奖励的任务(基本任务+每日任务)。
任务内容:
基本任务:上传头像,修改姓名、性别、简介,关注10个好友等。
每日任务:发微博,评论、转发微博,发图片,签到等。
设计思想:
每日任务——通过任务表中的uri和method字段在过滤器中控制任务的完成与否。
基本任务——因用户这辈子只能完成一次,故不用过滤器控制,暂时在每个任务完成后控制(这就得东一下、西一下,不太好控制)。
主要表:
task:任务总表,包括每日任务、基本任务。
表结构:id、name(任务名称)、uri、method、action(这三个用来配置任务的完成、过滤器配置)、pea(奖励豆数)、remark(任务说明)、status(任务有效字段)、createtime。
user_task:记录用户任务记录。
表结构:id、username、t_key(时间如1999-09-10)、task(任务id以","间隔如32,34,45)、createtime。
次要表:
task_pea_limit:防刷机制,控制用户每天、每月、每年最多能获取豆的数量。
task_pea_log:log日志,用户累计/消耗豆记录。
pea:用户豆数。
主要类:
task(任务)、tasklog(这个是分配给用户的任务,记录任务的完成与否。无表与之对应,记录到缓存中)
流程:用户进入任务页面
—从缓存(因所有用户的task均一样,是task_log不同)中取到task,再根据userId分配TaskLog(status均为0未完成状态),记录到缓存中。
—经过过滤器,若为指定的uri、method,则完成任务更新TaskLog(status置1)到缓存。
—领取已完成的任务奖励,更新TaskLog(去掉该条任务记录)缓存、更新用户已完成任务缓存、改pea表中值(积累/消耗豆)。
注:
任务TaskLog缓存周期为24点(非24个小时),而如Task因每个用户的值一样,则周期可置为一周。
只有领取完成任务后才能领取奖励。
设计任务的初衷:
1、基本任务——类似于新手引导,引导用户完善自己的资料。这种任务(放在永久缓存里)只能完成一次。
2、每日任务——增加用户与各个模块的互动,提高PV、UV。每天可随机指定一定数量的任务,或全部给出。
任务设计:
展示:任务名 +3个豆 【认领任务】 【领取奖励】
当完成任务但未领取奖励:任务名 +3个豆 【已认领】 【领取奖励】
当完成任务且领取完任务,则不再任务页面显示,可在【已完成任务】页面查询今天完成并领取过奖励的任务(基本任务+每日任务)。
任务内容:
基本任务:上传头像,修改姓名、性别、简介,关注10个好友等。
每日任务:发微博,评论、转发微博,发图片,签到等。
设计思想:
每日任务——通过任务表中的uri和method字段在过滤器中控制任务的完成与否。
基本任务——因用户这辈子只能完成一次,故不用过滤器控制,暂时在每个任务完成后控制(这就得东一下、西一下,不太好控制)。
主要表:
task:任务总表,包括每日任务、基本任务。
表结构:id、name(任务名称)、uri、method、action(这三个用来配置任务的完成、过滤器配置)、pea(奖励豆数)、remark(任务说明)、status(任务有效字段)、createtime。
user_task:记录用户任务记录。
表结构:id、username、t_key(时间如1999-09-10)、task(任务id以","间隔如32,34,45)、createtime。
次要表:
task_pea_limit:防刷机制,控制用户每天、每月、每年最多能获取豆的数量。
task_pea_log:log日志,用户累计/消耗豆记录。
pea:用户豆数。
主要类:
task(任务)、tasklog(这个是分配给用户的任务,记录任务的完成与否。无表与之对应,记录到缓存中)
流程:用户进入任务页面
—从缓存(因所有用户的task均一样,是task_log不同)中取到task,再根据userId分配TaskLog(status均为0未完成状态),记录到缓存中。
—经过过滤器,若为指定的uri、method,则完成任务更新TaskLog(status置1)到缓存。
—领取已完成的任务奖励,更新TaskLog(去掉该条任务记录)缓存、更新用户已完成任务缓存、改pea表中值(积累/消耗豆)。
注:
任务TaskLog缓存周期为24点(非24个小时),而如Task因每个用户的值一样,则周期可置为一周。
只有领取完成任务后才能领取奖励。