巡乐会抽奖接口提交.-抽奖记录
This commit is contained in:
@@ -310,15 +310,15 @@ class BlindBoxTurntableGift extends Model
|
||||
return ['code' => 0, 'msg' => '开奖数据不存在','data' => null];
|
||||
}
|
||||
//获取盲盒配置
|
||||
$bag_data = db::name("vs_gift_bag")->field('id,name,ext,periods')->where('id',$blind_box_turntable['gift_bag_id'])->find();
|
||||
$ext = json_decode($bag_data['ext'],true);
|
||||
// $bag_data = db::name("vs_gift_bag")->field('id,name,ext,periods')->where('id',$blind_box_turntable['gift_bag_id'])->find();
|
||||
// $ext = json_decode($bag_data['ext'],true);
|
||||
foreach ($blind_box_turntable_log as $key => $value) {
|
||||
$give_gift_ext['gift_id'] = $value['gift_id'];
|
||||
$give_gift_ext['count'] = $value['count'];
|
||||
$give_gift_ext['gift_price'] = $value['gift_price'];
|
||||
$give_gift_ext['all_gift_price'] = $value['all_gift_price'];
|
||||
$give_gift_ext['is_draw_gift'] = 1;
|
||||
$res = model('GiveGift')->give_gift($blind_box_turntable['user_id'], $value['gift_user_id'], $ext['gift_id'], $value['count'],2,1, $blind_box_turntable['room_id'],0,0,$give_gift_ext);
|
||||
$res = model('GiveGift')->give_gift($blind_box_turntable['user_id'], $value['gift_user_id'], $value['gift_id'], $value['count'],2,1, $blind_box_turntable['room_id'],0,0,$give_gift_ext);
|
||||
if (isset($res) && $res['code'] != 1) {
|
||||
return V(0, $res['msg']);
|
||||
}
|
||||
@@ -455,6 +455,10 @@ class BlindBoxTurntableGift extends Model
|
||||
return ['code' => 0, 'msg' => '该房间未开启盲盒转盘', 'data' => null];
|
||||
}
|
||||
//开始抽奖
|
||||
$pan_xlh = db::name('vs_room_pan_xlh')->where(['room_id'=>$room_id,'periods'=>$room['blind_box_turntable_periods']])->find();
|
||||
if(empty($pan_xlh)){
|
||||
return ['code' => 0, 'msg' => '未开始', 'data' => null];
|
||||
}
|
||||
for($i = 0; $i < $num; $i++){
|
||||
//随机获取一个礼物
|
||||
$where = [
|
||||
@@ -510,40 +514,24 @@ class BlindBoxTurntableGift extends Model
|
||||
//处理抽中礼物命中主奖品逻辑
|
||||
if($gift_bag_detail['foreign_id'] == $ext['locking_condition']['selected_gift_id']){
|
||||
//中奖
|
||||
$pan_xlh = db::name('vs_room_pan_xlh')->where(['room_id'=>$room_id,'periods'=>$room['blind_box_turntable_periods']])->find();
|
||||
if($pan_xlh){
|
||||
db::name('vs_room_pan_xlh')->where('id',$pan_xlh['id'])->update([
|
||||
'user_id' => $user_id,
|
||||
'num' => $pan_xlh['num'] + 1,
|
||||
]);
|
||||
if($pan_xlh['num'] == 0){
|
||||
$end_time = time() + $ext['locking_time']['tow_no_locking_time'] * 60;
|
||||
}else{
|
||||
$end_time = time() + ($ext['locking_time']['tow_no_locking_time']-$ext['locking_time']['next_time']) * 60;
|
||||
}
|
||||
db::name('vs_room_pan_xlh_log')->insertGetId([
|
||||
'xlh_id' => $pan_xlh['id'],
|
||||
'user_id' => $user_id,
|
||||
'num' => isset($pan_xlh['num']) ? $pan_xlh['num']+1 : 1,
|
||||
'locking_end_time' => $end_time,
|
||||
'createtime' => time()
|
||||
]);
|
||||
if($pan_xlh['num'] == 0){
|
||||
$end_time = time() + $ext['locking_time']['tow_no_locking_time'] * 60;
|
||||
}else{
|
||||
$end_time = time() + ($ext['locking_time']['tow_no_locking_time']-$ext['locking_time']['next_time']) * 60;
|
||||
}
|
||||
}
|
||||
//处理礼包发放记录表
|
||||
$data = [];
|
||||
$data['user_id'] = $user_id;
|
||||
$data['parent_id'] = 0;
|
||||
$data['gift_bag_id'] = $gift_bag_id;
|
||||
$data['gift_id'] = $gift_bag_detail['foreign_id'];
|
||||
$data['periods'] = $room['blind_box_turntable_periods'];
|
||||
$data['room_id'] = $room_id;
|
||||
$data['gift_price'] = $gift['gift_price'];
|
||||
$data['bag_price'] = $ext['xlh_box_price'];
|
||||
$data['createtime'] = time();
|
||||
$result = db::name("vs_gift_bag_receive_log")->insert($data);
|
||||
if(!$result){
|
||||
return ['code' => 0, 'msg' => '失败,', 'data' => []];
|
||||
db::name('vs_room_pan_xlh')->where('id',$pan_xlh['id'])->update([
|
||||
'user_id' => $user_id,
|
||||
'num' => $pan_xlh['num'] + 1,
|
||||
'end_time' => $end_time,
|
||||
'updatetime' => time()
|
||||
]);
|
||||
db::name('vs_room_pan_xlh_log')->insertGetId([
|
||||
'xlh_id' => $pan_xlh['id'],
|
||||
'user_id' => $user_id,
|
||||
'num' => isset($pan_xlh['num']) ? $pan_xlh['num']+1 : 1,
|
||||
'locking_end_time' => $end_time,
|
||||
'createtime' => time()
|
||||
]);
|
||||
}
|
||||
//减去盲盒包礼物数量
|
||||
$ret = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_detail_id'=>$gift_bag_detail['id']])->setDec('remaining_number',1);
|
||||
@@ -566,6 +554,37 @@ class BlindBoxTurntableGift extends Model
|
||||
'is_public_screen'=>$gift['is_public_screen'],
|
||||
];
|
||||
}
|
||||
$reslut_data = [];
|
||||
foreach ($result_data as $key => $value) {
|
||||
$gift_id = $value['gift_id'];
|
||||
if (!isset($reslut_data[$gift_id])) {
|
||||
$reslut_data[$gift_id] = [
|
||||
'gift_id' => $gift_id,
|
||||
'gift_price'=>$value['gift_price'],
|
||||
'count' => 1
|
||||
];
|
||||
}else {
|
||||
$reslut_data[$gift_id]['count']++;
|
||||
}
|
||||
}
|
||||
foreach ($reslut_data as $key => $value) {
|
||||
//处理礼包发放记录表
|
||||
$data = [];
|
||||
$data['user_id'] = $user_id;
|
||||
$data['parent_id'] = $pan_xlh['id'];
|
||||
$data['gift_bag_id'] = $gift_bag_id;
|
||||
$data['gift_id'] = $value['gift_id'];
|
||||
$data['periods'] = $room['blind_box_turntable_periods'];
|
||||
$data['room_id'] = $room_id;
|
||||
$data['num'] = $value['count'];
|
||||
$data['gift_price'] = $value['gift_price'];
|
||||
$data['bag_price'] = $ext['xlh_box_price'];
|
||||
$data['createtime'] = time();
|
||||
$result = db::name("vs_gift_bag_receive_log")->insert($data);
|
||||
if(!$result){
|
||||
return ['code' => 0, 'msg' => '失败,', 'data' => []];
|
||||
}
|
||||
}
|
||||
// 添加活动记录
|
||||
$reslut = Db::name('vs_activities_receive')->insert([
|
||||
'user_id' => $user_id,
|
||||
@@ -576,4 +595,50 @@ class BlindBoxTurntableGift extends Model
|
||||
]);
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $result_data];
|
||||
}
|
||||
|
||||
/*
|
||||
* 巡乐会抽奖记录
|
||||
*/
|
||||
public function xlh_get_user_record($user_id,$room_id,$page=1,$page_size=12){
|
||||
$where = [];
|
||||
$where['a.gift_bag_id'] = 13;
|
||||
$where['a.user_id'] = $user_id;
|
||||
$where['a.room_id'] = $room_id;
|
||||
$list = db('vs_gift_bag_receive_log')
|
||||
->alias('a')
|
||||
->join('vs_room_pan_xlh b','b.id = a.parent_id','left')
|
||||
->join('vs_gift c','c.gid = a.gift_id','left')
|
||||
->field('a.gift_id,a.num,b.createtime,c.gift_name as gift_name,c.base_image')
|
||||
->where($where)
|
||||
->page($page,$page_size)
|
||||
->select();
|
||||
foreach ($list as &$v){
|
||||
$v['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $list];
|
||||
}
|
||||
|
||||
/*
|
||||
* 巡乐会榜单
|
||||
*/
|
||||
public function xlh_ranking($room_id,$page=1,$page_size=12){
|
||||
$where = [];
|
||||
$where['a.gift_bag_id'] = 13;
|
||||
$where['a.room_id'] = $room_id;
|
||||
$where['e.is_world_show'] = 1;
|
||||
$list = db('vs_gift_bag_receive_log')
|
||||
->alias('a')
|
||||
->join('vs_room_pan_xlh b','b.id = a.parent_id','left')
|
||||
->join('vs_gift c','c.gid = a.gift_id','left')
|
||||
->join('fa_user d','d.id = a.user_id','left')
|
||||
->join('vs_gift_bag_detail e','e.foreign_id = a.gift_id','left')
|
||||
->field('a.gift_id,a.num,b.createtime,c.gift_name as gift_name,c.base_image,d.nickname')
|
||||
->where($where)
|
||||
->page($page,$page_size)
|
||||
->select();
|
||||
foreach ($list as &$v){
|
||||
$v['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $list];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user