送礼优化 相关

This commit is contained in:
2026-01-06 17:40:13 +08:00
parent 581122b4d9
commit 132e9df303
13 changed files with 2167 additions and 1526 deletions

View File

@@ -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;
}
}