任务模块反思

本文详细介绍了任务系统的设计与实现过程,包括任务类型、任务流程、任务管理、奖励机制及后台逻辑,旨在提升用户互动与活跃度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从另一个项目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因每个用户的值一样,则周期可置为一周。
只有领取完成任务后才能领取奖励。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值