Usertask.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\common\model;
  3. use think\Db;
  4. /**
  5. * 用户任务
  6. */
  7. class Usertask
  8. {
  9. /**
  10. * 一次性任务
  11. * @return boolen
  12. */
  13. public function oncetask($uid,$taskkey)
  14. {
  15. //初始化
  16. $return_rs = array(
  17. 'status'=>false,
  18. 'msg'=>'',
  19. 'log_table' => '',
  20. 'log_id' => '',
  21. );
  22. //检查
  23. $map = [
  24. 'user_id' => $uid,
  25. 'taskkey' => $taskkey,
  26. ];
  27. $check = Db::name('user_task_once_log')->where($map)->find();
  28. //只能执行一次
  29. if($check){
  30. $return_rs['status'] = true;
  31. return $return_rs;
  32. }
  33. //发放
  34. $gift_gold = config('site.'.$taskkey.'');
  35. if($gift_gold > 0){
  36. $map['createtime'] = time();
  37. $map['remark'] = Db::name('config')->where('name',$taskkey)->value('title');
  38. $log_id = Db::name('user_task_once_log')->insertGetId($map);
  39. if(!$log_id){
  40. $return_rs['msg'] = '赠送金币失败';
  41. return $return_rs;
  42. }
  43. $gift_rs = model('wallet')->lockChangeAccountRemain($uid,'gold',$gift_gold,61,$map['remark'],'user_task_once_log',$log_id);
  44. //返回结构和wallet一样,直接返回
  45. return $gift_rs;
  46. }else{
  47. $return_rs['status'] = true;
  48. return $return_rs;
  49. }
  50. }
  51. }