新需求: 盲盒转盘开发-转盘抽奖接口开发-抽奖记录接口 -送礼接口调整
This commit is contained in:
@@ -40,6 +40,7 @@ class BlindBoxTurntableGift extends Model
|
||||
$result_data = [
|
||||
'title' => $box['name'],
|
||||
'rule_url' => get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$box["id"],
|
||||
'rule' => $ext['introd'],
|
||||
'box_price' => $box_gift['gift_price'],
|
||||
'gift_list' => $gift_list,
|
||||
];
|
||||
@@ -54,9 +55,23 @@ class BlindBoxTurntableGift extends Model
|
||||
$ext = json_decode($bag_data['ext'],true);
|
||||
$bag_gift = db::name("vs_gift")->where(['gid'=>$ext['gift_id']])->find();// 获取盲盒信息
|
||||
$toarray = explode(',',$gift_user_ids);
|
||||
//判断是否有足够的金币
|
||||
$user_waller = db::name('user_wallet')->where(['user_id'=>$user_id])->find();
|
||||
if ($user_waller['coin'] < $bag_gift['gift_price'] * $num) {
|
||||
return ['code' => 0, 'msg' => '用户金币不足', 'data' => null];
|
||||
}
|
||||
//盲盒转盘抽奖记录
|
||||
$box_turntable_log = db::name('vs_blind_box_turntable_log')->insertGetId([
|
||||
'user_id' => $user_id,
|
||||
'gift_bag_id' => $gift_bag_id,
|
||||
'num' => $num,
|
||||
'room_id' => $room_id,
|
||||
'bag_price' => $bag_gift['gift_price'],
|
||||
'createtime' => time()
|
||||
]);
|
||||
foreach ($toarray as $gift_user_id){
|
||||
for($i = 0; $i < $num; $i++){
|
||||
$reslut_draw_gift_data = $this->draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$bag_gift['gift_price'],$bag_data['periods'],$room_id);
|
||||
$reslut_draw_gift_data = $this->draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$bag_gift['gift_price'],$bag_data['periods'],$room_id,$box_turntable_log);
|
||||
$reslut_draw_gift[] = $reslut_draw_gift_data['data'];
|
||||
}
|
||||
}
|
||||
@@ -89,16 +104,18 @@ class BlindBoxTurntableGift extends Model
|
||||
}
|
||||
}
|
||||
$reslut_gift = array_values($reslut_gift);
|
||||
//盲盒转盘抽奖记录
|
||||
$box_turntable_log = db::name('vs_blind_box_turntable_log')->insertGetId([
|
||||
'user_id' => $user_id,
|
||||
'gift_bag_id' => $gift_bag_id,
|
||||
'num' => $num,
|
||||
'room_id' => $room_id,
|
||||
'bag_price' => $bag_gift['gift_price'],
|
||||
'lottery_result' => json_encode($reslut_gift),
|
||||
'createtime' => time()
|
||||
]);
|
||||
foreach ($reslut_gift as $key => $value) {
|
||||
db::name('vs_blind_box_turntable_results_log')->insert([
|
||||
'tid' => $box_turntable_log,
|
||||
'gift_user_id' => $value['gift_user_id'],
|
||||
'gift_id' => $value['gift_id'],
|
||||
'count' => $value['count'],
|
||||
'gift_price' => $value['gift_price'],
|
||||
'all_gift_price' => $value['gift_price'] * $value['count'],
|
||||
'createtime' => time()
|
||||
]);
|
||||
}
|
||||
$reslut = [];
|
||||
$reslut['blind_box_turntable_id'] = $box_turntable_log;
|
||||
$reslut['reslut_list'] = array_values($reslut_data);
|
||||
return V(1,"成功", $reslut);
|
||||
@@ -106,7 +123,7 @@ class BlindBoxTurntableGift extends Model
|
||||
/*
|
||||
* 单人单次抽奖
|
||||
*/
|
||||
public function draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$gift_price,$periods,$room_id=0){
|
||||
public function draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$gift_price,$periods,$room_id=0,$box_turntable_log=0){
|
||||
//随机获取一个礼物
|
||||
$where = [
|
||||
'gift_bag_id' => $gift_bag_id,
|
||||
@@ -151,6 +168,7 @@ class BlindBoxTurntableGift extends Model
|
||||
$data = [];
|
||||
$data['user_id'] = $user_id;
|
||||
$data['gift_user_id'] = $gift_user_id;
|
||||
$data['parent_id'] = $box_turntable_log;
|
||||
$data['gift_bag_id'] = $gift_bag_id;
|
||||
$data['gift_id'] = $gift_bag_detail['foreign_id'];
|
||||
$data['periods'] = $periods;
|
||||
@@ -194,14 +212,72 @@ class BlindBoxTurntableGift extends Model
|
||||
if(!$blind_box_turntable){
|
||||
return ['code' => 0, 'msg' => '数据不存在'];
|
||||
}
|
||||
$reslut_gift = json_decode($blind_box_turntable['lottery_result'],true);
|
||||
foreach ($reslut_gift as $key => $value) {
|
||||
$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']);
|
||||
$blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where('tid',$send_id)->select();
|
||||
if(!$blind_box_turntable_log){
|
||||
return ['code' => 0, 'msg' => '开奖数据不存在'];
|
||||
}
|
||||
//获取盲盒配置
|
||||
$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'],$give_gift_ext);
|
||||
if (isset($res) && $res['code'] != 1) {
|
||||
return V(0, $res['msg']);
|
||||
}
|
||||
db('vs_blind_box_turntable_results_log')->where('id', $value['id'])->update(['is_sued' => 1, 'updatetime' => time()]);
|
||||
}
|
||||
$res = db('vs_blind_box_turntable_log')->where('id', $blind_box_turntable['id'])->update(['is_sued' => 1, 'updatetime' => time()]);
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $res];
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
||||
}
|
||||
|
||||
/*
|
||||
* 获取用户抽奖记录
|
||||
*/
|
||||
public function get_user_record($gift_bag_id,$user_id=0,$page=1,$page_size=12){
|
||||
$where = [];
|
||||
$where['b.gift_bag_id'] = $gift_bag_id;
|
||||
if($user_id > 0){
|
||||
$where['b.user_id'] = $user_id;
|
||||
}
|
||||
$list = db('vs_blind_box_turntable_results_log')
|
||||
->alias('a')
|
||||
->join('vs_blind_box_turntable_log b','b.id = a.tid','left')
|
||||
->join('user c','a.gift_user_id = c.id','left')
|
||||
->join('vs_gift d','d.gid = a.gift_id','left')
|
||||
->field('a.gift_id,a.count,a.gift_user_id,b.createtime,c.nickname,d.gift_name as gift_name,d.play_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 get_all_record($gift_bag_id,$page=1,$page_size=12){
|
||||
$where = [];
|
||||
$where['b.gift_bag_id'] = $gift_bag_id;
|
||||
$where['d.gift_bag_id'] = $gift_bag_id;
|
||||
$where['d.is_world_show'] = 1;
|
||||
$list = db('vs_blind_box_turntable_results_log')
|
||||
->alias('a')
|
||||
->join('vs_blind_box_turntable_log b','b.id = a.tid','left')
|
||||
->join('user c','b.user_id = c.id','left')
|
||||
->join('vs_gift_bag_detail d','d.foreign_id = a.gift_id','left')
|
||||
->join('vs_gift e','e.gid = a.gift_id','left')
|
||||
->field('a.gift_id,a.count,a.gift_user_id,b.createtime,c.nickname,d.name as gift_name,e.play_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];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user