|
@@ -61,11 +61,36 @@ class Player extends Api
|
|
|
}
|
|
|
|
|
|
//登录用户票数的检查
|
|
|
- $check_rs = $this->record_check($this->auth->id,$vote);
|
|
|
- if($check_rs['status'] === false){
|
|
|
- $this->error($check_rs['msg'],null,$check_rs['code']);//给不同的code,0报错,2跳到答题
|
|
|
+ $user_id = $this->auth->id;
|
|
|
+ //今天,投了几票
|
|
|
+ $today_record = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$user_id)->get();
|
|
|
+ //今天,用户答对的次数,也就是答题获得的票数
|
|
|
+ $question_vote = RedisUtil::getInstance(RedisKeyEnum::EAXM_RIGHT.date('Y-m-d').':'.$user_id)->get();
|
|
|
+ //今天,用户答题的次数
|
|
|
+ $today_question = RedisUtil::getInstance(RedisKeyEnum::EAXM_TIMES.date('Y-m-d').':'.$user_id)->get();
|
|
|
+ //今天,免费的的票
|
|
|
+ $gift_votes = config('site.gift_votes_user_eday');
|
|
|
+ //今天,免费的答题次数
|
|
|
+ $exam_times = config('site.exam_times_user_eday');
|
|
|
+
|
|
|
+ //免费票 + 答对次数 - 已投票次数 < vote
|
|
|
+ $times = $gift_votes + $question_vote - $today_record;
|
|
|
+ if($times < 0){$times = 0;}
|
|
|
+
|
|
|
+ //票数不够
|
|
|
+ if($times < $vote){
|
|
|
+ $msg = '投票失败,您今日剩余投票次数: '.$times.'次';
|
|
|
+
|
|
|
+ //剩余投票次数,剩余答题次数
|
|
|
+ $result = [
|
|
|
+ 'uservote' => $times,
|
|
|
+ 'userquestion' => $exam_times - $today_question,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $this->success($msg,$result);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
Db::startTrans();
|
|
|
|
|
|
//检查选手
|
|
@@ -103,74 +128,27 @@ class Player extends Api
|
|
|
Db::commit();
|
|
|
|
|
|
//今日投票次数,自增一次
|
|
|
- RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$this->auth->id)->incrby_expire($vote,86400);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- $this->success('投票成功');
|
|
|
- }
|
|
|
-
|
|
|
- //投票检查
|
|
|
- private function record_check($user_id,$vote){
|
|
|
- $result = array(
|
|
|
- 'status'=>true,
|
|
|
- 'code'=>1,
|
|
|
- 'msg'=>'',
|
|
|
- 'uservote' => 0,
|
|
|
- );
|
|
|
+ $today_record = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$this->auth->id)->incrby_expire($vote,86400);
|
|
|
|
|
|
|
|
|
- //今天,投了几票
|
|
|
-
|
|
|
- $today_record = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$user_id)->get();
|
|
|
- //今天,免费的的票
|
|
|
- $gift_votes = config('site.gift_votes_user_eday');
|
|
|
- //今天,免费的答题次数
|
|
|
- $exam_times = config('site.exam_times_user_eday');
|
|
|
-
|
|
|
- //投票次数 >= 所有的来源
|
|
|
- if($today_record >= $gift_votes + $exam_times){
|
|
|
- $result['status'] = false;
|
|
|
- $result['code'] = 0;
|
|
|
- $result['msg'] = '投票失败,您今日剩余0票,明天再来吧';
|
|
|
- $result['uservote'] = 0;
|
|
|
- return $result;
|
|
|
- }
|
|
|
-
|
|
|
- //今天,用户答对的次数,也就是答题获得的票数
|
|
|
-
|
|
|
- $question_vote = RedisUtil::getInstance(RedisKeyEnum::EAXM_RIGHT.date('Y-m-d').':'.$user_id)->get();
|
|
|
-
|
|
|
- //免费票 + 答对次数 - 已投票次数 < vote
|
|
|
+ //免费票 + 答对次数 - 已投票次数
|
|
|
$times = $gift_votes + $question_vote - $today_record;
|
|
|
if($times < 0){$times = 0;}
|
|
|
- if($times < $vote){
|
|
|
- $result['status'] = false;
|
|
|
- $result['code'] = 0;
|
|
|
- $result['msg'] = '投票失败,您今日剩余: '.$times.'票';
|
|
|
- $result['uservote'] = $times;
|
|
|
|
|
|
- //今天,用户答题的次数
|
|
|
+ //
|
|
|
+ $msg = '投票成功,您今日剩余投票次数: '.$times.'次';
|
|
|
|
|
|
- $today_question = RedisUtil::getInstance(RedisKeyEnum::EAXM_TIMES.date('Y-m-d').':'.$user_id)->get();
|
|
|
-
|
|
|
- //还有答题机会
|
|
|
- if($exam_times > $today_question){
|
|
|
- $result['status'] = false;
|
|
|
- $result['code'] = 2;
|
|
|
- $result['msg'] = '投票失败,您今日剩余: '.$times.'票,可通过答题增加票数';
|
|
|
- $result['uservote'] = $times;
|
|
|
- }
|
|
|
+ //剩余投票次数,剩余答题次数
|
|
|
+ $result = [
|
|
|
+ 'uservote' => $times,
|
|
|
+ 'userquestion' => $exam_times - $today_question,
|
|
|
+ ];
|
|
|
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ $this->success($msg,$result);
|
|
|
|
|
|
- //剩余票数
|
|
|
- $result['uservote'] = $times;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- return $result;
|
|
|
- }
|
|
|
|
|
|
|
|
|
|