diff --git a/application/api/controller/Nobility.php b/application/api/controller/Nobility.php index 8233f18..f85040e 100644 --- a/application/api/controller/Nobility.php +++ b/application/api/controller/Nobility.php @@ -23,9 +23,8 @@ class Nobility extends BaseCom //爵位详情 public function get_nobility_detail(){ - $id = input('id'); $uid = $this->uid; - $reslut = model('Nobility')->getNobilityInfo($uid,$id); + $reslut = model('Nobility')->getNobilityInfo($uid); return V($reslut['code'],$reslut['msg'], $reslut['data']); } diff --git a/application/api/model/Nobility.php b/application/api/model/Nobility.php index 1c7e6b5..2e84295 100644 --- a/application/api/model/Nobility.php +++ b/application/api/model/Nobility.php @@ -52,12 +52,7 @@ class Nobility extends Model } //爵位详情 - public static function getNobilityInfo($user_id,$lid){ - $nobility_info = db::name('vs_nobility') - ->field('lid,name,image,images,pay_price,renew_price,pay_coin,renew_coin,day,power_ids') - ->where('delete_time', 0) - ->where('lid', $lid) - ->find(); + public static function getNobilityInfo($user_id){ $user_info = db::name('user') ->field('id,nickname,avatar') ->where('delete_time', 0) @@ -66,23 +61,26 @@ class Nobility extends Model $user_nobility_info = db::name('vs_user_nobility') ->field('id,user_id,lid,end_time') ->where('delete_time', 0) + ->where(['end_time'=>['>',time()]]) ->where('user_id', $user_id) ->find(); $return = []; - $return['user_info'] = $user_info; - $return['nobility_info']['name'] = $nobility_info['name']; - $return['nobility_info']['image'] = $nobility_info['image']; - if ($user_nobility_info) { - if($user_nobility_info['lid'] == $lid){ - $return['nobility_info']['status'] = 1; //去续费 - }else{ - $return['nobility_info']['status'] = 2; //去升级 - } - - }else{ - $return['nobility_info']['status'] = 0; //去开通 + $return['user_info'] = $user_info; //用户信息 + $return['nobility_info'] = []; //爵位信息 + $return['nobility_info']['status'] = 0; //去开通 + if($user_nobility_info){ + $nobility_info = db::name('vs_nobility') + ->field('lid,name,image,images,pay_price,renew_price,pay_coin,renew_coin,day,power_ids') + ->where('delete_time', 0) + ->where('lid', $user_nobility_info['lid']) + ->find(); + $return['nobility_info']['status'] = 1; //去续费 } - $return['nobility_info']['end_time'] = $user_nobility_info['end_time']??0; + $return['nobility_info']['lid'] = $nobility_info['lid'] ?? 0; + $return['nobility_info']['name'] = $nobility_info['name'] ?? ''; + $return['nobility_info']['image'] = $nobility_info['image'] ?? ''; + $return['nobility_info']['end_time'] = $user_nobility_info['end_time'] ?? 0; + $return['nobility_power_list'] = []; //爵位列表 $nobility_list = db::name('vs_nobility') @@ -94,33 +92,23 @@ class Nobility extends Model ->field('id,name,image') ->where('delete_time', 0) ->select(); - $power_list_zw = [ - 'id' => 0, + $nobility_list_zw = [ + 'lid' => 0, 'name' => '特权', - 'image' => '', + 'power_ids' => '', + 'nick_name_color' => '无', + 'nick_name_color_name' => '无', ]; - array_unshift($power_list, $power_list_zw); - foreach ($power_list as $key => $value) { + array_unshift($nobility_list, $nobility_list_zw); + foreach ($nobility_list as $key => &$value) { $return['nobility_power_list'][$key] = $value; - foreach ($nobility_list as $k => $v) { - $power_ids = explode(',', $v['power_ids']); - unset($v['power_ids']); - if (in_array($value['id'], $power_ids)) { + $power_ids = explode(',', $value['power_ids']); + foreach ($power_list as $k => $v) { + if (in_array($v['id'], $power_ids)) { $v['status'] = 1; //是 }else{ $v['status'] = 0; //否 } - //类型:1 是状态 2是文字 - if($value['id']==2){ - $v['type'] = 2; - $v['value'] = $v['nick_name_color'] ?? ''; - $v['color_name'] = $v['nick_name_color_name'] ?? ''; - }else{ - $v['type'] = 1; - $v['value'] = ''; - } - unset($v['nick_name_color']); - unset($v['nick_name_color_name']); $return['nobility_power_list'][$key]['nobility_list'][$k] = $v; } } @@ -259,6 +247,7 @@ class Nobility extends Model $user_nobility_info = db::name('vs_user_nobility') ->field('id,user_id,lid,end_time') ->where('delete_time', 0) + ->where(['end_time'=>['>',time()]]) ->where('user_id', $user_id) ->find(); $price = 0; @@ -275,11 +264,12 @@ class Nobility extends Model //剩余时间 $surplus_time = $old_end_time - time(); if($surplus_time > 0){ - $price = $nobility_info['pay_price'] - $surplus_time * $nobility_info['pay_price'] / ($nobility_info['day'] * 86400); + //小时 + $surplus_time_hour = floor($surplus_time / 3600); //向下取整 + $price = $nobility_info['pay_price'] - $surplus_time_hour * (($nobility_info['pay_price'] / $nobility_info['day']) / 24); //一小时的价格算 }else{ $price = $nobility_info['pay_price']; } - } }else{ //未购买 新购 $price = $nobility_info['pay_price'];