新需求-活动需求-盲盒转盘
This commit is contained in:
@@ -261,95 +261,95 @@ class BlindBox extends adminApi
|
|||||||
return V(0,"请选择盲盒类型");
|
return V(0,"请选择盲盒类型");
|
||||||
}
|
}
|
||||||
$gift_bag_detail = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->select();
|
$gift_bag_detail = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->select();
|
||||||
if(in_array($gift_bag_id,[10,11,12,13])){
|
// if(in_array($gift_bag_id,[10,11,12,13])){
|
||||||
$periods = 1;
|
// $periods = 1;
|
||||||
$target_room_ids = [];
|
// $target_room_ids = [];
|
||||||
if(!empty($room_id)){
|
// if(!empty($room_id)){
|
||||||
// 处理单个房间
|
// // 处理单个房间
|
||||||
$room_pan_detail = db::name('vs_room_pan')
|
// $room_pan_detail = db::name('vs_room_pan')
|
||||||
->where(['gift_bag_id'=>$gift_bag_id,'room_id'=>$room_id])
|
// ->where(['gift_bag_id'=>$gift_bag_id,'room_id'=>$room_id])
|
||||||
->order('id desc')
|
// ->order('id desc')
|
||||||
->find();
|
// ->find();
|
||||||
|
//
|
||||||
if($room_pan_detail){
|
// if($room_pan_detail){
|
||||||
$periods = $room_pan_detail['periods'];
|
// $periods = $room_pan_detail['periods'];
|
||||||
}
|
// }
|
||||||
// 删除指定房间的数据
|
// // 删除指定房间的数据
|
||||||
db::name('vs_room_pan')
|
// db::name('vs_room_pan')
|
||||||
->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])
|
// ->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])
|
||||||
->delete();
|
// ->delete();
|
||||||
|
//
|
||||||
$target_room_ids = [$room_id];
|
// $target_room_ids = [$room_id];
|
||||||
}else{
|
// }else{
|
||||||
// 处理所有房间
|
// // 处理所有房间
|
||||||
db::name('vs_room_pan')
|
// db::name('vs_room_pan')
|
||||||
->where(['gift_bag_id'=>$gift_bag_id])
|
// ->where(['gift_bag_id'=>$gift_bag_id])
|
||||||
->delete();
|
// ->delete();
|
||||||
|
//
|
||||||
$target_room_ids = db::name('vs_room')
|
// $target_room_ids = db::name('vs_room')
|
||||||
->where(['is_open_blind_box_turntable'=>1,'room_status'=>1])
|
// ->where(['is_open_blind_box_turntable'=>1,'room_status'=>1])
|
||||||
->column('id');
|
// ->column('id');
|
||||||
}
|
// }
|
||||||
// 批量插入数据
|
// // 批量插入数据
|
||||||
$insert_data = [];
|
// $insert_data = [];
|
||||||
$update_data = [];
|
// $update_data = [];
|
||||||
foreach ($gift_bag_detail as $v){
|
// foreach ($gift_bag_detail as $v){
|
||||||
if(!empty($room_id)) {
|
// if(!empty($room_id)) {
|
||||||
// 单个房间更新或插入
|
// // 单个房间更新或插入
|
||||||
$existing = db::name('vs_room_pan')
|
// $existing = db::name('vs_room_pan')
|
||||||
->where([
|
// ->where([
|
||||||
'room_id' => $room_id,
|
// 'room_id' => $room_id,
|
||||||
'gift_bag_detail_id' => $v['id']
|
// 'gift_bag_detail_id' => $v['id']
|
||||||
])
|
// ])
|
||||||
->find();
|
// ->find();
|
||||||
|
//
|
||||||
if($existing) {
|
// if($existing) {
|
||||||
$update_data[] = [
|
// $update_data[] = [
|
||||||
'id' => $existing['id'],
|
// 'id' => $existing['id'],
|
||||||
'remaining_number' => $v['quantity'],
|
// 'remaining_number' => $v['quantity'],
|
||||||
'periods' => $periods
|
// 'periods' => $periods
|
||||||
];
|
// ];
|
||||||
} else {
|
// } else {
|
||||||
$insert_data[] = [
|
// $insert_data[] = [
|
||||||
'room_id' => $room_id,
|
// 'room_id' => $room_id,
|
||||||
'gift_bag_id' => $gift_bag_id,
|
// 'gift_bag_id' => $gift_bag_id,
|
||||||
'gift_bag_detail_id' => $v['id'],
|
// 'gift_bag_detail_id' => $v['id'],
|
||||||
'remaining_number' => $v['quantity'],
|
// 'remaining_number' => $v['quantity'],
|
||||||
'periods' => $periods,
|
// 'periods' => $periods,
|
||||||
'createtime' => time(),
|
// 'createtime' => time(),
|
||||||
];
|
// ];
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
// 多个房间批量插入
|
// // 多个房间批量插入
|
||||||
foreach ($target_room_ids as $mid){
|
// foreach ($target_room_ids as $mid){
|
||||||
$insert_data[] = [
|
// $insert_data[] = [
|
||||||
'room_id' => $mid,
|
// 'room_id' => $mid,
|
||||||
'gift_bag_id' => $gift_bag_id,
|
// 'gift_bag_id' => $gift_bag_id,
|
||||||
'gift_bag_detail_id' => $v['id'],
|
// 'gift_bag_detail_id' => $v['id'],
|
||||||
'remaining_number' => $v['quantity'],
|
// 'remaining_number' => $v['quantity'],
|
||||||
'periods' => $periods,
|
// 'periods' => $periods,
|
||||||
'createtime' => time(),
|
// 'createtime' => time(),
|
||||||
];
|
// ];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 执行批量插入
|
// // 执行批量插入
|
||||||
if(!empty($insert_data)) {
|
// if(!empty($insert_data)) {
|
||||||
db::name('vs_room_pan')->insertAll($insert_data);
|
// db::name('vs_room_pan')->insertAll($insert_data);
|
||||||
}
|
// }
|
||||||
// 执行批量更新
|
// // 执行批量更新
|
||||||
if(!empty($update_data)) {
|
// if(!empty($update_data)) {
|
||||||
foreach($update_data as $update_item) {
|
// foreach($update_data as $update_item) {
|
||||||
db::name('vs_room_pan')
|
// db::name('vs_room_pan')
|
||||||
->where(['id' => $update_item['id']])
|
// ->where(['id' => $update_item['id']])
|
||||||
->update([
|
// ->update([
|
||||||
'remaining_number' => $update_item['remaining_number'],
|
// 'remaining_number' => $update_item['remaining_number'],
|
||||||
'periods' => $update_item['periods']
|
// 'periods' => $update_item['periods']
|
||||||
]);
|
// ]);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// 更新盲盒详情的剩余数量
|
// 更新盲盒详情的剩余数量
|
||||||
foreach ($gift_bag_detail as $k=>$v){
|
foreach ($gift_bag_detail as $k=>$v){
|
||||||
$bag_data = db::name($this->table)->where(['id'=>$v['id']])->update(['remaining_number'=>$v['quantity']]);
|
$bag_data = db::name($this->table)->where(['id'=>$v['id']])->update(['remaining_number'=>$v['quantity']]);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class BlindBoxTurntable extends BaseCom
|
|||||||
$gift_user_ids = input('gift_user_ids',0);
|
$gift_user_ids = input('gift_user_ids',0);
|
||||||
$num = input('num',1);
|
$num = input('num',1);
|
||||||
$heart_id = input('heart_id',0);
|
$heart_id = input('heart_id',0);
|
||||||
$reslut = model('BlindBoxTurntableGiftDrawWorld')->draw_gift($gift_bag_id, $user_id, $gift_user_ids,$num,$room_id,$heart_id);
|
$reslut = model('BlindBoxTurntableGiftDraw')->draw_gift($gift_bag_id, $user_id, $gift_user_ids,$num,$room_id,$heart_id);
|
||||||
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@@ -92,7 +92,7 @@ class BlindBoxTurntable extends BaseCom
|
|||||||
$user_id = $this->uid;
|
$user_id = $this->uid;
|
||||||
$room_id = input('room_id',0);
|
$room_id = input('room_id',0);
|
||||||
$num = input('num',1);
|
$num = input('num',1);
|
||||||
$reslut = model('BlindBoxTurntableGiftDrawWorld')->xlh_draw_gift($user_id,$num,$room_id);
|
$reslut = model('BlindBoxTurntableGiftDraw')->xlh_draw_gift($user_id,$num,$room_id);
|
||||||
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -922,7 +922,7 @@ class BlindBoxTurntableGiftDrawWorld extends Model
|
|||||||
* @param int $gift_bag_id 礼物包ID
|
* @param int $gift_bag_id 礼物包ID
|
||||||
*/
|
*/
|
||||||
private function reset_gift_pool($gift_bag_id,$remaining_available_gifts=[]) {
|
private function reset_gift_pool($gift_bag_id,$remaining_available_gifts=[]) {
|
||||||
$bag_detail = b::name("vs_gift_bag_detail")->where('gift_bag_id',$gift_bag_id)->select();
|
$bag_detail = db::name("vs_gift_bag_detail")->where('gift_bag_id',$gift_bag_id)->select();
|
||||||
db::name("vs_gift_bag")->where('id',$gift_bag_id)->setInc('periods'); //更新期数
|
db::name("vs_gift_bag")->where('id',$gift_bag_id)->setInc('periods'); //更新期数
|
||||||
db::name("vs_gift_bag_detail")->where('gift_bag_id',$gift_bag_id)->update(['remaining_number'=>db::raw('quantity')]);//重置奖池
|
db::name("vs_gift_bag_detail")->where('gift_bag_id',$gift_bag_id)->update(['remaining_number'=>db::raw('quantity')]);//重置奖池
|
||||||
//防止并发,上把如果件数小于0,则加上
|
//防止并发,上把如果件数小于0,则加上
|
||||||
|
|||||||
Reference in New Issue
Block a user