123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace App\Jobs;
- use Illuminate\Bus\Queueable;
- use Illuminate\Contracts\Queue\ShouldQueue;
- use Illuminate\Foundation\Bus\Dispatchable;
- use Illuminate\Queue\InteractsWithQueue;
- use Illuminate\Queue\SerializesModels;
- use Illuminate\Support\Facades\Redis;
- use Illuminate\Support\Facades\Log;
- use \GatewayClient\Gateway;
- use Illuminate\Support\Facades\DB;
- class GrabgiftJob implements ShouldQueue
- {
- use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
- protected $params;
- /**
- * Create a new job instance.
- *
- * @return void
- */
- public function __construct($params)
- {
- $this->params = $params;
- Log::info(date('Y-m-d H:i:d').':'.json_encode($params));
- }
- /**
- * Execute the job.
- *
- * @return void
- */
- public function handle()
- {
- $grab_id = $this->params['grab_id'];
- $new_grab_id = $this->params['new_grab_id'];
- $seat_number = $this->params['seat_number'];
- $price = $this->params['price'];
- $winer_uid = $this->params['winer_uid'];
- $redis = Redis::connection();
- //开奖了,旧的一期结束了
- $redis->del('kge_grabgift_num_'.$grab_id);
- $redis->del('kge_grabgift_seatnum_'.$grab_id);
- $redis->del('kge_grabgift_data_'.$grab_id);
- $redis->del('kge_grabgift_'.$grab_id);
- $rs3 = DB::table('hx_grabgift')->where('id',$grab_id)->update(['status'=>1,'grabtime'=>time()]);//更新开奖时间
- $rs2 = DB::table('hx_grabgift_log')->where('grab_id',$grab_id)->where('user_id',$winer_uid)->update(['grabstatus'=>1]);//中奖者
- //发奖
- $grab_info = DB::table('hx_grabgift')->where('id',$grab_id)->first();
- $gift_info = DB::table('hx_gift')->where('id',$grab_info->gift_id)->first();
- if(!empty($gift_info)){
- $giftdata = [
- 'user_id' => $winer_uid,
- 'gift_id' => $grab_info->gift_id,
- 'name' => $gift_info->name,
- 'image' => $gift_info->image,
- 'gif_image' => $gift_info->special,
- 'value' => $gift_info->value,
- 'number' => 1,
- 'get_way' => 1,
- 'createtime' => time(),
- ];
- $rs4 = DB::table('hx_gift_back')->insertGetId($giftdata);
- }
- //新的一期开始了
- $redis->set('kge_grabgift_'.$new_grab_id,$seat_number);
- $redis->set('kge_grabgift_lastgrabid',$new_grab_id);
- $redis->set('kge_grabgift_lock',0);
- $data = [
- 'grab_id' => $new_grab_id,
- 'seat_number' => $seat_number,
- 'price' => $price,
- 'kge_grabgift_lock' => 0,
- ];
- $this->sendGrabgift('startnew',$data);
- }
- /**
- * 房间中全民抢礼物,全服通告
- */
- public function sendGrabgift($type,$data)
- {
- $messageData = [
- 'type' => $type,
- 'data' => $data
- ];
- $Gateway = new Gateway();
- $Gateway::$registerAddress = '127.0.0.1:2345';
- $Gateway::sendToAll(json_encode($messageData));
- }
- }
|