| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Redis;
- class GiftPackController extends Controller
- {
- public $rooms = [
- "14578426"=> "战斗吧", //粉丝牌:"战姬众",
- "23225527"=> "Nebula-Beat", //"NB人",
- "23303212"=> "唐九夏", //"夏韭菜",
- "23221095"=> "吉诺儿", //"波波派",
- "24087754"=> "罗兹", //罗兹Blazing
- ];
- //
- // 礼包列表接口
- public function list(Request $request) {
- //
- $objUser = unserialize($request->get("account"));
- // 获取所有的礼包
- $objPacks = \App\Models\GiftPack::with("attire")->orderBy("sort","asc")->get()->toArray();
- // 获取用户的兑换情况
- $objPackRecords = \App\Models\PackRecord::where("account_id", $objUser->id)->pluck("gift_pack_id")->toArray();
- //
- $data = [];
- foreach($objPacks as $v) {
- $data[] = [
- 'id' => $v['id'],
- 'name' => $v['name'],
- 'img' => \Storage::disk('cosv5')->url($v['img']),
- 'info' => '内含'.$v['coupon'].'张礼券+1个应援装扮',
- 'exchage_info' => "请前往<span style='color:#FF229F;'>".$this->rooms[$v["room_id"]]."直播间</span>,佩戴兑换礼包对应<span style='color:#FF229F;'>粉丝牌</span>,发送<span style='color:#FF229F;'>任意弹幕</span>,如账号身份满足对应兑换要求(粉丝牌1级以上),即可获得礼包。",
- 'is_exchange' => in_array($v['id'], $objPackRecords)? 1: 0,
- ];
- }
- //
- return [
- 'errno'=> 10000,
- "errmsg" => 'ok',
- 'data' => $data,
- ];
- }
- // 礼包兑换接口
- public function exchange(Request $request) {
- //
- $objUser = unserialize($request->get("account"));
- $id = $request->input("id", 0);
- if(!$id) {
- return [
- 'errno'=> 10001,
- "errmsg" => '参数错误',
- ];
- }
- // 获取礼包
- $objPack = \App\Models\GiftPack::where("id", $id)->with("attire")->first();
- if(!$objPack) {
- return [
- 'errno'=> 10002,
- "errmsg" => '参数错误',
- ];
- }
- // 获取用户的兑换情况
- $objPackRecords = \App\Models\PackRecord::where("account_id", $objUser->id)
- ->where("gift_pack_id",$id)
- ->first();
- //
- if($objPackRecords) {
- return [
- 'errno'=> 10003,
- "errmsg" => '该礼包已经兑换过了',
- ];
- }
- // todo 用户是否直播间发送弹幕,是否符合要求
- if(Redis::get("dm_level:".date("Ymd").":{$objUser->id}:{$objPack->room_id}") != 1) {
- return [
- 'errno'=> 10004,
- "errmsg" => '还没有完成礼包任务哦',
- ];
- }
- //
- DB::transaction(function () use($objUser, $id, $objPack) {
- // 添加兑换记录
- $objPackRecord = new \App\Models\PackRecord();
- $objPackRecord->account_id = $objUser->id;
- $objPackRecord->gift_pack_id = $id;
- $objPackRecord->save();
- // 增加礼劵
- DB::table('accounts')
- ->where("id", $objUser->id)
- ->increment("coupon", $objPack->coupon);
- // 礼劵明细
- $objCouponRecord = new \App\Models\CouponRecord();
- $objCouponRecord->account_id = $objUser->id;
- $objCouponRecord->add_cnt = $objPack->coupon;
- $objCouponRecord->type = 5;
- $objCouponRecord->pack_record_id = $objPackRecord->id;
- $objCouponRecord->day = date("Y-m-d");
- $objCouponRecord->save();
- // 试衣间增加
- if($objPack->attire_id) {
- $fittimgRooms[] = [
- "account_id" => $objUser->id,
- "attire_id" => $objPack->attire_id,
- 'created_at' =>date("Y-m-d H:i:s"),
- 'updated_at' =>date("Y-m-d H:i:s"),
- ];
- \App\Models\FittingRoom::insertOrIgnore($fittimgRooms);
- }
- });
-
- //
- return [
- 'errno'=> 10000,
- "errmsg" => '快去试衣间装扮一下吧~',
- ];
- }
- }
|