"战斗吧", //粉丝牌:"战姬众",
"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' => "请前往".$this->rooms[$v["room_id"]]."直播间,佩戴兑换礼包对应粉丝牌,发送任意弹幕,如账号身份满足对应兑换要求(粉丝牌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" => '快去试衣间装扮一下吧~',
];
}
}