单人送礼 直插数据库,多人送礼队列
This commit is contained in:
@@ -5,6 +5,7 @@ namespace app\api\model;
|
|||||||
use app\common\controller\Push;
|
use app\common\controller\Push;
|
||||||
use app\common\library\GiftQueue;
|
use app\common\library\GiftQueue;
|
||||||
use app\common\library\Snowflake;
|
use app\common\library\Snowflake;
|
||||||
|
use app\common\model\GiveGiftBase;
|
||||||
use think\Log;
|
use think\Log;
|
||||||
use think\Model;
|
use think\Model;
|
||||||
use think\Db;
|
use think\Db;
|
||||||
@@ -899,7 +900,7 @@ class SendGift extends Model
|
|||||||
if($gift_box){
|
if($gift_box){
|
||||||
foreach ($gift_box as $i => $v){
|
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){
|
if(!$give_gift){
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null];
|
return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null];
|
||||||
@@ -908,7 +909,7 @@ class SendGift extends Model
|
|||||||
}
|
}
|
||||||
}else{
|
}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){
|
if(!$give_gift){
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null];
|
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)
|
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 = [
|
$data = [
|
||||||
@@ -1434,6 +1434,122 @@ class SendGift extends Model
|
|||||||
'createtime' => time(),
|
'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);//推入队列
|
GiftQueue::push($data);//推入队列
|
||||||
//记录小时榜
|
//记录小时榜
|
||||||
model('api/RoomHourRanking')->addGiftHourlySum($from_id,$gift_price);
|
model('api/RoomHourRanking')->addGiftHourlySum($from_id,$gift_price);
|
||||||
|
|||||||
Reference in New Issue
Block a user