任务活动实现逻辑(领取任务,完成任务)

本文介绍了任务活动的实现逻辑,包括查询任务列表、插入任务数据和领取奖励的流程。查询逻辑基于用户编号和时间范围从任务模板表与用户任务表进行联表查询。在完成任务时,更新用户任务表的状态并发放奖励。特别强调了不应使用定时任务来批量处理用户任务表,以防时效性和数据一致性问题,建议采用实时查询和更新的方式。
摘要由CSDN通过智能技术生成

任务模板表:
名称
目标数量
完成数量
任务类型(天任务,周任务,月任务)
任务状态(上架,下架)
发放方式(单次发放,完成发放)
奖励值
开始时间
结果时间
更新时间
创建时间

用户任务表:
任务编号
用户编号
目标数量
完成数量
领取数量
发放方式(单次发放,完成发放)
奖励值
已领取奖励值(合计)
任务类型(天任务,周任务,月任务)
任务状态(未完成,已完成,部分完成,未领取,已领取)
更新时间
创建时间

用户任务明细表:
用户任务表ID
任务编号
用户编号
奖励值
领取状态(未领取,已领取)
创建时间

实现逻辑:
  查询任务列表:
      前端入参:用户编号
      后端查询SQL:根据用户编号和时间(天任务传当天,周任务传本周,月任务传本月),任务模板表与用户任务表联表查询,
      用户任务表有数据则是有做任务的,没有数据说明没做任务,返回前端是未完成
  插入任务数据:
    用户任务表:每天一个任务一条数据,任务目标数据是多个的话,则是更新完成数据
    任务明细表:每完成一条任务都插入数据
  领取奖励:更新用户任务表任务状态,并发放相应奖励,增加用户奖励及添加奖励流水

注意事项:
  任务切记不要用定时跑批方式整理用户任务表(重置数量和状态),用户量大会导致更新过慢,时效问题,有些用户刚过0点就开始做任务,如果定时任务没跑完,则导致部分用户无法做任务,定时任务跑失败也会导致用户无法再做任务,正确方式是实时查询用户任务表,每完成一次任务都是插入数据
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xx3020

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值