530 lines
23 KiB
PHP
530 lines
23 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\api\model;
|
|
|
|
|
|
use think\Db;
|
|
|
|
|
|
class BlindBox
|
|
{
|
|
//进行中的活动
|
|
public static function get_blind_box_term()
|
|
{
|
|
|
|
try {
|
|
// 是否开启
|
|
$map = [
|
|
['status', '=', 2],
|
|
['real_end_time', '>', time()]
|
|
];
|
|
$blind_box_term = Db::name('blind_box_term')
|
|
->alias('b')
|
|
->join('blind_box_term_params p', 'b.id = p.term_id AND b.stage = p.stage')
|
|
->where($map)
|
|
->field('b.*, p.gid, p.multi as now_multi, p.time_long, p.num as min_num,p.reward_gid,p.reward_gid_r')
|
|
->order('b.real_end_time desc')
|
|
->find();
|
|
|
|
if (empty($blind_box_term)) {
|
|
return ['code' => 201, 'msg' => '未开启', 'data' => null];
|
|
}
|
|
// 验证和过滤数据
|
|
$blind_box_term = array_filter($blind_box_term, function($value) {
|
|
return is_scalar($value);
|
|
});
|
|
|
|
$blind_box_term['term_id'] = $blind_box_term['id'];
|
|
unset($blind_box_term['id']);
|
|
|
|
return ['code' => 200, 'msg' => '开启中', 'data' => $blind_box_term];
|
|
} catch (\Exception $e) {
|
|
// 记录日志
|
|
dump($e);
|
|
return ['code' => 201, 'msg' => '服务器内部错误', 'data' => null];
|
|
}
|
|
}
|
|
//进度条
|
|
public function stage_process_bar($stage, $total_num, $min_num, $max_num)
|
|
{
|
|
if ($stage == 5) {
|
|
$max_config_num = Db::name('config')->where('key_title', 'blind_box_max_amount')
|
|
->value('key_value');
|
|
$max_nums = $max_config_num;
|
|
if ($total_num > $max_nums) {
|
|
$now_num = $max_nums - $min_num;
|
|
} else {
|
|
$now_num = $total_num - $min_num;
|
|
}
|
|
} else {
|
|
$now_num = $total_num - $min_num;
|
|
$max_nums = $max_num - $min_num;
|
|
}
|
|
return [
|
|
'min_num' => $now_num,
|
|
'max_num' => $max_nums
|
|
];
|
|
}
|
|
//判断是都进入下一阶段
|
|
public function check_next_stage($term_id, $stage, $total_num)
|
|
{
|
|
// dump($total_num);
|
|
// 新的阶段
|
|
$new_stage_info = [];
|
|
if ($stage < 5) {
|
|
$map = [];
|
|
$map[] = ['a.term_id', '=', $term_id];
|
|
$map[] = ['a.stage', '>', $stage];
|
|
$map[] = ['a.num', '<', $total_num];
|
|
|
|
$stage_info = db::name('blind_box_term_params')->alias('a')
|
|
->leftJoin('gift b', 'a.reward_gid = b.gid')
|
|
->field('a.*,b.base_image,b.gift_name')
|
|
->where($map)->order('stage asc')
|
|
->limit(1)->find();
|
|
if (!empty($stage_info)) {
|
|
$now_gift_image = localpath_to_netpath($stage_info['base_image']);
|
|
if ($stage_info['stage'] == 5) {
|
|
$data = [
|
|
'now_gift_image' => $now_gift_image,
|
|
'now_multi' => $stage_info['multi'],
|
|
'now_num' => $stage_info['num'],
|
|
'now_gift_name' => $stage_info['gift_name'],
|
|
'next_gift_image' => '',
|
|
'next_multi' => 0,
|
|
'next_num' => 0,
|
|
];
|
|
} else {
|
|
$map = [];
|
|
$map[] = ['a.term_id', '=', $term_id];
|
|
$map[] = ['a.stage', '=', $stage_info['stage'] + 1];
|
|
$next_info = db::name('blind_box_term_params')->alias('a')
|
|
->leftJoin('gift b', 'a.reward_gid = b.gid')
|
|
->field('a.*,b.base_image,b.gift_name')
|
|
->where($map)->order('stage asc')->find();
|
|
$data = [
|
|
'now_gift_image' => localpath_to_netpath($stage_info['base_image']),
|
|
'now_multi' => $stage_info['multi'],
|
|
'now_num' => $stage_info['num'],
|
|
'next_gift_image' => localpath_to_netpath($next_info['base_image']),
|
|
'next_multi' => $next_info['multi'],
|
|
'next_num' => $next_info['num'],
|
|
'now_gift_name' => $stage_info['gift_name']
|
|
];
|
|
}
|
|
$data['pattern_id'] = $stage_info['pattern_id'];
|
|
$data['gid'] = $stage_info['gid'];
|
|
$data['time_long'] = $stage_info['time_long'];
|
|
$data['stage'] = $stage_info['stage'];
|
|
$data['reward_gid'] = $stage_info['reward_gid'];
|
|
$data['reward_gid_r'] = $stage_info['reward_gid_r'];
|
|
$data['lock_gift_name'] = Db::name('gift')->where('gid', $stage_info['gid'])->value('gift_name');
|
|
$new_stage_info = $data;
|
|
}
|
|
}
|
|
// dump($new_stage_info);
|
|
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $new_stage_info];
|
|
}
|
|
|
|
|
|
//获取锁定礼物
|
|
public function get_lock_gift($term_id, $stage)
|
|
{
|
|
$map = [];
|
|
$map[] = ['term_id', '=', $term_id];
|
|
$map[] = ['stage', '=', $stage];
|
|
$lock_gid = db::name('blind_box_term_params')->where($map)->order('id desc')->find();
|
|
return $lock_gid;
|
|
}
|
|
//活动初始化
|
|
public function blind_box_init($uid, $to_uid, $gid)
|
|
{
|
|
$blind_box_term = self::get_blind_box_term();
|
|
if ($blind_box_term['code'] == 201) {
|
|
return ['code' => 200, 'msg' => '未开启', 'data' => ['is_open' => 2]];
|
|
}
|
|
|
|
$to_user_info = Db::name('user')->where('uid', $to_uid)->field('uid,base64_nick_name,head_pic')->find();
|
|
if (empty($to_user_info)) {
|
|
return ['code' => 201, 'msg' => '用户不存在', 'data' => null];
|
|
}
|
|
$gift_info = Db::name('gift')->where('gid', $gid)->find();
|
|
if (empty($gift_info)) {
|
|
return ['code' => 201, 'msg' => '盲盒不存在', 'data' => null];
|
|
}
|
|
|
|
$term_info = $blind_box_term['data'];
|
|
$stage = $term_info['stage'];
|
|
$pattern_id = $term_info['pattern_id'];
|
|
$term_id = $term_info['term_id'];
|
|
$map = [];
|
|
if ($stage == 5) {
|
|
$map[] = ['term_id', '=', $term_id];
|
|
$map[] = ['stage', '=', $stage];
|
|
$params = Db::name('blind_box_term_params')->where($map)->order('stage asc')->find();
|
|
if (empty($params)) {
|
|
return ['code' => 201, 'msg' => '未开启', 'data' => null];
|
|
}
|
|
|
|
//奖励礼物信息
|
|
$reward_gift_info = Db::name('gift')->where('gid', $params['reward_gid'])->find();
|
|
$reward_base_image = '';
|
|
if ($reward_gift_info) {
|
|
$reward_base_image = $reward_gift_info['base_image'];
|
|
}
|
|
$max_config_num = Db::name('config')->where('key_title', 'blind_box_max_amount')->value('key_value');
|
|
$data = [
|
|
'now_gift_image' => localpath_to_netpath($reward_base_image),
|
|
'now_multi' => $params['multi'],
|
|
'next_gift_image' => '',
|
|
'next_multi' => 0,
|
|
'now_gift_name' => $reward_gift_info['gift_name'],
|
|
];
|
|
$min_num = $params['num'];
|
|
$max_num = $max_config_num;
|
|
$now_lock_gid = $params['gid'];
|
|
} else {
|
|
$map[] = ['a.term_id', '=', $term_id];
|
|
$map[] = ['a.stage', '>=', $stage];
|
|
|
|
$list = Db::name('blind_box_term_params')->alias('a')
|
|
->leftJoin('gift b', 'a.reward_gid = b.gid')
|
|
->field('a.*,b.base_image,b.gift_name')
|
|
->where($map)
|
|
->order('a.stage', 'asc')
|
|
->limit(2)->select();
|
|
// dump($list);
|
|
$data = [
|
|
'now_gift_image' => localpath_to_netpath($list[0]['base_image']),
|
|
'now_multi' => $list[0]['multi'],
|
|
'next_gift_image' => localpath_to_netpath($list[1]['base_image']),
|
|
'next_multi' => $list[1]['multi'],
|
|
'now_gift_name' => $list[0]['gift_name'],
|
|
];
|
|
$min_nums = $list[0]['num'];
|
|
$max_num = $list[1]['num'];
|
|
$max_num = $max_num - $min_nums;
|
|
$min_num = $term_info['gift_num'] - $min_nums;
|
|
$now_lock_gid = $list[0]['gid'];
|
|
}
|
|
//锁定礼物图片
|
|
$data['is_open'] = 1;
|
|
$data['term_id'] = $term_id;
|
|
$data['stage'] = $stage;
|
|
$data['pattern_id'] = $pattern_id;
|
|
$data['min_num'] = $min_num;
|
|
$data['max_num'] = $max_num;
|
|
$data['end_time'] = $term_info['real_end_time'] - time();
|
|
$data['head_pic'] = localpath_to_netpath($to_user_info['head_pic']);
|
|
$data['blind_info'] = [
|
|
'base_image' => localpath_to_netpath($gift_info['base_image']),
|
|
'gift_name' => $gift_info['gift_name'],
|
|
'gift_price' => $gift_info['gift_price'],
|
|
];
|
|
//限定礼物id
|
|
$lock_gift_info = Db::name('gift')->where('gid', $now_lock_gid)->find();
|
|
$lock_base_image = '';
|
|
$lock_gift_name = '';
|
|
if ($lock_gift_info) {
|
|
$lock_base_image = $lock_gift_info['base_image'];
|
|
$lock_gift_name = $lock_gift_info['gift_name'];
|
|
}
|
|
$lock_user_info = [
|
|
'send_head_pic' => '',
|
|
'send_uid' => 0,
|
|
'send_nick_name' => '',
|
|
'receive_head_pic' => '',
|
|
'receive_uid' => 0,
|
|
'receive_nick_name' => '',
|
|
'base_image' => localpath_to_netpath($lock_base_image),
|
|
'receive_base_image' => '',
|
|
'multi' => $data['now_multi']
|
|
];
|
|
|
|
$data['lock_gift_name'] = $lock_gift_name;
|
|
$map = [];
|
|
$map[] = ['term_id', '=', $term_id];
|
|
// $map[] = ['stage', '=', $stage];
|
|
// $map[] = ['gid', '=', $now_lock_gid];
|
|
$user_send_box_info = Db::name('user_blind_box_win')->where($map)->order('id','desc')->find();
|
|
if ($user_send_box_info) {
|
|
$send_uid = $user_send_box_info['uid'];
|
|
$receive_uid = $user_send_box_info['receive_uid'];
|
|
$uid_arr = [$send_uid, $receive_uid];
|
|
$user_list = Db::name('user')->field('uid,base64_nick_name,head_pic')
|
|
->where('uid', 'in', $uid_arr)->select();
|
|
$user_arr = [];
|
|
foreach ($user_list as $v) {
|
|
$user_arr[$v['uid']] = [
|
|
'head_pic' => localpath_to_netpath($v['head_pic']),
|
|
'nick_name' => mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8'),
|
|
];
|
|
}
|
|
$reward_gid = $user_send_box_info['reward_gid'];
|
|
$reward_gid_r = $user_send_box_info['reward_gid_r'];
|
|
$gift_arr = Db::name('gift')->whereIn('gid', [$reward_gid, $reward_gid_r])
|
|
->column('base_image', 'gid');
|
|
$lock_user_info = [
|
|
'send_head_pic' => $user_arr[$send_uid]['head_pic'] ?? '',
|
|
'send_uid' => $user_send_box_info['uid'],
|
|
'send_nick_name' => $user_arr[$send_uid]['nick_name'] ?? '',
|
|
'receive_head_pic' => $user_arr[$receive_uid]['head_pic'] ?? '',
|
|
'receive_uid' => $user_send_box_info['receive_uid'],
|
|
'receive_nick_name' => $user_arr[$receive_uid]['nick_name'] ?? '',
|
|
'base_image' => isset($gift_arr[$reward_gid]) ? localpath_to_netpath($gift_arr[$reward_gid]) : '',
|
|
'receive_base_image' => isset($gift_arr[$reward_gid_r]) ? localpath_to_netpath($gift_arr[$reward_gid_r]) : '',
|
|
'multi' => $user_send_box_info['multi']
|
|
];
|
|
|
|
}
|
|
$data['lock_user_info'] = $lock_user_info;
|
|
$map = [];
|
|
$map[] = ['term_id', '=', $term_id];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['receive_uid', '=', $to_uid];
|
|
$send_gift_list = Db::name('user_blind_box_log')->alias('a')
|
|
->leftJoin('gift b', 'a.gid = b.gid')
|
|
->field('b.gift_name,a.gift_num')
|
|
->where($map)
|
|
->order('id desc')
|
|
->limit(100)
|
|
->select();
|
|
foreach ($send_gift_list as &$v) {
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($to_user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
}
|
|
$data['send_gift_list'] = $send_gift_list;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
//数据录入
|
|
public function user_blind_box_log($insert_data)
|
|
{
|
|
return Db::name('user_blind_box_log')->insertAll($insert_data);
|
|
}
|
|
//锁定礼物写入
|
|
public function user_blind_box_win($insert_data)
|
|
{
|
|
return Db::name('user_blind_box_win')->insertAll($insert_data);
|
|
}
|
|
//送礼物日统计
|
|
public function user_blind_box_count_day($uid, $gid, $gift_num, $gift_price, $total_gift_price)
|
|
{
|
|
$day_time = date('Ymd');
|
|
$day_time = intval($day_time);
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['day_time', '=', $day_time];
|
|
$map[] = ['gid', '=', $gid];
|
|
$info = Db::name('user_blind_box_count_day')->where($map)->find();
|
|
if ($info) {
|
|
Db::name('user_blind_box_count_day')->where('id', $info['id'])
|
|
->inc('gift_num', $gift_num)
|
|
->inc('total_gift_price', $total_gift_price)
|
|
->update(['update_time' => time()]);
|
|
} else {
|
|
$data = [
|
|
'uid' => $uid,
|
|
'day_time' => $day_time,
|
|
'gid' => $gid,
|
|
'gift_num' => $gift_num,
|
|
'gift_price' => $gift_price,
|
|
'total_gift_price' => $total_gift_price,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_blind_box_count_day')->insert($data);
|
|
}
|
|
|
|
}
|
|
//送礼物排行榜
|
|
public function get_blind_box_rank($time_type, $page, $page_limit)
|
|
{
|
|
$day_time = date('Ymd');
|
|
$week_start_day = date('Ymd', strtotime("this week"));
|
|
$map = [];
|
|
$start_time = $day_time;
|
|
if ($time_type == 2) {
|
|
$start_time = $week_start_day;
|
|
}
|
|
$map[] = ['day_time', '>=', $start_time];
|
|
$list = Db::name('user_blind_box_count_day')->alias('a')
|
|
->leftJoin('user b', 'a.uid = b.uid')
|
|
->field('a.uid,sum(a.total_gift_price) as total_gift_price,b.base64_nick_name,b.head_pic')
|
|
->where($map)
|
|
->group('uid')
|
|
->order('total_gift_price desc')
|
|
->page($page, $page_limit)
|
|
->select();
|
|
|
|
foreach ($list as &$v) {
|
|
$v['head_pic'] = localpath_to_netpath($v['head_pic']);
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$maps = [];
|
|
$maps[] = ['a.day_time', '>=', $start_time];
|
|
$maps[] = ['a.uid', '=', $v['uid']];
|
|
$gift_list = Db::name('user_blind_box_count_day')->alias('a')
|
|
->leftJoin('gift b', 'a.gid = b.gid')
|
|
->where($maps)
|
|
->field('sum(gift_num) as gift_num,b.base_image')
|
|
->group('a.gid')
|
|
->order('a.gift_price desc, gift_num desc')
|
|
->limit(3)
|
|
->select();
|
|
foreach ($gift_list as &$vv) {
|
|
$vv['base_image'] = localpath_to_netpath($vv['base_image']);
|
|
}
|
|
$v['gift_list'] = $gift_list;
|
|
}
|
|
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $list];
|
|
}
|
|
//开奖记录
|
|
public function get_blind_box_win_log($page, $page_limit)
|
|
{
|
|
$map = [];
|
|
$map[] = ['is_win', '=', 1];
|
|
$list = Db::name('user_blind_box_win')->alias('a')
|
|
->leftJoin('gift b', 'a.reward_gid = b.gid')
|
|
->leftJoin('gift c', 'a.reward_gid_r = c.gid')
|
|
->field('a.uid,a.receive_uid,a.gid,a.gift_num,a.multi,a.gift_price,b.gift_name,b.base_image,
|
|
c.base_image as receive_base_image,a.add_time,c.gift_name as receive_gift_name')
|
|
->where($map)
|
|
->page($page, $page_limit)
|
|
->order('id desc')
|
|
->select();
|
|
$uid_arr = array_column($list, 'uid');
|
|
$receive_arr = array_column($list, 'receive_uid');
|
|
$user_arr = Db::name('user')->where('uid', 'in', array_merge($uid_arr, $receive_arr))
|
|
->column('base64_nick_name,head_pic', 'uid');
|
|
foreach ($list as &$v) {
|
|
$v['head_pic'] = localpath_to_netpath($user_arr[$v['uid']]['head_pic']);
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($user_arr[$v['uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$v['receive_head_pic'] = localpath_to_netpath($user_arr[$v['receive_uid']]['head_pic']);
|
|
$v['receive_nick_name'] = mb_convert_encoding(base64_decode($user_arr[$v['receive_uid']]['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$v['base_image'] = localpath_to_netpath($v['base_image']);
|
|
$v['receive_base_image'] = localpath_to_netpath($v['receive_base_image']);
|
|
$v['gift_num'] = $v['multi'];
|
|
}
|
|
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $list];
|
|
}
|
|
//玩法介绍
|
|
public function get_blind_box_note()
|
|
{
|
|
$content = Db::name('config')->where('key_title', 'blind_box_note')->value('key_value');
|
|
return ['code' => 200, 'msg' => '获取数据成功', 'data' => $content];
|
|
}
|
|
|
|
// //结束一期盲盒活动
|
|
// public function close_blind_box()
|
|
// {
|
|
// $map = [];
|
|
// $map[] = ['status', '=', 2];
|
|
// $map[] = ['real_end_time', '<', time()];
|
|
// $result = Db::name('blind_box_term')->where($map)->update(['status' => 3, 'update_time' => time()]);
|
|
// if ($result) {
|
|
// $push_data = [];
|
|
// $push_data['code'] = 316;
|
|
// $push_data['msg'] = '活动结束';
|
|
// $push_data['data'] = [];
|
|
// model('api/WebSocketPush')->send_to_all($push_data);
|
|
// }
|
|
// }
|
|
// //活动结束奖励
|
|
// public function blind_box_reward()
|
|
// {
|
|
// $map = [];
|
|
// $map[] = ['status', '=', 3];
|
|
// $info = Db::name('blind_box_term')->where($map)->find();
|
|
// if ($info) {
|
|
// $term_id = $info['id'];
|
|
// $stage = $info['stage'];
|
|
// // for ($i = 1; $i <= $stage; $i++) {
|
|
// // $map = [];
|
|
// // $map[] = ['term_id', '=', $term_id];
|
|
// // $map[] = ['stage', '=', $i];
|
|
// // $map[] = ['is_win', '=', 2];
|
|
// // $win_info = Db::name('user_blind_box_win')->where($map)->order('id', 'desc')->find();
|
|
// // if ($win_info) {
|
|
// // $remarks = '盲盒巡乐会第' . $term_id . '期第' . $i . '阶段';
|
|
// // model('api/UserGiftPack')->change_user_gift_pack($win_info['uid'], $win_info['gid'], $win_info['gift_num'], 5, $remarks);
|
|
// // model('api/UserGiftPack')->change_user_gift_pack($win_info['receive_uid'], $win_info['gid'], $win_info['gift_num'], 5, $remarks);
|
|
// // Db::name('user_blind_box_win')->where('id', $win_info['id'])->update(['is_win' => 1, 'update_time' => time()]);
|
|
// // }
|
|
// // }
|
|
// $map = [];
|
|
// $map[] = ['term_id', '=', $term_id];
|
|
// $map[] = ['stage', '=', $stage];
|
|
// $map[] = ['is_win', '=', 2];
|
|
// $win_info = Db::name('user_blind_box_win')->where($map)->order('id', 'desc')->find();
|
|
// if ($win_info) {
|
|
// $remarks = '盲盒巡乐会第' . $term_id . '期第' . $stage . '阶段';
|
|
// model('api/UserGiftPack')->change_user_gift_pack($win_info['uid'], $win_info['reward_gid'], $win_info['multi'], 5, $remarks);
|
|
// model('api/UserGiftPack')->change_user_gift_pack($win_info['receive_uid'], $win_info['reward_gid_r'], $win_info['multi'], 5, $remarks);
|
|
// Db::name('user_blind_box_win')->where('id', $win_info['id'])->update(['is_win' => 1, 'update_time' => time()]);
|
|
// }
|
|
// Db::name('blind_box_term')->where('id', $info['id'])->update(['status' => 4, 'update_time' => time()]);
|
|
// }
|
|
// }
|
|
//结束一期盲盒活动
|
|
public function close_blind_box()
|
|
{
|
|
$map = [];
|
|
$map[] = ['status', '=', 2];
|
|
$map[] = ['real_end_time', '<', time()];
|
|
|
|
$result = Db::name('blind_box_term')->where($map)->update(['status' => 3, 'update_time' => time()]);
|
|
if ($result) {
|
|
$content = '';
|
|
$map = [];
|
|
$map[] = ['status', '=', 3];
|
|
$info = Db::name('blind_box_term')->where($map)->order('id', 'desc')->find();
|
|
if($info) {
|
|
$term_id = $info['id'];
|
|
$stage = $info['stage'];
|
|
$map = [];
|
|
$map[] = ['term_id', '=', $term_id];
|
|
// $map[] = ['stage', '=', $stage];
|
|
$map[] = ['is_win', '=', 2];
|
|
$win_info = Db::name('user_blind_box_win')->where($map)->order('id', 'desc')->find();
|
|
|
|
if($win_info) {
|
|
$base64_nick_name = Db::name('user')->where('uid', $win_info['uid'])->value('base64_nick_name');
|
|
$nick_name = mb_convert_encoding(base64_decode($base64_nick_name), 'UTF-8', 'UTF-8');
|
|
$content = '恭喜' . $nick_name . '获得巡乐会最终大奖!';
|
|
}
|
|
}
|
|
|
|
$push_data = [];
|
|
$push_data['code'] = 316;
|
|
$push_data['msg'] = '活动结束';
|
|
$push_data['data'] = [
|
|
'content' => $content,
|
|
];
|
|
model('api/WebSocketPush')->send_to_all($push_data);
|
|
}
|
|
}
|
|
//活动结束奖励
|
|
public function blind_box_reward()
|
|
{
|
|
$map = [];
|
|
$map[] = ['status', '=', 3];
|
|
$info = Db::name('blind_box_term')->where($map)->order('id', 'desc')->find();
|
|
if ($info) {
|
|
$term_id = $info['id'];
|
|
$stage = $info['stage'];
|
|
|
|
$map = [];
|
|
$map[] = ['term_id', '=', $term_id];
|
|
// $map[] = ['stage', '=', $stage];
|
|
$map[] = ['is_win', '=', 2];
|
|
$win_info = Db::name('user_blind_box_win')->where($map)->order('id', 'desc')->find();
|
|
if ($win_info) {
|
|
$remarks = '盲盒巡乐会第' . $term_id . '期第' . $stage . '阶段';
|
|
model('api/UserGiftPack')->change_user_gift_pack($win_info['uid'], $win_info['reward_gid'], $win_info['multi'], 5, $remarks);
|
|
model('api/UserGiftPack')->change_user_gift_pack($win_info['receive_uid'], $win_info['reward_gid_r'], $win_info['multi'], 5, $remarks);
|
|
Db::name('user_blind_box_win')->where('id', $win_info['id'])->update(['is_win' => 1, 'update_time' => time()]);
|
|
}
|
|
Db::name('blind_box_term')->where('id', $info['id'])->update(['status' => 4, 'update_time' => time()]);
|
|
}
|
|
}
|
|
|
|
} |