ActiveShare.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php namespace App\Http\Controllers\Api\Riddle;
  2. use App\Http\Controllers\Api\Api;
  3. use App\Models\Riddle\Active;
  4. use App\Models\Riddle\ActiveShare as Model;
  5. /**
  6. * 活动分享记录
  7. *
  8. * @author 刘相欣
  9. *
  10. * */
  11. class ActiveShare extends Api{
  12. /**
  13. * 获取题目 /api/riddle_active_share/add
  14. *
  15. * */
  16. public function add(Model $Model,Active $Active){
  17. // 接口验签
  18. // $this->verify_sign();
  19. // 检查登录
  20. $uid = $this->checkLogin();
  21. // 获取参数
  22. $activeId = request('active_id',0);
  23. // 获取客户城市的数据
  24. $data = $Active->getOne($activeId);
  25. // 如果存在的话
  26. if( !$data ) return json_send(['code'=>'error','msg'=>'活动已下线或不存在','data'=>'']);
  27. // 获取答题次数
  28. $shareTotal = $Model->query()->where([['active_id','=',$activeId],['custom_uid','=',$uid]])->count();
  29. // 计算剩余分享次数
  30. $data['share_last'] = ($data['join_share'] - $shareTotal <= 0 ? 0 : $data['join_share'] - $shareTotal);
  31. // 如果次数不够
  32. if( $data['share_last'] <= 0 ) return json_send(['code'=>'error','msg'=>'您已经没有分享次数了','data'=>'']);
  33. // 记录分享
  34. $id = $Model->add(['active_id'=>$activeId,'custom_uid'=>$uid]);
  35. // 分享成功
  36. if( !$id ) return json_send(['code'=>'error','msg'=>'记录失败','data'=>'']);
  37. // 返回结果
  38. return json_send(['code'=>'success','msg'=>'记录成功','data'=>['id'=>$id]]);
  39. }
  40. }