续签 收礼返佣
This commit is contained in:
@@ -82,12 +82,12 @@ class Family extends Model
|
||||
$myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image'];
|
||||
$myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color'];
|
||||
|
||||
$myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $myFamily['user_id'],'end_time' => ['>',time()]])->count();
|
||||
$myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $myFamily['user_id']])->count();
|
||||
$myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings');
|
||||
|
||||
$lists= db::name('vs_user_sign')->alias('a')
|
||||
->join('user b','a.sign_user_id = b.id')
|
||||
->field('b.market_value,b.nickname,b.avatar,b.user_code,a.sign_user_id as user_id,a.type,a.end_time,a.sign_user_type')
|
||||
->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,a.sign_user_id as user_id,a.type,a.end_time,a.sign_user_type')
|
||||
->where(['parent_user_id' => $myFamily['user_id'],'end_time' => ['>',time()]])
|
||||
->select();
|
||||
if($lists){
|
||||
@@ -117,7 +117,22 @@ class Family extends Model
|
||||
$lists[$k]['yesterday_earnings'] = db::name('vs_user_money_log')
|
||||
->where(['user_id' => $v['user_id'],'money_type' => 2,'change_type' =>11,'createtime' => ['between',[strtotime(date('Y-m-d',strtotime('-1 day'))),strtotime(date('Y-m-d'))]]])
|
||||
->sum('change_value');
|
||||
|
||||
$lists[$k]['is_show_sign'] = $v['end_time'] - time() < 48*3600 ? 1 : 0;
|
||||
$lists[$k]['sign_times'] = get_system_config_value('sign_times');//非首签签约时长
|
||||
$lists[$k]['sign_user_ratio'] = get_system_config_value('sign_user_ratio');//签约者身价的百分比
|
||||
//end_time 换算为天数,不足1天,按小时显示
|
||||
$remaining_time = $v['end_time'] - time();
|
||||
if ($remaining_time > 0) {
|
||||
$days = floor($remaining_time / (24 * 3600));
|
||||
if ($days > 0) {
|
||||
$lists[$k]['end_day'] = $days . '天';
|
||||
} else {
|
||||
$hours = ceil($remaining_time / 3600);
|
||||
$lists[$k]['end_day'] = $hours . '小时';
|
||||
}
|
||||
} else {
|
||||
$lists[$k]['end_day'] = '已过期';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -202,6 +202,9 @@ class GiveGift extends Model
|
||||
$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);
|
||||
|
||||
//1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼
|
||||
if($from_type == 1 || $from_type == 2 || $from_type == 3 ||$from_type == 4 || $from_type == 6){
|
||||
//增加收益并记录日志
|
||||
@@ -908,8 +911,8 @@ class GiveGift extends Model
|
||||
// 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮
|
||||
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
|
||||
// 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益 20.抢头条 21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币,
|
||||
//50-签约,51-签约失败退回,52-首次被签约收入,54-叛徒补偿
|
||||
if(in_array($change_type,[1,2,3,4,5,6,7,8,12,13,14,15,16,17,20])){
|
||||
//50-签约,51-签约失败退回,52-首次被签约收入,54-叛徒补偿,55-徒弟收礼返佣,56-续约
|
||||
if(in_array($change_type,[1,2,3,4,5,6,7,8,12,13,14,15,16,17,20,56])){
|
||||
$room_ids = 0;
|
||||
}else{
|
||||
$room_ids = $room_id;
|
||||
@@ -935,7 +938,7 @@ class GiveGift extends Model
|
||||
//增加用户金币类型
|
||||
$in_types = [2,5,6,8,13,14,15,16,51];
|
||||
//减少用户金币类型
|
||||
$out_types = [4,7,10,17,20,50];
|
||||
$out_types = [4,7,10,17,20,50,56];
|
||||
if(in_array($change_type,$in_types)){
|
||||
//增加用户金币
|
||||
$res1 = Db::name('user_wallet')->where(['user_id'=>$user_id])->setInc('coin',$money);
|
||||
@@ -951,7 +954,7 @@ class GiveGift extends Model
|
||||
}
|
||||
}elseif ($money_type == 2){//2钻石
|
||||
//增加用户钻石类型
|
||||
$in_types = [9,11,12,18,19,21,52,54];
|
||||
$in_types = [9,11,12,18,19,21,52,54,55];
|
||||
//减少用户钻石类型
|
||||
$out_types = [3,14];
|
||||
if(in_array($change_type,$in_types)){
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -51,16 +51,16 @@ class UserWallet extends Model
|
||||
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
|
||||
// 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益,20.发布头条扣除余额,21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币
|
||||
//27.小时榜获得,28-新人充值好礼,32-发红包(金币),29-发红包(钻石),30-抢红包(金币),31-抢红包(钻石) 33-红包剩余退回(金币),34-红包剩余退回(钻石)
|
||||
//50-签约 51-签约失败退回,52-首次被签约收入 53-师徒签到 54-叛徒补偿
|
||||
//50-签约 51-签约失败退回,52-首次被签约收入 53-师徒签到 54-叛徒补偿,55-徒弟收礼返佣,56-续约
|
||||
if($gift_type == 1){ //1金币,2收益(钻石)
|
||||
if($in_out_type == 1){//1收入
|
||||
$in_out_types = [2,5,6,8,13,14,15,16,22,23,26,27,30,28,33,51];
|
||||
}elseif($in_out_type == 2){//2支出
|
||||
$in_out_types = [4,7,10,17,20,24,25,32,50];
|
||||
$in_out_types = [4,7,10,17,20,24,25,32,50,56];
|
||||
}
|
||||
}elseif($gift_type == 2){ //1金币,2收益(钻石)
|
||||
if($in_out_type == 1){//1收入
|
||||
$in_out_types = [6,9,11,12,18,19,21,22,31,28,34,52,53,54];
|
||||
$in_out_types = [6,9,11,12,18,19,21,22,31,28,34,52,53,54,55];
|
||||
}elseif($in_out_type == 2){//2支出
|
||||
$in_out_types = [3,14,29];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user