tasks(任务表):
id name desc icon cate type num reward.....
id 主键ID
name 任务名称
desc 任务描述
icon 任务图标
cate 任务分类 比如官网、线上、游戏
type 任务类型 比如新手、每日
num 任务次数
reward 积分奖励数值
task_notes(任务日志):
id uid tid progress time...
id 主键ID
uid 用户ID
tid 任务ID
progress 完成进度
date 完成时间
任务为主表,后台可以动态添加和修改任务
任务日志表,用户完成一次向数据查询一条数据,需要注意如果num>1那么,插入了日志记录在完成直接做更新,更新progress字段
例如任务(插入然后做更新 更新progress字段):
id uid tid progress time
1 1 1 2 2020-09-11 11:11:11
新手任务:
num=1一次性任务 做完一次直接奖励 是否完成直接查询根据uid tid查询记录即可 存在为完成
num>=1 证明是新手多次任务(也就是该任务需要完成多次才为完成) 那么就做查询更新progress字段操作直到 task_notes.progress >= tasks.num 即为完成
每日任务:
根据 uid tid date 去查询 task_notes 表,存在记录证明今日做了该任务,是否完成 task_notes.progress >= tasks.num
API接口返回
{
"id": 1,
"name": "分享任务",
"desc": "完成一次奖励1积分",
"cate": "官网",
"num": 20,
"type": "day",/*day-每日任务 novice-新手任务*/
"reward": 1,
"note": {
"id": 1,
"tid": 1,
"uid": 1,
"progress": 20,/*progress>=num 前端根据这个判断是否完成,如果note不存在直接返回null前端也可以判断*/
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…