初始化代码
This commit is contained in:
513
application/api/model/GiftMultiple.php
Normal file
513
application/api/model/GiftMultiple.php
Normal file
@@ -0,0 +1,513 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class GiftMultiple extends Model
|
||||
{
|
||||
|
||||
public function send_gift_multiple($uid, $to_uid_list, $rid, $gid, $num, $send_type, $help_uid)
|
||||
{
|
||||
$config = get_uncache_system_config();
|
||||
if($config['lucky_gift_earnings_rate'] > 1){
|
||||
$config['lucky_gift_earnings_rate'] = 0.05;
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['gid', '=', $gid];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$gift_info = db::name('gift')->where($map)->find();
|
||||
if (empty($gift_info)) {
|
||||
return ['code' => 201, 'msg' => '打赏礼物信息不存在', 'data' => null];
|
||||
}
|
||||
$gift_info['play_image'] = localpath_to_netpath($gift_info['play_image']);
|
||||
$gift_info['base_image'] = localpath_to_netpath($gift_info['base_image']);
|
||||
if (ceil($num) != $num) {
|
||||
return ['code' => 201, 'msg' => '打赏礼物数量必须为整数', 'data' => null];
|
||||
}
|
||||
if ($num < 1) {
|
||||
return ['code' => 201, 'msg' => '打赏礼物数量必须大于零', 'data' => null];
|
||||
}
|
||||
|
||||
if(empty($gift_info['mid'])){
|
||||
return ['code' => 201, 'msg' => '该礼物尚未设置倍率', 'data' => null];
|
||||
}
|
||||
|
||||
$gift_multiple_type = db::name('gift_multiple_type')->where('id', $gift_info['mid'])->where('is_delete', 1)->find();
|
||||
if(!$gift_multiple_type){
|
||||
return ['code' => 201, 'msg' => '该礼物尚未设置倍率', 'data' => null];
|
||||
}
|
||||
|
||||
$gift_multiple_rate_list = db::name('gift_multiple_rate')->where('pid', $gift_info['mid'])->where('is_delete', 1)->select();
|
||||
if(empty($gift_multiple_rate_list)){
|
||||
return ['code' => 201, 'msg' => '该礼物尚未设置倍率', 'data' => null];
|
||||
}
|
||||
|
||||
$map = [];
|
||||
$map[] = ['rid', '=', $rid];
|
||||
$map[] = ['is_delete', '=', 1];
|
||||
$room_info = db::name('room')->where($map)->find();
|
||||
if (empty($room_info)) {
|
||||
return ['code' => 201, 'msg' => '所处房间不存在', 'data' => null];
|
||||
}
|
||||
$room_owner_info = db::name('user')->where('uid', $room_info['room_owner_uid'])->find();
|
||||
|
||||
$to_uid_data = explode(',', $to_uid_list);
|
||||
$to_uid_data = array_values(array_unique($to_uid_data));
|
||||
if (in_array($uid, $to_uid_data)) {
|
||||
return ['code' => 201, 'msg' => '不能给自己打赏', 'data' => null];
|
||||
}
|
||||
$map = [];
|
||||
$map[] = ['uid', 'in', $to_uid_data];
|
||||
$user_list = db::name('user')->field('uid,is_tester,money,integral,nick_name,base64_nick_name,head_pic,europe_key,airship')->where($map)->select();
|
||||
if (empty($user_list)) {
|
||||
return ['code' => 201, 'msg' => '打赏礼物对象不能为空', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
if (count($to_uid_data) != count($user_list)) {
|
||||
return ['code' => 201, 'msg' => '打赏礼物对象不存在', 'data' => null];
|
||||
}
|
||||
|
||||
$send_count = count($user_list); //赠送总人数
|
||||
$total_send_num = $num * $send_count; //赠送礼物总数量
|
||||
$total_send_amount = $gift_info['gift_price'] * $num * $send_count; //赠送礼物总价值
|
||||
|
||||
$now_time = time();
|
||||
$user_info = db::name('user')->where('uid', $uid)->find();
|
||||
|
||||
if ($send_type == 1) { //直接购买
|
||||
|
||||
if($user_info['is_teenager'] == 1){
|
||||
return ['code' => 201, 'msg' => '青少年模式已开启', 'data' => null];
|
||||
}
|
||||
|
||||
//扣款时进行用户资金是否充足判断
|
||||
$user_auction_price = model('NewRoom')->get_user_auction_price($uid);
|
||||
if ($user_info['integral'] < ($total_send_amount + $user_auction_price)) {
|
||||
return ['code' => 201, 'msg' => '账户资金不足', 'data' => null];
|
||||
}
|
||||
} else {
|
||||
return ['code' => 201, 'msg' => '参数非法', 'data' => null];
|
||||
}
|
||||
|
||||
// $redis = connectionRedis();
|
||||
// $user_gift_multiple_redis_list = [];
|
||||
// $keyname = "multiple:list:type:".$gift_info['mid'];
|
||||
|
||||
//当前主持比例
|
||||
$room_host_commission = 0;
|
||||
if($room_info['room_owner_uid'] != $room_info['room_host_uid']){
|
||||
$room_host_info = db::name('room_host')->where('rid', $rid)->where('uid', $room_info['room_host_uid'])->find();
|
||||
if(!empty($room_host_info)){
|
||||
$room_host_commission = $room_host_info['ratio'];
|
||||
}
|
||||
}
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
if ($user_info['is_tester'] == 1) { //测试用户只推送赠送礼物信息
|
||||
if ($send_type == 1) { //直接购买
|
||||
//计算赠送礼物总资金
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($uid, -$total_send_amount, 2, 29, "打赏幸运礼物", $uid, 0, $rid);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
}else {
|
||||
return ['code' => 201, 'msg' => '参数非法', 'data' => null];
|
||||
}
|
||||
|
||||
//赠送礼物增加财富值 贡献值
|
||||
$reslut = model('User')->change_user_contribution_value($uid, $total_send_amount);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试1', 'data' => null];
|
||||
}
|
||||
//赠送者增加房间贡献值
|
||||
$reslut = model('User')->change_user_room_contribution_value($uid, $rid, $total_send_amount);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试4', 'data' => null];
|
||||
}
|
||||
|
||||
//日贡献
|
||||
model('Statistics')->day_contribution($uid, $rid, $total_send_amount, 2);
|
||||
|
||||
//房间礼物墙
|
||||
$reslut = model('GiftWall')->room_gift_wall($rid, $gid, $total_send_num, $total_send_amount);
|
||||
if($reslut['code'] == 201){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试5', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
db::name('room')->where('rid', $rid)->inc('hot_value', $total_send_amount)->inc('today_hot_value', $total_send_amount)->update();
|
||||
|
||||
//当前礼物倍率配置
|
||||
$gift_multiple_rate_data = '';
|
||||
$total_num = 0;
|
||||
$win_multiple_data = [];
|
||||
foreach ($gift_multiple_rate_list as $a => $b){
|
||||
$da = $b['id'].'-'.$b['multiple'].'-'.$b['rate_num'].';';
|
||||
$gift_multiple_rate_data .= $da;
|
||||
$total_num += $b['rate_num'];
|
||||
for($i = 0; $i < $b['rate_num']; $i++){
|
||||
$win_multiple_data[] = $b['id'];
|
||||
}
|
||||
}
|
||||
|
||||
shuffle($win_multiple_data);
|
||||
|
||||
// $room_guild_info = model('Guild')->user_guild_info($room_info['room_owner_uid']);
|
||||
$total_win_price = 0;
|
||||
$user_win_multiple = [];
|
||||
foreach ($user_list as $k => $v) {
|
||||
//该用户是否有公会及公会收益
|
||||
// $user_guild_info = model('Guild')->user_guild_info($v['uid']);
|
||||
$gift_total_price = $gift_info['gift_price'] * $num;
|
||||
|
||||
// $win_multiple_data = $redis->blpop($keyname, 2);
|
||||
// if(empty($win_multiple_data)){
|
||||
// return ['code' => 201, 'msg' => '', 'data' => null];
|
||||
// }else{
|
||||
// $win_multiple_data_data = explode('-', $win_multiple_data[1]);
|
||||
// $bl_id = $win_multiple_data_data[0];
|
||||
// $win_multiple = $win_multiple_data_data[1];
|
||||
|
||||
// $data = [];
|
||||
// $data['bl_id'] = $bl_id;
|
||||
// $data['multiple'] = $win_multiple;
|
||||
// $user_gift_multiple_redis_list[] = $data;
|
||||
// }
|
||||
|
||||
//增加当期开启数量
|
||||
// $reslut = db::name('gift_multiple_log')->where('bl_id', $bl_id)->inc('open_num', 1)->update();
|
||||
// if(!$reslut){
|
||||
// Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
// return ['code' => 201, 'msg' => '请重试', 'data' => null];
|
||||
// }
|
||||
|
||||
//多次数量累计倍率
|
||||
$win_multiple = 0;
|
||||
for($i = 1; $i <= $num; $i++){
|
||||
//随机抽取倍率id
|
||||
$win_key = array_rand($win_multiple_data);
|
||||
$win_gift_multiple_rate_id = $win_multiple_data[$win_key];
|
||||
$multiple = db::name('gift_multiple_rate')->where('id', $win_gift_multiple_rate_id)->value('multiple');
|
||||
$win_multiple += $multiple;
|
||||
}
|
||||
|
||||
//获取金币数
|
||||
// $win_price = $gift_total_price * $win_multiple;
|
||||
$win_price = $gift_info['gift_price'] * $win_multiple;
|
||||
$total_win_price += $win_price;
|
||||
// $room_owner_profits = $gift_total_price * $room_owner_info['room_owner_lucky_commission'];
|
||||
// $room_owner_profit = $room_owner_profits * (1 - $room_host_commission);
|
||||
// $room_host_profit = $room_owner_profits * $room_host_commission;
|
||||
if($room_info['is_earnings'] == 1){
|
||||
$room_owner_profits = $gift_total_price * 0.02;
|
||||
$room_owner_profit = $room_owner_profits * 1;
|
||||
$room_host_profit = $room_owner_profits * 0;
|
||||
}else{
|
||||
$room_owner_profits = 0;
|
||||
$room_owner_profit = 0;
|
||||
$room_host_profit = 0;
|
||||
}
|
||||
// $room_host_profit = $gift_total_price * 0.01;
|
||||
// $receiver_profit = $gift_total_price * $config['lucky_gift_earnings_rate'];
|
||||
$receiver_profit = $gift_total_price * 0.002;
|
||||
// $platform_profit = $gift_total_price - $room_owner_profit - $room_host_profit - $receiver_profit;
|
||||
$platform_profit = $gift_total_price - $room_owner_profits - $receiver_profit;
|
||||
$data = [];
|
||||
// $data['bl_id'] = $bl_id;
|
||||
$data['uid'] = $uid;
|
||||
$data['rid'] = $rid;
|
||||
// $data['guild_id'] = $user_guild_info['guild_id'];
|
||||
// $data['room_guild_id'] = $room_guild_info['guild_id'];
|
||||
$data['room_uid'] = $room_info['room_owner_uid'];
|
||||
$data['room_host_uid'] = $room_info['room_host_uid'];
|
||||
$data['receive_uid'] = $v['uid'];
|
||||
$data['gid'] = $gid;
|
||||
$data['gift_name'] = $gift_info['gift_name'];
|
||||
$data['gift_price'] = $gift_info['gift_price'];
|
||||
$data['gift_num'] = $num;
|
||||
$data['gift_total_price'] = $gift_total_price;
|
||||
$data['platform_profit'] = $platform_profit;
|
||||
$data['receiver_profit'] = $receiver_profit;
|
||||
$data['room_owner_profit'] = $room_owner_profit;
|
||||
$data['room_host_profit'] = $room_host_profit;
|
||||
$data['win_multiple'] = $win_multiple;
|
||||
$data['win_price'] = $win_price;
|
||||
// $data['config_text'] = $gift_multiple_rate_data;
|
||||
// $data['total_multiple_num'] = $total_num;
|
||||
$data['gift_from_type'] = $send_type;
|
||||
$data['is_tester'] = $user_info['is_tester'];
|
||||
$data['add_time'] = $now_time;
|
||||
$data['update_time'] = $now_time;
|
||||
$sid = db::name('user_send_gift_rate')->insertGetId($data);
|
||||
if (empty($sid)) {
|
||||
Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
return ['code' => 201, 'msg' => "请重试3", 'data' => null];
|
||||
}
|
||||
|
||||
//发送数据开始
|
||||
$message_data_temp = [
|
||||
'from_uid' => $uid,
|
||||
'to_uid' => $v['uid'],
|
||||
'gift_name' => $gift_info['gift_name'],
|
||||
'gift_price' => $gift_info['gift_price'],
|
||||
'gift_num' => $num,
|
||||
'rid' => $rid,
|
||||
];
|
||||
$message_data[] = $message_data_temp;
|
||||
|
||||
//增加厅主收益记录
|
||||
if ($room_owner_profit > 0) {
|
||||
$change_value = $room_owner_profit / $config['exchange_rate'];
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($room_info['room_owner_uid'], $change_value, 1, 32, "打赏厅主流水收益", $uid, $sid, $rid);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
//收益记录
|
||||
model('Statistics')->day_room_profit($room_info['room_owner_uid'], $rid, $change_value, 1);
|
||||
}
|
||||
// if($room_host_profit > 0 && !empty($room_info['room_host_uid'])){
|
||||
if($room_host_profit > 0 && $room_info['room_host_uid'] > 0){
|
||||
$change_value = $room_host_profit / $config['exchange_rate'];
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($room_info['room_host_uid'], $change_value, 1, 33, "打赏主持流水收益", $uid, $sid, $rid);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
//收益记录
|
||||
model('Statistics')->day_room_profit($room_info['room_host_uid'], $rid, $change_value, 2);
|
||||
}
|
||||
|
||||
//礼物接收者收益
|
||||
if ($receiver_profit > 0) {
|
||||
$change_value = $receiver_profit / $config['exchange_rate'];
|
||||
$reslut = model('admin/User')->change_user_money_by_user_info($v, $change_value, 1, 31, "礼物收入", $uid, $sid, $rid);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//收礼物增加魅力值
|
||||
// $reslut = model('User')->change_user_charm_value($v['uid'], $gift_total_price);
|
||||
// if ($reslut['code'] == 201) {
|
||||
// Db::rollback();
|
||||
// // $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
// return ['code' => 201, 'msg' => '请重试4', 'data' => null];
|
||||
// }
|
||||
//接受者增加房间魅力值
|
||||
// $reslut = model('User')->change_user_room_charm_value($v['uid'], $rid, $gift_total_price,$uid);
|
||||
// if ($reslut['code'] == 201) {
|
||||
// Db::rollback();
|
||||
// // $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
// return ['code' => 201, 'msg' => '请重试4', 'data' => null];
|
||||
// }
|
||||
|
||||
//日收益
|
||||
model('Statistics')->day_charm($v['uid'], $rid, $gift_total_price, 2);
|
||||
|
||||
//收礼物墙
|
||||
$reslut = model('GiftWall')->user_receive_gift_wall($v['uid'], $gid, $num, $uid);
|
||||
if($reslut['code'] == 201){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
|
||||
if($gift_total_price > 0){
|
||||
if($room_info['cate_id'] == 29){
|
||||
$reslut = model('DatingRoom')->user_send_gift_heartbeat_line($uid, $v['uid'], $rid, $gift_total_price, $help_uid);
|
||||
if($reslut['code'] == 201){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试7', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
if($room_info['cate_id'] == 28 && $uid != $v['uid']){
|
||||
$reslut = model('AuctionRoom')->record_user_auction_info($uid, $v['uid'], $rid, $gid, $gift_info['gift_price'], $num, $room_info['room_host_uid']);
|
||||
if($reslut['code'] == 201){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试7', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
if($room_info['cate_id'] == 27){
|
||||
$reslut = model('KtvRoom')->send_gift_add_song_time($uid, $v['uid'], $rid, $gid, $num, $gift_total_price);
|
||||
if($reslut['code'] == 201){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => '请重试7', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($win_multiple > 0){
|
||||
$to_uid_win_multiple = [];
|
||||
$to_uid_win_multiple['recived_uid'] = $v['uid'];
|
||||
$to_uid_win_multiple['head_pic'] = $v['head_pic'];
|
||||
$to_uid_win_multiple['base64_nick_name'] = $v['base64_nick_name'];
|
||||
$to_uid_win_multiple['win_multiple'] = $win_multiple;
|
||||
$user_win_multiple[] = $to_uid_win_multiple;
|
||||
}
|
||||
|
||||
$user_list[$k]['win_multiple'] = $win_multiple;
|
||||
}
|
||||
|
||||
//计算返币资金
|
||||
if($total_win_price > 0){
|
||||
$reslut = model('admin/User')->change_user_money_by_uid($uid, $total_win_price, 2, 30, "幸运礼物爆币获取", $uid, 0, $rid);
|
||||
if ($reslut['code'] == 201) {
|
||||
Db::rollback();
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//更新房间在线用户财富值
|
||||
if(in_array($room_info['cate_id'], [27,28])){
|
||||
$reslut = model('RoomBossMicro')->update_room_visitor_value($uid, $rid, $total_send_amount);
|
||||
if($reslut['code'] != 200){
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//发送开始
|
||||
// if($message_data) {
|
||||
// model('api/AsyncPushMessage')->store_message($message_data, 2);
|
||||
// }
|
||||
|
||||
} else{
|
||||
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
Db::commit();
|
||||
|
||||
model('Room')->push_room_micro_data($rid); //推送最新房间麦位信息
|
||||
// $user_decorate_info = model('api/room')->get_room_user_vip($uid, 0);
|
||||
// $push_room_pendant_data = [];
|
||||
// $push_is_open = '';
|
||||
|
||||
$room_push_data = [];
|
||||
$server_push_data = [];
|
||||
$gift_list = [];
|
||||
$gift_list[] = $gift_info;
|
||||
foreach ($user_list as $k => $v) {
|
||||
foreach ($gift_list as $m => $n) {
|
||||
$ls_data = [];
|
||||
$ls_data['rid'] = $rid;
|
||||
$ls_data['send_user_info']['uid'] = $uid;
|
||||
$ls_data['send_user_info']['head_pic'] = localpath_to_netpath($user_info['head_pic']);
|
||||
$ls_data['send_user_info']['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$ls_data['recived_user_info']['uid'] = $v['uid'];
|
||||
$ls_data['recived_user_info']['head_pic'] = localpath_to_netpath($v['head_pic']);
|
||||
$ls_data['recived_user_info']['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
// $ls_data['lwtp_base_image'] = $user_decorate_info['data']['lwtp_base_image'];
|
||||
$ls_data['gift_price'] = $n['gift_price'];
|
||||
$ls_data['gift_name'] = $n['gift_name'];
|
||||
$ls_data['play_image'] = $n['play_image'];
|
||||
$ls_data['base_image'] = $n['base_image'];
|
||||
$ls_data['is_multiple_gift'] = 1;
|
||||
$ls_data['num'] = $num;
|
||||
$ls_data['win_multiple'] = $v['win_multiple'];
|
||||
$ls_data['is_public_screen'] = $n['is_public_screen'];
|
||||
$ls_data['is_public_server'] = $n['is_public_server'];
|
||||
if ($ls_data['is_public_server'] == 1) {
|
||||
$server_push_data[] = $ls_data;
|
||||
}
|
||||
$room_push_data[] = $ls_data;
|
||||
}
|
||||
}
|
||||
// if (!empty($server_push_data)) {
|
||||
// $pust_data = [];
|
||||
// $pust_data['code'] = 306;
|
||||
// $pust_data['msg'] = '打赏礼物';
|
||||
// // $pust_data['data'] = $server_push_data;
|
||||
// $pust_data['data']['room_info']['rid'] = $room_info['rid'];
|
||||
// $pust_data['data']['room_info']['room_name'] = mb_convert_encoding(base64_decode($room_info['base64_room_name']), 'UTF-8', 'UTF-8');
|
||||
// $pust_data['data']['gift_list'] = $server_push_data;
|
||||
// model('api/WebSocketPush')->send_to_all($pust_data);
|
||||
// }
|
||||
if (!empty($room_push_data)) {
|
||||
$pust_data = [];
|
||||
$pust_data['code'] = 302;
|
||||
$pust_data['msg'] = '打赏礼物';
|
||||
$pust_data['data'] = $room_push_data;
|
||||
model('api/WebSocketPush')->send_to_group($room_info['rid'], $pust_data);
|
||||
}
|
||||
if(!empty($user_win_multiple)){
|
||||
foreach ($user_win_multiple as $k => $v){
|
||||
// dump($v);
|
||||
$push_user_multiple = [];
|
||||
$push_user_multiple['send_user_info']['uid'] = $uid;
|
||||
$push_user_multiple['send_user_info']['head_pic'] = localpath_to_netpath($user_info['head_pic']);
|
||||
$push_user_multiple['send_user_info']['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$push_user_multiple['recived_user_info']['uid'] = $v['recived_uid'];
|
||||
$push_user_multiple['recived_user_info']['head_pic'] = localpath_to_netpath($v['head_pic']);
|
||||
$push_user_multiple['recived_user_info']['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||||
$push_user_multiple['gift_name'] = $gift_info['gift_name'];
|
||||
$push_user_multiple['gift_price'] = $gift_info['gift_price'];
|
||||
$push_user_multiple['base_image'] = localpath_to_netpath($gift_info['base_image']);
|
||||
$push_user_multiple['num'] = $num;
|
||||
$push_user_multiple['win_multiple'] = $v['win_multiple'];
|
||||
|
||||
$push_data = [];
|
||||
$push_data['code'] = 357;
|
||||
$push_data['msg'] = '爆币推送';
|
||||
$push_data['data'] = $push_user_multiple;
|
||||
$reslut = model('api/WebSocketPush')->send_to_group($room_info['rid'], $push_data);
|
||||
// dump($reslut);
|
||||
}
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['integral'] = db::name('user')->where('uid', $uid)->value('integral');
|
||||
$data['integral'] = (int)$data['integral'];
|
||||
$data['data'] = $room_push_data;
|
||||
return ['code' => 200, 'msg' => "打赏成功", 'data' => $data];
|
||||
} catch (\Exception $e) {
|
||||
dump($e);
|
||||
// $this->redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_redis_list);
|
||||
//回滚事务
|
||||
Db::rollback();
|
||||
return ['code' => 201, 'msg' => "请重试5", 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//返还用户抽中礼物到奖池
|
||||
private function redis_gift_multiple_data_rollback($redis, $keyname, $user_gift_multiple_list)
|
||||
{
|
||||
$insert_data = [];
|
||||
foreach ($user_gift_multiple_list as $k => $v) {
|
||||
$insert_data[] = $v['bl_id'] . '-' . $v['multiple'];
|
||||
}
|
||||
if (!empty($insert_data)) {
|
||||
array_unshift($insert_data, $keyname);
|
||||
//右侧取 右侧插入
|
||||
call_user_func_array([$redis, 'lPush'], $insert_data);
|
||||
}
|
||||
return ['code' => 200, 'msg' => '返还成功', 'data' => null];
|
||||
}
|
||||
|
||||
public function txt(){
|
||||
$num = input('num', 0);
|
||||
for($i=1; $i <= $num; $i++){
|
||||
dump($i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user