diff --git a/application/api/controller/Search.php b/application/api/controller/Search.php index d233e5f1..75f9f1eb 100644 --- a/application/api/controller/Search.php +++ b/application/api/controller/Search.php @@ -147,8 +147,8 @@ class Search extends BaseCom } $rooms = db::name('vs_room')->field('id as room_id,room_name,room_cover,room_number,label_id,today_hot_value')->where($where1)->select(); - if(isset($rooms)){ - foreach ($rooms as $vv){ + if($rooms){ + foreach ($rooms as &$vv){ $vv['label_icon'] = db::name('vs_room_label')->where('id', $vv['label_id'])->value('label_icon'); $vv['hot_value'] = $vv['today_hot_value']; } diff --git a/application/api/controller/Xintiao.php b/application/api/controller/Xintiao.php index 21f0eb47..7a59208a 100644 --- a/application/api/controller/Xintiao.php +++ b/application/api/controller/Xintiao.php @@ -37,23 +37,34 @@ class Xintiao extends BaseCom //任务:20-每日在线时长 15 分钟 model('Tasks')->tasks_complete($user_id,20); - //获取房间的类型 $room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id'); //查询徒弟是否是首签的徒弟 sign_user_type:被签用户的类型:0-首次被签,1-签约过期,2-违约签 - $uid = db::name('vs_user_sign') - ->where(['sign_user_id' => $user_id,'sign_user_type' => 0,'end_time' => ['>',time()]])->value('parent_user_id'); - if($room_type == 2 && $uid){ - //任务:21-邀请徒弟在拍卖房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物) - model('Tasks')->tasks_complete($uid, 21, 1); + $user_sign = db::name('vs_user_sign') + ->where(['sign_user_id' => $user_id,'sign_user_type' => 0,'end_time' => ['>',time()]])->field('parent_user_id,sign_user_id')->select(); + if($user_sign){ + foreach ($user_sign as $v){ + if($room_type == 2){ + //查询徒弟在不在房间 + $is_room = db::name('vs_room_visitor') + ->where(['user_id' => $v['sign_user_id'], 'room_id' => $room_id])->find(); + if($is_room){ + //任务:21-邀请徒弟在拍卖房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物) + model('Tasks')->tasks_complete($v['parent_user_id'], 21, 1,$v['sign_user_id']); + } + } + if($room_type == 7){ + //查询徒弟在不在房间 + $is_room = db::name('vs_room_visitor') + ->where(['user_id' => $v['sign_user_id'], 'room_id' => $room_id])->find(); + if($is_room){ + //任务:23-邀请徒弟在交友房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物) + model('Tasks')->tasks_complete($v['parent_user_id'], 23, 1,$v['sign_user_id']); + } + } + } } - if($room_type == 7 && $uid){ - //任务:23-邀请徒弟在交友房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物) - model('Tasks')->tasks_complete($uid, 23, 1); - } - - return V(1, '成功', null); } diff --git a/application/api/model/GiveGift.php b/application/api/model/GiveGift.php index 591efe3c..8c22325a 100644 --- a/application/api/model/GiveGift.php +++ b/application/api/model/GiveGift.php @@ -530,7 +530,7 @@ class GiveGift extends Model model('DailyTasks')->tasks_complete($uid,3); } //cp检测且处理升级事宜 - $cp_type = model('api/UserCp')->checkGift($uid, $gid, $to_id, $from_id, $num);//0-不处理,1-表明心意,2-组成Cp + $cp_type = model('api/UserCp')->checkGift($uid, $gid, $to_id, $from_id, $num,$gift_price);//0-不处理,1-表明心意,2-组成Cp if($cp_type == 1){ $textt1 = "亲爱的用户,您好!\n".$FromUserInfo['nickname'] . ' 的 【' .$gift_info['gift_name'].' 】 已送达,这是他的心动信号。回赠一个,即可锁定这份缘分!'; $textt = ''; @@ -826,7 +826,7 @@ class GiveGift extends Model model('DailyTasks')->tasks_complete($uid,3); } //cp检测 - model('api/UserCp')->checkGift($uid, $gid, $to_id, $from_id,$num); + model('api/UserCp')->checkGift($uid, $gid, $to_id, $from_id,$num,$gift_price); } //增加房间火热值hot_value diff --git a/application/api/model/Ranking.php b/application/api/model/Ranking.php index ed39ebd6..664f33ed 100644 --- a/application/api/model/Ranking.php +++ b/application/api/model/Ranking.php @@ -388,7 +388,7 @@ class Ranking extends Model } } - if (!$my_ranking && $lists && defined('UID')) { + if (!$my_ranking && $lists) { $where1['c.createtime'] = ['between', [$this->begin_time, $this->end_time]]; $where1['a.status'] = 1; $my_ranking_data = db::name('vs_room_cp_movie')->alias('a') @@ -399,7 +399,7 @@ class Ranking extends Model ->field('a.user_id,a.user_id1,a.room_id,sum(c.total_price) as total,b.room_intro as room_name,b.room_cover')->find(); $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; $diff = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0)); - $diff = $diff<=0 ? 0 : $diff; + $diff = max($diff, 0); $my_ranking['rank'] = -1; $my_ranking['total'] = numberFormat($my_ranking_data['total']); $my_ranking['diff'] = $diff; @@ -485,6 +485,10 @@ class Ranking extends Model $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['exp'] - $value['exp']); } } + }else{ + foreach ($lists as $key => $value) { + $lists[$key]['rank'] = $key + 1; + } } }else{ $my_ranking = [ diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 91f6230f..00f9563c 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -187,7 +187,6 @@ class Room extends Model $map['delete_time'] = 0;//0 未删除,不等于0 表示已删除 $map['room_status'] = 1;//房间状态1正常2封禁3关闭 -// $map['is_show_room'] = 1;//是否显示房间 1是2否 $map['apply_status'] = 2;//1待审核 2审核通过 3审核失败 if($is_top == 2){ @@ -214,7 +213,7 @@ class Room extends Model $list = db::name('vs_room') ->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value,label_id,is_show_room') ->where($map) - ->order('sort desc,hot_value desc') + ->order('sort desc,hot_value desc,id asc') ->page($page, $page_limit)->select(); foreach ($list as &$v){ @@ -3280,7 +3279,7 @@ class Room extends Model //任务跳转房间推荐 - public function task_jump_room_recommend($task_id) + public function task_jump_room_recommend($task_id,$user_id) { if($task_id == 6 || $task_id == 16){ //签约房间 @@ -3326,8 +3325,16 @@ class Room extends Model if(!$room_ids){ return 0; } - //在上面获取 一个随义的id - return $room_ids[array_rand($room_ids)]; + + //获取徒弟是否在房间内 + $roomId = db::name('vs_room_visitor')->where('user_id',$user_id)->order('id desc')->value('room_id'); + if($roomId){ + //在上面获取 一个随义的id + return $room_ids[array_rand($room_ids)]; + }else{ + return 0; + } + } if($task_id == 22){ //拍卖 且有人有热度 @@ -3337,8 +3344,14 @@ class Room extends Model if(!$room_ids){ return 0; } - //在上面获取 一个随义的id - return $room_ids[array_rand($room_ids)]; + //获取徒弟是否在房间内 + $roomId = db::name('vs_room_visitor')->where('user_id',$user_id)->order('id desc')->value('room_id'); + if($roomId){ + //在上面获取 一个随义的id + return $room_ids[array_rand($room_ids)]; + }else{ + return 0; + } } if($task_id == 23){ //拍卖 且有人有热度 @@ -3348,8 +3361,14 @@ class Room extends Model if(!$room_ids){ return 0; } - //在上面获取 一个随义的id - return $room_ids[array_rand($room_ids)]; + //获取徒弟是否在房间内 + $roomId = db::name('vs_room_visitor')->where('user_id',$user_id)->order('id desc')->value('room_id'); + if($roomId){ + //在上面获取 一个随义的id + return $room_ids[array_rand($room_ids)]; + }else{ + return 0; + } } if(in_array($task_id, [7,8,13,14,18,19,20])){ //抽奖 diff --git a/application/api/model/Sign.php b/application/api/model/Sign.php index a46f9524..141fa266 100644 --- a/application/api/model/Sign.php +++ b/application/api/model/Sign.php @@ -264,6 +264,14 @@ class Sign extends Model db::rollback(); return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null]; } + + //查找是否有未完成的师徒任务 有就删除掉 + $student = db::name('vs_tasks_student')->where(['student_id' => $sign_user_id,'status' => 0])->select(); + if($student){ + foreach ($student as &$v){ + db::name('vs_tasks_student')->where(['id' => $v['id']])->updaatte(['delete_time' => time()]); + } + } }else{ $data = [ 'parent_user_id' => $max_sign_user['user_id'], @@ -390,6 +398,18 @@ class Sign extends Model if($sign_user_type == 0){ //任务:6-第一次签约师父 model('Tasks')->tasks_complete($sign_user_id,6); + //任务:21、22、23-师徒任务 + $task_ids = [21, 22, 23]; + $data_list = []; + foreach ($task_ids as $task_id) { + $data_list[] = [ + 'user_id' => $max_sign_user['user_id'], + 'student_id' => $sign_user_id, + 'task_id' => $task_id, + 'createtime' => time() + ]; + } + db::name('vs_tasks_student')->insertAll($data_list); } //判定是否 今日第一次签约徒弟 $is_first_sign_student = db::name('vs_user_sign')->where(['parent_user_id' => $max_sign_user['user_id'],'createtime' => ['>=',strtotime(date('Y-m-d'))]])->count(); diff --git a/application/api/model/UserCp.php b/application/api/model/UserCp.php index 03a0bc0e..41d2ec5c 100644 --- a/application/api/model/UserCp.php +++ b/application/api/model/UserCp.php @@ -16,7 +16,7 @@ class UserCp extends Model * @param $room_id 房间ID * @return int 0-无,1-等待回应,2-已建立Cp空间 */ - public function checkGift($from_user_id, $gift_id, $to_user_id, $room_id, $num) + public function checkGift($from_user_id, $gift_id, $to_user_id, $room_id, $num,$gift_price) { //查询是否已经存在Cp空间 $rees = Db::name('user_cp_zone')->where(['user_id1' => $from_user_id,'user_id2' => $to_user_id,'status' => 1])->find(); @@ -24,7 +24,7 @@ class UserCp extends Model $rees = Db::name('user_cp_zone')->where(['user_id1' => $to_user_id,'user_id2' => $from_user_id,'status' => 1])->find(); } if($rees){ - $this->addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $rees['id'], $num); + $this->addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $rees['id'], $num,$gift_price); return 0; } @@ -217,12 +217,12 @@ class UserCp extends Model * @param $room_id 房间ID * @param $cp_zone_id Cp空间ID */ - public function addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $cp_zone_id, $num) + public function addCpLevel($from_user_id, $to_user_id, $room_id, $gift_id, $cp_zone_id, $num,$gift_price) { $jinbi_arr = explode(',', get_system_config_value('cp_exp_rate')); $jinbi = $jinbi_arr[0]; $jinyan = $jinbi_arr[1]; - $exp = round(db::name('vs_gift')->where(['gid' => $gift_id])->value('gift_price') * $num / $jinbi * $jinyan, 2); + $exp = round($gift_price * $num / $jinbi * $jinyan, 2); $yuan_exp = Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->value('exp'); $zone_level = Db::name('user_cp_zone')->where(['id' => $cp_zone_id])->value('level'); $toUserNickname =db::name('user')->where(['id' => $to_user_id])->value('nickname')??'未知用户';