送礼优化 相关
This commit is contained in:
@@ -187,6 +187,7 @@ class Room extends BaseCom
|
||||
|
||||
|
||||
//直播间送礼
|
||||
//
|
||||
public function room_give_gift()
|
||||
{
|
||||
$key_name = "api:room:gift:" . $this->uid;
|
||||
@@ -236,7 +237,7 @@ class Room extends BaseCom
|
||||
public function room_online_list()
|
||||
{
|
||||
$room_id = input('room_id', 0);
|
||||
if($room_id){
|
||||
if(!$room_id){
|
||||
return V(0, '房间不存在');
|
||||
}
|
||||
$page = input('page', 1);
|
||||
@@ -249,7 +250,7 @@ class Room extends BaseCom
|
||||
public function room_user_home()
|
||||
{
|
||||
$room_id = input('room_id', 0);
|
||||
if($room_id){
|
||||
if(!$room_id){
|
||||
return V(0, '房间不存在');
|
||||
}
|
||||
$user_id = input('user_id', 0);
|
||||
@@ -352,7 +353,7 @@ class Room extends BaseCom
|
||||
public function room_info()
|
||||
{
|
||||
$room_id = input('room_id', 0);
|
||||
if($room_id){
|
||||
if(!$room_id){
|
||||
return V(0, '房间不存在');
|
||||
}
|
||||
$reslut = model('Room')->room_info($this->uid, $room_id);
|
||||
|
||||
@@ -68,11 +68,12 @@ class RoomAuction extends BaseCom
|
||||
$gift_id = input('gift_id');
|
||||
$num = input('num');
|
||||
$type = input('type',1);//1金币购买 2送背包礼物
|
||||
$gift_bag_id = input('gift_bag_id',0);
|
||||
$pool_gift_id = db::name('bb_lottery_config')->where(['key' => 'pool_gift_id'])->value('value');
|
||||
if($gift_id == $pool_gift_id){
|
||||
return V(0, '此礼物不能进行此操作');
|
||||
}
|
||||
$reslut = model('RoomAuction')->room_auction_join($auction_id,$user_id,$gift_id,$num,$type);
|
||||
$reslut = model('RoomAuction')->room_auction_join($auction_id,$user_id,$gift_id,$num,$type,$gift_bag_id);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,13 +16,19 @@ class SendGift extends BaseCom
|
||||
{
|
||||
$key_name = "api:send:gift:" . $this->uid;
|
||||
redis_lock_exits($key_name);
|
||||
$room_id = input('room_id', 0);//房间ID
|
||||
$gift_id = input('gift_id', 0);//礼物ID
|
||||
$gift_num = (int)input('gift_num', 1);//礼物数量
|
||||
|
||||
$room_id = input('room_id/d', 0);//房间ID
|
||||
$gift_id = input('gift_id/d', 0);//礼物ID
|
||||
$gift_num = (int)input('gift_num/d', 1);//礼物数量
|
||||
$to_uid = input('to_uid', 0);//收礼人ID,逗号隔开的字符串
|
||||
$type = input('type', 1);//1金币购买 2送背包礼物
|
||||
$pit_number = input('pit_number', 0);
|
||||
$heart_id = input('heart_id', 0);//助力时的 ID
|
||||
$type = input('type/d', 1);//1金币购买 2送背包礼物
|
||||
$heart_id = input('heart_id/d', 0);//助力时的 ID
|
||||
$gift_bag_id = input('gift_bag_id/d', 0);//盲盒类型ID 7-初级,8-中级,9-高级
|
||||
|
||||
if($room_id <= 0 || $gift_id <= 0 || $to_uid <= 0 || $type <= 0){
|
||||
redis_unlocks($key_name);
|
||||
return V(0, '参数错误');
|
||||
}
|
||||
|
||||
//获取幸运币
|
||||
$pool_gift_id = db::name('bb_lottery_config')->where(['key' => 'pool_gift_id'])->value('value');
|
||||
@@ -34,13 +40,10 @@ class SendGift extends BaseCom
|
||||
//获取房间类型 1:交友/pk(二卡八),2:练歌房(声网点歌),3:亲密拍,4:真爱拍,6:私密房,7:互娱房,9:点唱/歌手房,10:签约房,11:酒吧房
|
||||
$room_type = model('Room')->get_room_type($room_id);
|
||||
|
||||
//送礼
|
||||
$reslut = model('SendGift')->give_gift($this->uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,);
|
||||
if($room_type == 1){
|
||||
redis_unlocks($key_name);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}elseif ($room_type == 2){
|
||||
$reslut = model('GiveGift')->give_gift($this->uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
|
||||
//送礼 (送礼用户,收礼用户组,礼物ID,数量,礼物类型,房间ID )
|
||||
$reslut = model('SendGift')->send_gift($this->uid, $to_uid, $gift_id, $gift_num, $type, $room_id, $gift_bag_id, $heart_id);
|
||||
|
||||
if($room_type == 2){//2:练歌房(声网点歌)
|
||||
if($reslut['code'] == 1){
|
||||
$room_pits = model('RoomSong')->get_charm_rank($room_id);
|
||||
if($room_pits['code'] == 1){
|
||||
@@ -54,11 +57,10 @@ class SendGift extends BaseCom
|
||||
}
|
||||
redis_unlocks($key_name);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}else{
|
||||
redis_unlocks($key_name);
|
||||
return V(1, '送礼成功');
|
||||
}
|
||||
|
||||
redis_unlocks($key_name);
|
||||
return V(1, '送礼成功');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -321,16 +321,12 @@ class Friend extends Model
|
||||
* @param $room_id 房间id
|
||||
* @param $pit_number 坑位
|
||||
*/
|
||||
public function room_give_gift($uid, $to_uid, $gift_id, $gift_num, $from_type, $type, $room_id, $pit_number, $heart_id,$give_gift_ext)
|
||||
public function room_give_gift($uid, $to_uid,$room_id,$res,$heart_id = 0)
|
||||
{
|
||||
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num, $from_type, $type, $room_id, $pit_number,0,$give_gift_ext);
|
||||
if($res['code'] != 1){
|
||||
return $res;
|
||||
}
|
||||
|
||||
//送礼成功后续操作
|
||||
//查看当前时间是否在交友表的创建时间和结束时间段内 用来区分是否要拉取心动值高的用户上麦
|
||||
$friend = db::name('vs_user_friending')->where(['room_id' => $room_id,'status' => 1])->order('id desc')->find();
|
||||
|
||||
//查看当前时间是否在交友表的创建时间和结束时间段内 用来区分是否要拉取心动值高的用户上麦
|
||||
if($friend && time() >= $friend['create_time'] && time() <= $friend['end_time']){
|
||||
$heart_exp = get_system_config_value('coin_charm_exp');//金币与魅力值转换比
|
||||
$sumPrice = $res['data']['gift_total'] * $heart_exp;
|
||||
@@ -338,7 +334,7 @@ class Friend extends Model
|
||||
|
||||
if($heart_id){//有这个值就是助力 不参加抢麦操作
|
||||
db::name('vs_user_friending_heart')->where(['id' => $heart_id])->setInc('heart_value', $sumPrice);
|
||||
$this->pullHeartChange($room_id,$friend['id']);//聊天室心动值变化通知
|
||||
// $this->pullHeartChange($room_id,$friend['id']);//聊天室心动值变化通知 注释掉是因为下面那个函数会处理
|
||||
//生成新排名 判断抱上麦 还是换麦
|
||||
$this->pullUserPit($room_id,$friend['id']);
|
||||
}else{
|
||||
@@ -346,7 +342,7 @@ class Friend extends Model
|
||||
$host = $this->is_host($uid,$to_uid,$room_id);
|
||||
$user_idd = explode(",", $user_idd); // 将字符串转换为数组
|
||||
//判断是否是主持
|
||||
if($host['is_preside'] == 1){
|
||||
if($host && $host['is_preside'] == 1){
|
||||
if(!in_array($uid,$host['is_preside_user'])){//主持不是当前送礼人,那就是在收礼人中
|
||||
//从数组中剔除主持人 && $is_preside_user!= UID
|
||||
$user_idd = array_diff($user_idd, $host['is_preside_user']); // 从数组中移除
|
||||
@@ -382,13 +378,13 @@ class Friend extends Model
|
||||
foreach ($user_ids as $value) {
|
||||
//判断收礼人是否是主持
|
||||
if (in_array($value, $host)) {
|
||||
$is_preside = 1;
|
||||
$is_preside = 1;//是主持
|
||||
$is_preside_user[] = $value;
|
||||
}
|
||||
}
|
||||
//送礼人是主持或嘉宾
|
||||
if (in_array($uid, $host)) {
|
||||
$is_preside = 1;
|
||||
$is_preside = 1;//是嘉宾
|
||||
$is_preside_user[] = $uid;
|
||||
}
|
||||
return ['is_preside' =>$is_preside,'is_preside_user' => $is_preside_user];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,8 @@ class Lottery extends Model
|
||||
//送礼 开启事务
|
||||
Db::startTrans();
|
||||
//扣除用户金币并记录日志
|
||||
$wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$all_gift_price,$room_id,1,10,'用户金币购买礼物');
|
||||
// $wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$all_gift_price,$room_id,1,10,'用户金币购买幸运币礼物');
|
||||
$wallet_update = model('api/UserWallet')->change_user_cion_log($send_uid, $all_gift_price, $room_id, 10, '用户金币购买幸运币礼物');
|
||||
if(!$wallet_update){
|
||||
Db::rollback();
|
||||
return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null];
|
||||
@@ -84,7 +85,8 @@ class Lottery extends Model
|
||||
//计算收礼人得益
|
||||
$receiver_earnings = $gift_price /2/get_system_config_value('rmb_coin_ratio');
|
||||
//增加收益并记录日志
|
||||
$receiver = model('api/GiveGift') -> change_user_cion_or_earnings_log($to_id,$receiver_earnings,$room_id,2,11,'收礼增加收益');
|
||||
// $receiver = model('api/GiveGift') -> change_user_cion_or_earnings_log($to_id,$receiver_earnings,$room_id,2,11,'收幸运币礼增加收益');
|
||||
$receiver = model('api/UserWallet')->change_user_earnings_log($to_id,$receiver_earnings,$room_id,11,'收幸运币礼增加收益');
|
||||
|
||||
// //用户魅力等级更新
|
||||
// $user_level = model('api/Level')->user_level_data_update($to_id,$gift_price,2,$room_id);
|
||||
@@ -151,7 +153,8 @@ class Lottery extends Model
|
||||
// 大奖
|
||||
if ($result['is_big_prize'] == 1) {//$result['big_prize_amount'],//中奖金额
|
||||
$beilv = floor($result['big_prize_amount'] / $gift_price);
|
||||
$wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$result['big_prize_amount'],$room_id,1,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
// $wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$result['big_prize_amount'],$room_id,1,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
$wallet_update = model('api/UserWallet')->change_user_earnings_log($send_uid,$result['big_prize_amount'],$room_id,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
if(!$wallet_update){
|
||||
return ['code' => 0, 'msg' => '流水记录失败', 'data' => null];
|
||||
}
|
||||
@@ -162,7 +165,8 @@ class Lottery extends Model
|
||||
$tet['play_image'] = $big_prize_play_image;
|
||||
} else { // 小奖 $result['small_prize_amount'],//中奖金额
|
||||
$beilv = floor($result['small_prize_amount'] / $gift_price);
|
||||
$wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$result['small_prize_amount'],$room_id,1,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
// $wallet_update = model('api/GiveGift')->change_user_cion_or_earnings_log($send_uid,$result['small_prize_amount'],$room_id,1,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
$wallet_update = model('api/UserWallet')->change_user_earnings_log($send_uid,$result['small_prize_amount'],$room_id,58,'参与幸运币活动获得'.$beilv.'倍');
|
||||
if(!$wallet_update){
|
||||
return ['code' => 0, 'msg' => '流水记录失败', 'data' => null];
|
||||
}
|
||||
|
||||
@@ -577,7 +577,7 @@ class Room extends Model
|
||||
return ['code' => 0, 'msg' => '房间不存在了', 'data' => ''];
|
||||
}
|
||||
|
||||
$black = db::name('vs_room_black')->where(['room_id' => $room_id, 'black_id' => $user_id])->find();
|
||||
$black = db::name('vs_room_black')->where(['room_id' => $room_id, 'black_id' => $user_id])->order('id desc')->find();
|
||||
//判断用户是被拉入黑名单
|
||||
if (isset($black) && $black['type'] == 2) {
|
||||
return ['code' => 0, 'msg' => '您被拉入黑名单,请联系房主', 'data' => ''];
|
||||
@@ -1912,7 +1912,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间送礼
|
||||
//房间送礼【1.6废弃】
|
||||
public function room_gift($uid, $to_uid, $gift_id, $gift_num,$type, $room_id, $pit_number, $heart_id,$give_gift_ext="")
|
||||
{
|
||||
$label_type = model('Room')->get_room_label($room_id);
|
||||
@@ -1954,6 +1954,7 @@ class Room extends Model
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//背包礼物一键全清
|
||||
public function room_gift_all_clear($uid, $room_id, $user_id,$heart_id,$auction_id = 0)
|
||||
{
|
||||
@@ -1965,14 +1966,14 @@ class Room extends Model
|
||||
if($auction_id){//竞拍
|
||||
model('RoomAuction')->room_auction_join($auction_id,$uid,$v['gid'],$v['num'],2);
|
||||
}else{
|
||||
$this->room_gift($uid, $user_id, $v['gid'], $v['num'],2,$room_id, 0,$heart_id);
|
||||
model('api/SendGift')->send_gift($uid, $user_id, $v['gid'], $v['num'],2,$room_id,0,$heart_id);
|
||||
}
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
//房间在线列表
|
||||
//房间在线列表【1.6废弃】
|
||||
public function room_online_lists($room_id, $page, $limit)
|
||||
{
|
||||
$lists['on_pit'] = [];
|
||||
@@ -2093,7 +2094,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间在线列表
|
||||
//房间在线列表【1.6废弃】
|
||||
public function room_online_list1($room_id, $page, $limit)
|
||||
{
|
||||
if (!$room_id) {
|
||||
@@ -2885,7 +2886,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间的类型
|
||||
//房间的类型(同意上麦和退出房间 在使用 ,其他已经修改了)
|
||||
public function get_room_label($room_id)
|
||||
{
|
||||
$room_info = db::name('vs_room')->where(['id' => $room_id])->field('id,label_id,type_id')->find();
|
||||
@@ -2911,7 +2912,7 @@ class Room extends Model
|
||||
}
|
||||
|
||||
|
||||
//房间信息
|
||||
//房间信息【1.6废弃】
|
||||
public function room_infos($user_id, $room_id)
|
||||
{
|
||||
if(!$room_id){
|
||||
@@ -3931,9 +3932,6 @@ class Room extends Model
|
||||
}
|
||||
|
||||
//用户重连
|
||||
|
||||
|
||||
|
||||
//用户在房间内切后台保留机制
|
||||
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ class RoomAuction extends Model
|
||||
|
||||
|
||||
//参与竞拍
|
||||
public function room_auction_join($auction_id,$user_id,$gift_id,$num,$type,$ext=[])
|
||||
public function room_auction_join($auction_id,$user_id,$gift_id,$num,$type,$gift_bag_id=0)
|
||||
{
|
||||
if(!$auction_id){
|
||||
return ['code' => 0, 'msg' => '拍卖已经结束','data' => null];
|
||||
@@ -122,13 +122,13 @@ class RoomAuction extends Model
|
||||
return ['code' => 0, 'msg' => '礼物ID不能为空','data' => null];
|
||||
}
|
||||
$auction = db::name('vs_room_auction')->where('auction_id',$auction_id)->field('room_id,gift_price,user_id,status')->find();
|
||||
$gift_price = db::name('vs_gift')->where('gid',$gift_id)->value('gift_price') ?? 0;
|
||||
// $gift_price = db::name('vs_gift')->where('gid',$gift_id)->value('gift_price') ?? 0;
|
||||
if($user_id == $auction['user_id']){
|
||||
return ['code' => 0, 'msg' => '不能参与自己的竞拍!','data' => null];
|
||||
}
|
||||
|
||||
//走送礼流程
|
||||
$ree = model('GiveGift')->give_gift($user_id,$auction['user_id'],$gift_id,$num,2,$type,$auction['room_id'],0,0,$ext);
|
||||
$ree = model('api/SendGift')->send_gift($user_id,$auction['user_id'],$gift_id,$num,$type,$auction['room_id'],$gift_bag_id);
|
||||
if($ree['code'] != 1){
|
||||
return ['code' => $ree['code'], 'msg' => $ree['msg'],'data' => null];
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -288,13 +288,14 @@ class UserCp extends Model
|
||||
* @param $gift_id 礼物ID
|
||||
* @param $room_id 房间ID
|
||||
* @param $cp_zone_id Cp空间ID
|
||||
* @param $gift_price 收礼总金币
|
||||
*/
|
||||
public function addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $cp_zone_id, $num,$gift_price)
|
||||
{
|
||||
$jinbi_arr = explode(',', get_system_config_value('cp_exp_rate'));
|
||||
$jinbi = $jinbi_arr[0];
|
||||
$jinyan = $jinbi_arr[1];
|
||||
$exp = round($gift_price * $num / $jinbi * $jinyan, 2);
|
||||
$exp = round($gift_price / $jinbi * $jinyan, 2);
|
||||
$yuan_exp = Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->value('exp');
|
||||
$zone_level = Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->value('level');
|
||||
$toUserNickname =db::name('user')->where(['id' => $to_user_id])->value('nickname')??'未知用户';
|
||||
|
||||
@@ -204,4 +204,127 @@ class UserWallet extends Model
|
||||
return ['code' => 0, 'msg' => '转赠失败', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*操作用户金币并记录日志
|
||||
* @param int $user_id 用户id
|
||||
* @param int $money 金币数量
|
||||
* @param int $change_type 变动类型
|
||||
* @param int $room_id 房间
|
||||
* @param str $remarks 备注
|
||||
*/
|
||||
//change_type
|
||||
// 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮
|
||||
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
|
||||
// 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益 20.抢头条 21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币,
|
||||
// 25.赠送好友金币,26.好友转赠所得金币,27.小时榜获得金币,28.新人充值好礼,29.发红包(钻石),30.抢红包(金币),31.抢红包(钻石),32.发红包(金币),
|
||||
// 33.红包剩余退回(金币),34-红包剩余退回(钻石),35-爵位购买赠送金币(金币),
|
||||
//50-签约,51-签约失败退回,52-首次被签约收入,53.签约师傅每日返还,54-叛徒补偿,55-徒弟收礼返佣,56-续约,57-签到,58-爆币,59-红包手续费
|
||||
//资金操作
|
||||
public function change_user_cion_log($user_id,$money,$room_id,$change_type,$remarks)
|
||||
{
|
||||
//增加用户金币类型
|
||||
$in_types = [1,2,5,6,8,13,14,15,16,23,26,27,28,30,33,35,51,57,58];
|
||||
//减少用户金币类型
|
||||
$out_types = [4,7,10,17,20,24,25,32,50,56,59];
|
||||
|
||||
$user_coin = Db::name('user_wallet_coin')->where(['user_id' => $user_id])->value('coin');
|
||||
if(in_array($change_type,$in_types)){
|
||||
$update_coin = $user_coin + $money;
|
||||
}elseif(in_array($change_type,$out_types)){
|
||||
if($user_coin < $money){
|
||||
return false;
|
||||
}
|
||||
$update_coin = $user_coin - $money;
|
||||
}else{
|
||||
$update_coin = $user_coin;
|
||||
}
|
||||
$res1 = Db::name('user_wallet_coin')->where(['user_id' => $user_id])->update(['coin' => $update_coin,'updatetime' => time()]);
|
||||
if(!$res1){
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = [
|
||||
'user_id' => $user_id,
|
||||
'room_id' => $room_id,
|
||||
'coin' => $money,
|
||||
'before' => $user_coin,
|
||||
'after' => $user_coin - $money,
|
||||
'change_type' => $change_type,
|
||||
'remarks' => $remarks,
|
||||
'createtime' => time()
|
||||
];
|
||||
|
||||
$res = Db::name('user_coin_log')->insert($data);
|
||||
if(!$res){
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*操作用户收益(钻石)并记录日志
|
||||
* @param int $user_id 用户id
|
||||
* @param int $money 数量
|
||||
* @param int $change_type 变动类型
|
||||
* @param int $room_id 房间
|
||||
* @param str $remarks 备注
|
||||
*/
|
||||
//change_type
|
||||
// 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮
|
||||
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
|
||||
// 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益 20.抢头条 21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币,
|
||||
// 25.赠送好友金币,26.好友转赠所得金币,27.小时榜获得金币,28.新人充值好礼,29.发红包(钻石),30.抢红包(金币),31.抢红包(钻石),32.发红包(金币),
|
||||
// 33.红包剩余退回(金币),34-红包剩余退回(钻石),35-爵位购买赠送金币(金币),
|
||||
//50-签约,51-签约失败退回,52-首次被签约收入,53.签约师傅每日返还,54-叛徒补偿,55-徒弟收礼返佣,56-续约,57-签到,58-爆币,59-红包手续费
|
||||
|
||||
//bcadd: 加法运算
|
||||
//bcsub: 减法运算
|
||||
//bcmul: 乘法运算
|
||||
//bcdiv: 除法运算
|
||||
public function change_user_earnings_log($user_id,$money,$room_id,$change_type,$remarks)
|
||||
{
|
||||
//增加用户钻石类型
|
||||
$in_types = [9,11,12,18,19,21,22,31,34,52,54,55];
|
||||
|
||||
//减少用户钻石类型
|
||||
$out_types = [3,14,29];
|
||||
$user_earnings = Db::name('user_wallet_earnings')->where(['user_id' => $user_id])->value('earnings');
|
||||
|
||||
if(in_array($change_type,$in_types)){
|
||||
$update_coin = bcadd($user_earnings , $money,4);
|
||||
}elseif(in_array($change_type,$out_types)){
|
||||
if($user_earnings < $money){
|
||||
return false;
|
||||
}
|
||||
$update_coin = bcsub($user_earnings , $money,4);
|
||||
}else{
|
||||
$update_coin = $user_earnings;
|
||||
}
|
||||
$res1 = Db::name('user_wallet_earnings')->where(['user_id' => $user_id])->update(['earnings' => $update_coin,'updatetime' => time()]);
|
||||
if(!$res1){
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = [
|
||||
'user_id' => $user_id,
|
||||
'room_id' => $room_id,
|
||||
'earnings' => $money,
|
||||
'before' => $user_earnings,
|
||||
'after' => $user_earnings - $money,
|
||||
'change_type' => $change_type,
|
||||
'remarks' => $remarks,
|
||||
'createtime' => time()
|
||||
];
|
||||
|
||||
$res = Db::name('user_earnings_log')->insert($data);
|
||||
if(!$res){
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1244,16 +1244,23 @@ function handelCharge($where,$data){
|
||||
}
|
||||
}
|
||||
|
||||
//计算收益 10% 因为金币10 = 1元 收益 1钻石 = 1元
|
||||
|
||||
// @param $all_gift_price 礼物总价单位金币
|
||||
// @param $ratio 收益比例
|
||||
// @return int 收益单位钻石
|
||||
// @param $ratio 收益比例
|
||||
// @return float 收益(单位钻石)
|
||||
//bcadd: 加法运算
|
||||
//bcsub: 减法运算
|
||||
//bcmul: 乘法运算
|
||||
//bcdiv: 除法运算
|
||||
function coin_earning($all_gift_price,$ratio){
|
||||
//rmb_coin_ratio 人民币转换金币的比例
|
||||
//金币转换人民币
|
||||
//小数点保留4位
|
||||
$result = $all_gift_price * $ratio / 100 / get_system_config_value('rmb_coin_ratio');
|
||||
return round($result, 4);
|
||||
//百分比转换为小数
|
||||
$ratio = $ratio / 100;
|
||||
//应得金币
|
||||
$coin_earning = bcmul($all_gift_price, $ratio, 3);
|
||||
//金币转为钻石的比例
|
||||
$c_e_ratio = get_system_config_value('rmb_coin_ratio');
|
||||
//转化为钻石(小数点保留4位)
|
||||
return bcdiv($coin_earning, $c_e_ratio, 4);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,7 +45,7 @@ class GiveGiftBase extends Model
|
||||
{
|
||||
try {
|
||||
// 生成雪花ID
|
||||
$data['id'] = Snowflake::generate();
|
||||
// $data['id'] = Snowflake::generate();
|
||||
|
||||
// 设置时间
|
||||
if (empty($data['createtime'])) {
|
||||
|
||||
Reference in New Issue
Block a user