续签 收礼返佣
This commit is contained in:
@@ -163,6 +163,7 @@ class Sign extends Model
|
||||
//查询签约用户的身份 是否是第一次被签 是否当前有签
|
||||
$is_first_sign = db::name('vs_user_sign')->where('sign_user_id',$sign_user_id)->count();
|
||||
$before_sign_user = null;
|
||||
$is_sign = null;
|
||||
if($is_first_sign < 1){
|
||||
//第一次被签平台抽成
|
||||
$sign_app_ratio = get_system_config_value('first_sign_app_ratio');
|
||||
@@ -172,14 +173,10 @@ class Sign extends Model
|
||||
$sign_app_ratio = get_system_config_value('sign_app_ratio');
|
||||
//查找该用户是否在约
|
||||
$sign_user_type = 1;
|
||||
$is_sign = db::name('vs_user_sign')->where(['sign_user_id' => $sign_user_id])->select();
|
||||
$is_sign = db::name('vs_user_sign')->where(['sign_user_id' => $sign_user_id,'end_time' => ['>',time()]])->find();
|
||||
if($is_sign){
|
||||
foreach ($is_sign as $k => $v){
|
||||
if($v['end_time'] >= time()){
|
||||
$sign_user_type = 2;
|
||||
$before_sign_user = $v['user_id'];
|
||||
}
|
||||
}
|
||||
$sign_user_type = 2;
|
||||
$before_sign_user = $is_sign['user_id'];
|
||||
}
|
||||
}
|
||||
//获取签约出价最高的
|
||||
@@ -278,6 +275,15 @@ class Sign extends Model
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
//上任签约信息修改
|
||||
if($is_sign){
|
||||
$result5 = db::name('vs_user_sign')->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time(),'type' => 3]);
|
||||
if(!$result5){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
db::commit();
|
||||
//给前端推送
|
||||
@@ -307,4 +313,108 @@ class Sign extends Model
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 收礼检查是否有被签约和在合约期内 给上级返佣
|
||||
* @param $user_id 用户id
|
||||
* @param $gift_id 礼物id
|
||||
* @param $gift_num 礼物数量
|
||||
* @param $gift_price 礼物价格
|
||||
* @param $room_id 房间id
|
||||
*/
|
||||
public function check_sign_gift($user_id,$gift_id,$gift_num,$gift_price,$room_id){
|
||||
//获取用户签约信息
|
||||
$sign_info = db::name('vs_user_sign')->where(['sign_user_id' => $user_id,'end_time' => ['>',time()]])->find();
|
||||
if(!$sign_info){
|
||||
return true;
|
||||
}
|
||||
$give_sign_ratio = get_system_config_value('give_sign_ratio');
|
||||
$earnings = $gift_price * $give_sign_ratio / 100;
|
||||
$data = [
|
||||
'user_id' => $sign_info['parent_user_id'],
|
||||
'sign_user_id' => $user_id,
|
||||
'gift_id' => $gift_id,
|
||||
'gift_num' => $gift_num,
|
||||
'earnings' => $earnings,
|
||||
'createtime' => time()
|
||||
];
|
||||
$result = db::name('vs_user_sign_earnings')->insert($data);
|
||||
if($result){
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($sign_info['parent_user_id'],$earnings,$room_id,2,55,'签约用户收礼返佣');
|
||||
if(!$result4){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 免费续签
|
||||
* @param $user_id 用户id
|
||||
* @param $sign_user_id 签约麦的用户id
|
||||
*/
|
||||
public function free_re_sign($user_id,$sign_user_id){
|
||||
$first_sign_info = db::name('vs_user_sign')
|
||||
->where(['sign_user_id' => $sign_user_id])->count();
|
||||
if($first_sign_info > 1){
|
||||
return ['code' => 0, 'msg' => '该用户已不满足免费续签条件', 'data' => null];
|
||||
}
|
||||
$sign_info = db::name('vs_user_sign')
|
||||
->where(['user_id' => $user_id,'sign_user_id' => $sign_user_id,'end_time' => ['>',time()]])->find();
|
||||
if(!$sign_info){
|
||||
return ['code' => 0, 'msg' => '您没有签约该用户或该用户已解约', 'data' => null];
|
||||
}
|
||||
if($sign_info['type'] >= 3){
|
||||
return ['code' => 0, 'msg' => '免费续签次数已用完', 'data' => null];
|
||||
}
|
||||
$end_time = $sign_info['end_time'] + 86400 * get_system_config_value('free_re_sign_day');
|
||||
$res = db::name('vs_user_sign')->where(['id' => $sign_info['id']])->update(['type' => $sign_info['type']+1,'end_time' => $end_time]);
|
||||
if(!$res){
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 续签
|
||||
* @param $user_id 用户id
|
||||
* @param $sign_user_id 签约麦的用户id
|
||||
*/
|
||||
public function re_sign($user_id,$sign_user_id){
|
||||
$sign_info = db::name('vs_user_sign')
|
||||
->where(['user_id' => $user_id,'sign_user_id' => $sign_user_id,'end_time' => ['>',time()]])->find();
|
||||
if(!$sign_info){
|
||||
return ['code' => 0, 'msg' => '您没有签约该用户或该用户已解约', 'data' => null];
|
||||
}
|
||||
//获取被签约用户当前身价
|
||||
$market_value = db::name('user')->where('id',$sign_user_id)->value('market_value');
|
||||
//获取系统配置的签约身价百分比
|
||||
$sign_market_value = get_system_config_value('sign_user_ratio');
|
||||
//获取系统配置非首签签约时长
|
||||
$sign_times = get_system_config_value('sign_times');
|
||||
|
||||
//获取签约者的金币
|
||||
$coin = db::name('user_wallet')->where('user_id',$user_id)->value('coin');
|
||||
if($coin < $market_value * $sign_market_value){
|
||||
return ['code' => 0, 'msg' => '您的金币不足', 'data' => null];
|
||||
}
|
||||
$end_time = $sign_info['end_time'] + 86400 * $sign_times;
|
||||
//开启事务
|
||||
db::startTrans();
|
||||
$res = db::name('vs_user_sign')->where(['id' => $sign_info['id']])->update(['type' => 1,'end_time' => $end_time]);
|
||||
if(!$res){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
$res2 = model('api/GiveGift') -> change_user_cion_or_earnings_log($user_id,$market_value * $sign_market_value,0,2,56,'续约');
|
||||
if(!$res2){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
db::commit();
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user