巡乐会抽奖接口提交.-抽奖记录
This commit is contained in:
@@ -91,4 +91,25 @@ class BlindBoxTurntable extends BaseCom
|
||||
$reslut = model('BlindBoxTurntableGift')->xlh_draw_gift($user_id,$num,$room_id);
|
||||
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
/*
|
||||
* 获取我的巡乐会记录
|
||||
*/
|
||||
public function get_xlh_my_record(){
|
||||
$page = input('page',1);
|
||||
$page_size = input('page_size',12);
|
||||
$user_id = $this->uid;
|
||||
$room_id = input('room_id',0);
|
||||
$reslut = model('BlindBoxTurntableGift')->xlh_get_user_record($user_id,$room_id,$page,$page_size);
|
||||
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
/*
|
||||
* 获取全服巡乐会记录(榜单)
|
||||
*/
|
||||
public function get_xlh_all_record(){
|
||||
$page = input('page',1);
|
||||
$page_size = input('page_size',12);
|
||||
$room_id = input('room_id',0);
|
||||
$reslut = model('BlindBoxTurntableGift')->xlh_ranking($room_id,$page,$page_size);
|
||||
return v($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,9 @@ class Cron
|
||||
{
|
||||
$cron = new \app\cron\controller\PerformPerSecond();
|
||||
$cron->index();
|
||||
//巡乐会结束 礼物发放
|
||||
$cron = new \app\cron\controller\RoomPan();
|
||||
$cron->index();
|
||||
}
|
||||
|
||||
//每周执行
|
||||
@@ -31,4 +34,10 @@ class Cron
|
||||
$cron = new \app\cron\controller\DaySeconds();
|
||||
$cron->index();
|
||||
}
|
||||
|
||||
//巡乐会结束 礼物发放
|
||||
public function XlhSend(){
|
||||
$cron = new \app\cron\controller\RoomPan();
|
||||
$cron->index();
|
||||
}
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
95
application/cron/controller/RoomPan.php
Normal file
95
application/cron/controller/RoomPan.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace app\cron\controller;
|
||||
|
||||
use think\Db;
|
||||
|
||||
|
||||
/*
|
||||
* 定时任务,每秒执行的方法
|
||||
*/
|
||||
class RoomPan
|
||||
{
|
||||
/*
|
||||
* 运行函数
|
||||
*/
|
||||
function index()
|
||||
{
|
||||
echo "巡乐会结束 礼物发放:\n";
|
||||
$this->xlh_gift_send();//拍卖房结束提醒
|
||||
echo "礼物发放结束 \n";
|
||||
|
||||
echo "盲盒转盘礼物补发:\n";
|
||||
$this->blind_box_turntable_gift_send();//盲盒转盘礼物补发
|
||||
echo "盲盒转盘礼物补发结束 \n";
|
||||
}
|
||||
|
||||
/*
|
||||
* 盲盒转盘礼物补发
|
||||
*/
|
||||
public function blind_box_turntable_gift_send(){
|
||||
$blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where(['is_sued'=>0])->select();
|
||||
if(empty($blind_box_turntable_log)){
|
||||
echo "没有需要发放的礼物 \n";
|
||||
}
|
||||
echo "开始发放".count($blind_box_turntable_log)." \n";
|
||||
foreach ($blind_box_turntable_log as $key => $value) {
|
||||
$blind_box_turntable = db('vs_blind_box_turntable_log')->field('user_id,room_id')->where('id',$value['tid'])->find();
|
||||
$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;
|
||||
echo "发放Id:".$value['id']." 补发用户Id:".$value['gift_user_id']." 礼物Id:".$value['gift_id']." 礼物数量:".$value['count']."\n";
|
||||
$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) {
|
||||
echo "礼物发放失败".$res['msg']."\n";
|
||||
continue;
|
||||
}
|
||||
db('vs_blind_box_turntable_results_log')->where('id', $value['id'])->update(['is_sued' => 1, 'updatetime' => time()]);
|
||||
echo "补发成功 \n";
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 巡乐会结束 礼物发放 【定时脚本】
|
||||
*/
|
||||
public function xlh_gift_send(){
|
||||
$xlh_list = db::name('vs_room_pan_xlh')->where(['send_time'=>0,'user_id'=>['neq',0],'end_time'=>['<',time()]])->select();
|
||||
if(empty($xlh_list)){
|
||||
echo "没有需要发放的礼物 \n";
|
||||
}
|
||||
foreach ($xlh_list as $key=>$value){
|
||||
//发放
|
||||
//抽中礼物落包
|
||||
$res = [];
|
||||
$res = model('api/UserGiftPack')->change_user_gift_pack($value['user_id'],$value['gift_id'],$value['num'],model('UserGiftPack')::XLH_DRAW_GIFT_GET,"巡乐会中奖发放");
|
||||
if ($res['code'] != 1) {
|
||||
echo $res['msg']."\n";
|
||||
continue;
|
||||
}
|
||||
echo "巡乐会中奖礼物发放成功 用户Id:".$value['user_id']."\n";
|
||||
//房主礼物落包
|
||||
$res = [];
|
||||
//获取房主id
|
||||
$user_id = db::name('vs_room')->where(['id'=>$value['room_id']])->value('user_id');
|
||||
$res = model('api/UserGiftPack')->change_user_gift_pack($user_id,$value['homeowner_gift_id'],1,model('UserGiftPack')::XLH_DRAW_GIFT_GET,"巡乐会中奖后房主礼物发放");
|
||||
if ($res['code'] != 1) {
|
||||
echo $res['msg']."\n";
|
||||
continue;
|
||||
}
|
||||
echo "巡乐会中奖后房主礼物发放成功 房主Id:".$user_id."\n";
|
||||
//处理发放记录
|
||||
$res = [];
|
||||
$res = db::name('vs_room_pan_xlh')->where('id',$value['id'])->update([
|
||||
'send_time' => time()
|
||||
]);
|
||||
if ($res === false) {
|
||||
echo "处理发放记录失败 \n";
|
||||
continue;
|
||||
}
|
||||
//推送
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user