|
@@ -0,0 +1,126 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\api\controller;
|
|
|
+
|
|
|
+use app\common\controller\Api;
|
|
|
+use app\common\library\Tenim;
|
|
|
+use think\Db;
|
|
|
+/**
|
|
|
+ * 活动
|
|
|
+ */
|
|
|
+class Active extends Api
|
|
|
+{
|
|
|
+
|
|
|
+ // 无需登录的接口,*表示全部
|
|
|
+ protected $noNeedLogin = [''];
|
|
|
+ // 无需鉴权的接口,*表示全部
|
|
|
+ protected $noNeedRight = ['*'];
|
|
|
+
|
|
|
+ //首页
|
|
|
+ public function index(){
|
|
|
+ $result = [];
|
|
|
+ //开奖时间
|
|
|
+ $result['kaijiang_time'] = date('H:i',strtotime(config('site.active_kaijiang_time')));
|
|
|
+
|
|
|
+ //奖池金额
|
|
|
+ $result['jiangchi'] = $this->jiangchi();
|
|
|
+
|
|
|
+ //我今天已经领取的气泡,数字
|
|
|
+ $result['my_number'] = $this->get_my_number();
|
|
|
+
|
|
|
+ //我今天的应得气泡数量,扣除已经领掉的,最大4个
|
|
|
+ $qipao_count = $this->get_qipao_count() - count($result['my_number']);
|
|
|
+ $qipao_count = $qipao_count > 4 ? 4 : $qipao_count ;
|
|
|
+ $result['qipao_count'] = $qipao_count;
|
|
|
+
|
|
|
+ $this->success('success',$result);
|
|
|
+ }
|
|
|
+
|
|
|
+ //收集一个气泡
|
|
|
+ public function open_qipao(){
|
|
|
+ //我今天的应得气泡数量
|
|
|
+ $qipao_count = $this->get_qipao_count();
|
|
|
+
|
|
|
+ //我今天打开的气泡数量
|
|
|
+ $my_count = Db::name('active_user_number')->whereTime('createtime','today')->where('user_id',$this->auth->id)->count();
|
|
|
+
|
|
|
+ if($my_count + 1 > $qipao_count){
|
|
|
+ $this->error('可收集气泡不足');
|
|
|
+ }
|
|
|
+
|
|
|
+ $week = [
|
|
|
+ 1 => 4,
|
|
|
+ 2 => 4,
|
|
|
+ 3 => 4,
|
|
|
+ 4 => 4,
|
|
|
+ 5 => 4,
|
|
|
+ 6 => 4,
|
|
|
+ 7 => 10,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $today_max = $week[date('N')];
|
|
|
+ if($my_count + 1 > $today_max){
|
|
|
+ $this->error('今天最多能收集'.$today_max.'个气泡,已到上限');
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'user_id' => $this->auth->id,
|
|
|
+ 'number' => $this->get_rand_number(),
|
|
|
+ 'createtime' => time(),
|
|
|
+ ];
|
|
|
+ Db::name('active_user_number')->insertGetId($data);
|
|
|
+
|
|
|
+ $this->success('已收集',$this->get_my_number());
|
|
|
+ }
|
|
|
+
|
|
|
+ //今日开奖结果
|
|
|
+ public function active_result(){}
|
|
|
+
|
|
|
+ //我今天已经领取的气泡,数字
|
|
|
+ private function get_my_number(){
|
|
|
+ $list = Db::name('active_user_number')->whereTime('createtime','today')->where('user_id',$this->auth->id)->order('id asc')->select();
|
|
|
+ return $list;
|
|
|
+ }
|
|
|
+
|
|
|
+ //我今天的应得气泡数量
|
|
|
+ private function get_qipao_count(){
|
|
|
+ $xiaofei_log_type = '11,12,13,53,59,71,81';//消费金币的log
|
|
|
+
|
|
|
+ $xiaofei_total = Db::name('user_gold_log')->whereTime('createtime','today')->where('user_id',$this->auth->id)->where('log_type','IN',$xiaofei_log_type)
|
|
|
+ ->sum('change_value');
|
|
|
+ $xiaofei_total = abs($xiaofei_total);
|
|
|
+
|
|
|
+ $qipao_value = config('site.active_qipao_value'); //气泡价格
|
|
|
+ if($qipao_value <= 0){
|
|
|
+ return 0; //0不能做除数
|
|
|
+ }
|
|
|
+ $qipao = bcdiv($xiaofei_total,$qipao_value); //金币没有小数点
|
|
|
+
|
|
|
+ return intval($qipao); //退一法
|
|
|
+ }
|
|
|
+
|
|
|
+ //随机一个中奖号码
|
|
|
+ private function get_rand_number(){
|
|
|
+ $min = config('site.active_number_min');
|
|
|
+ $max = config('site.active_number_max');
|
|
|
+
|
|
|
+ return rand($min,$max);
|
|
|
+ }
|
|
|
+
|
|
|
+ //奖池金额
|
|
|
+ private function jiangchi(){
|
|
|
+ $xiaofei_log_type = '11,12,13,53,59,71,81';//消费金币的log
|
|
|
+
|
|
|
+ //奖池为昨日平台消费总金额百分比
|
|
|
+ $starttime = strtotime(date('Y-m-d')) - 86400;
|
|
|
+ $endtime = $starttime + 86399;
|
|
|
+ $xiaofei_total = Db::name('user_gold_log')->where('createtime','BETWEEN',[$starttime,$endtime])->where('log_type','IN',$xiaofei_log_type)->sum('change_value');
|
|
|
+ $xiaofei_total = abs($xiaofei_total);
|
|
|
+ $jiangchi_bili = config('site.active_jiangchi_bili');
|
|
|
+ $jiangchi = bcdiv(bcmul($xiaofei_total,$jiangchi_bili,0),100,0); //金币没有小数点
|
|
|
+
|
|
|
+ return $jiangchi;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|