单人送礼 直插数据库,多人送礼队列
This commit is contained in:
@@ -5,6 +5,7 @@ namespace app\api\model;
|
||||
use app\common\controller\Push;
|
||||
use app\common\library\GiftQueue;
|
||||
use app\common\library\Snowflake;
|
||||
use app\common\model\GiveGiftBase;
|
||||
use think\Log;
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
@@ -899,7 +900,7 @@ class SendGift extends Model
|
||||
if($gift_box){
|
||||
foreach ($gift_box as $i => $v){
|
||||
//记录一下收礼记录
|
||||
$give_gift = $this -> change_user_give_gift_log($uid,$v['gift_id'],$v['gift_price'],1,$to_uid,2,$type,$room_id,'',0,2);
|
||||
$give_gift = $this -> change_user_give_gift_logs($uid,$v['gift_id'],$v['gift_price'],1,$to_uid,2,$type,$room_id,'',0,2);
|
||||
if(!$give_gift){
|
||||
Db::rollback();
|
||||
return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null];
|
||||
@@ -908,7 +909,7 @@ class SendGift extends Model
|
||||
}
|
||||
}else{
|
||||
//收礼记录行为日志
|
||||
$give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id,'');
|
||||
$give_gift = $this -> change_user_give_gift_logs($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id,'');
|
||||
if(!$give_gift){
|
||||
Db::rollback();
|
||||
return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null];
|
||||
@@ -1414,8 +1415,7 @@ class SendGift extends Model
|
||||
}
|
||||
|
||||
|
||||
|
||||
//记录用户送礼日志
|
||||
//记录用户送礼日志(送单人)
|
||||
public function change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_id,$from_type,$type,$from_id,$remarks,$pit_number = 0,$gitf_type =1)
|
||||
{
|
||||
$data = [
|
||||
@@ -1434,6 +1434,122 @@ class SendGift extends Model
|
||||
'createtime' => time(),
|
||||
];
|
||||
|
||||
// 插入数据库
|
||||
$model = new GiveGiftBase();
|
||||
$result = $model->addGiftRecord($data);
|
||||
if($result !== false){
|
||||
//记录小时榜
|
||||
model('api/RoomHourRanking')->addGiftHourlySum($from_id,$gift_price);
|
||||
|
||||
//记录房间流水 ($roomId, $amount)
|
||||
model('api/RoomDailyIncome')->addDailyIncome($from_id,$gift_price);
|
||||
|
||||
//收礼人认证歌手等级升级
|
||||
model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
|
||||
|
||||
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
|
||||
$coin_market_value = get_system_config_value('coin_market_value');
|
||||
if(!$coin_market_value){
|
||||
$coin_market_value = '100,1';
|
||||
}
|
||||
$coin_market_values = explode(',', $coin_market_value);
|
||||
$change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1));
|
||||
model('api/MarketValue')->change($to_id,$change_value,0);
|
||||
|
||||
//收礼人是否被签约 给上级返佣
|
||||
model('api/Sign')->check_sign_gift($to_id,$gid,$num,$gift_price,$from_id);
|
||||
|
||||
//记录公会流水
|
||||
if($from_id > 0){
|
||||
model('api/Guild')->guild_flow($from_id,$gift_price,$data['id']);
|
||||
}
|
||||
|
||||
//查询是否第一次送礼
|
||||
$is_first_gift = db::name('user_data')->where(['user_id'=>$uid])->value('first_give_gift');
|
||||
if($is_first_gift == 0){
|
||||
//任务:7-第一次送礼
|
||||
model('api/Tasks')->tasks_complete($uid,7);
|
||||
db::name('user_data')->where(['user_id'=>$uid])->update(['first_give_gift'=>1]);
|
||||
}
|
||||
//查询是否第一次收礼
|
||||
$is_first_receive_gift = db::name('user_data')->where(['user_id'=>$uid])->value('first_receive_gift');
|
||||
if($is_first_receive_gift == 0){
|
||||
//任务:8-第一次收礼
|
||||
model('api/Tasks')->tasks_complete($to_id,8);
|
||||
db::name('user_data')->where(['user_id'=>$uid])->update(['first_receive_gift'=>1]);
|
||||
}
|
||||
|
||||
//查询收礼人和送礼人的师徒关系
|
||||
//获取系统配置的特殊礼物
|
||||
$special_gift = explode(',',get_system_config_value('master_special_gift'));
|
||||
//收礼人是否是送礼人的师父
|
||||
$is_master = db::name('vs_user_sign')->where(['parent_user_id'=>$to_id,'sign_user_id'=>$uid,'end_time' => ['>=',time()]])->find();
|
||||
if($is_master){
|
||||
if(in_array($gid,$special_gift)){
|
||||
//任务:14-每日给师傅送一个特定的礼物
|
||||
model('api/Tasks')->tasks_complete($uid,14);
|
||||
//查询今天是否送过礼物了
|
||||
$is_today_gift = db::name('vs_give_gift')
|
||||
->where(['user_id'=>$uid,'gift_user'=>$to_id,'createtime' => ['>=',strtotime(date('Y-m-d'))],'gift_id' => ['in',$special_gift]])->count();
|
||||
if($is_today_gift <= 1){
|
||||
//任务:13-每日收到至少3个徒弟的特殊徐礼物
|
||||
model('api/Tasks')->tasks_complete($to_id,13);
|
||||
}
|
||||
}
|
||||
}
|
||||
//收礼人是否是送礼人的徒弟
|
||||
$is_student = db::name('vs_user_sign')->where(['parent_user_id'=>$uid,'sign_user_id'=>$to_id,'end_time' => ['>=',time()]])->find();
|
||||
if($is_student){
|
||||
if(in_array($gid,$special_gift)){
|
||||
//查询徒弟是否是首签的徒弟 sign_user_type:被签用户的类型:0-首次被签,1-签约过期,2-违约签
|
||||
$is_students = db::name('vs_user_sign')
|
||||
->where(['parent_user_id' => $uid,'sign_user_id' => $to_id,'sign_user_type' => 0,'end_time' => ['>',time()]])->value('id');
|
||||
if($is_students){
|
||||
//获取房间的类型
|
||||
$room_type = db::name('vs_room')->where(['id' => $from_id])->value('type_id');
|
||||
if($room_type == 2){
|
||||
//任务:21-邀请徒弟在拍卖房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物)
|
||||
model('api/Tasks')->tasks_complete($uid,21,2,$to_id);
|
||||
}
|
||||
if($room_type == 9){
|
||||
//任务:22-邀请徒弟在点唱房点歌(0/1)首,并送给徒弟(0/1 ,特殊礼物)
|
||||
model('api/Tasks')->tasks_complete($uid,22,2,$to_id);
|
||||
}
|
||||
if($room_type == 7) {
|
||||
//任务:23-邀请徒弟在交友房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物)
|
||||
model('api/Tasks')->tasks_complete($uid, 23, 2,$to_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $data['id'];
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//记录用户送礼日志 (送多人)
|
||||
public function change_user_give_gift_logs($uid,$gid,$gift_price,$num,$to_id,$from_type,$type,$from_id,$remarks,$pit_number = 0,$gitf_type =1)
|
||||
{
|
||||
$data = [
|
||||
'id' => Snowflake::generate(),// 生成雪花ID
|
||||
'user_id' => $uid,
|
||||
'gift_id' => $gid,
|
||||
'gift_type' => $gitf_type,
|
||||
'number' => $num,
|
||||
'gift_user' => $to_id,
|
||||
'pit_number' => $pit_number,
|
||||
'from_id' => $from_id,//来源ID,(房间ID或动态ID)
|
||||
'total_price' => $gift_price,
|
||||
'from' => $from_type,//1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 6Cp电影房
|
||||
'type' => $type,//1金币购买 2送背包礼物
|
||||
'remarks' => $remarks??'',
|
||||
'createtime' => time(),
|
||||
];
|
||||
|
||||
GiftQueue::push($data);//推入队列
|
||||
//记录小时榜
|
||||
model('api/RoomHourRanking')->addGiftHourlySum($from_id,$gift_price);
|
||||
|
||||
Reference in New Issue
Block a user