`要做上面的这些功能,而且有些任务是每天都要可以做的,没有思路..有没有大神指导一下思路
建个用户任务表,其中1个字段date,存是当天时间Ymd
例如:
task
id | task_name | need_number |
---|---|---|
1 | 每日签到 | 1 |
2 | 观看视频 | 30 |
user_task
user_id | date | task_id | finished_number |
---|---|---|---|
1 | 20190620 | 1 | 1 |
1 | 20190620 | 2 | 2 |
最近也做到过这种场景,给个思路吧
楼上那位相当于手把手教了...
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
tasks[任务表]
task_logs[任务日志表]
任务表 字段描述:
id 主键ID
name 任务名称
key 任务触发的唯一标示 针对不通的业务进行触发,比如签到 key 为 sign:in 比如分享视频key为share:video
num 任务可完成次数
type 任务类型 once 比如一次任务也就是任务只能完成一次那么比如填写邀请码 day-每日任务 每天可完成的 比如签到 每日分享
reward 完成任务每次奖励数值
status 任务状态 开启或者关闭 比如1-关闭 0-默认开启
任务日志表 字段描述:
id 主键id
user_id 用户id
task_id 任务id
progress 完成进度 针对不通任务进行累加 比如每日观看视频 根据时间纬度查询出当日用户是否完成过该任务 如存在记录在该记录做更新操作
reward 已获取的奖励 如每日任务该字段累加记录
任务如何触发
如签到任务你可以单独出一个签到接口或者聚合一个接口包含比如:分享视频 观看视频都在次接口触发
如果需要在某个业务中触发那么需要单独处理 比如填写邀请码后需要触发一个填写邀请码任务
大致思路你你可以封装的一个公用方法 如果任务触发 如下是伪码: