diff --git a/application/api/controller/Nobility.php b/application/api/controller/Nobility.php index 214b0a9..8233f18 100644 --- a/application/api/controller/Nobility.php +++ b/application/api/controller/Nobility.php @@ -28,4 +28,12 @@ class Nobility extends BaseCom $reslut = model('Nobility')->getNobilityInfo($uid,$id); return V($reslut['code'],$reslut['msg'], $reslut['data']); } + + //爵位购买价格 + public function get_nobility_price(){ + $id = input('id'); + $uid = $this->uid; + $reslut = model('Nobility')->buyNobilityPrice($uid,$id); + return V($reslut['code'],$reslut['msg'], $reslut['data']); + } } diff --git a/application/api/model/Nobility.php b/application/api/model/Nobility.php index 64eec05..c92b607 100644 --- a/application/api/model/Nobility.php +++ b/application/api/model/Nobility.php @@ -197,4 +197,101 @@ class Nobility extends Model db::name('vs_user_nobility_log')->insert($log_data); return ['code' => 1, 'msg' => '成功']; } + + //购买爵位价格 + public static function buyNobilityPrice($user_id,$lid){ + $nobility_info = db::name('vs_nobility') + ->field('lid,name,image,pay_price,renew_price,day,power_ids') + ->where('delete_time', 0) + ->where('lid', $lid) + ->find(); + if (!$nobility_info) { + return ['code' => 0, 'msg' => '爵位不存在']; + } + $user_info = db::name('user') + ->field('id,nickname,avatar') + ->where('delete_time', 0) + ->where('id', $user_id) + ->find(); + if (!$user_info) { + return ['code' => 0, 'msg' => '用户不存在']; + } + $user_nobility_info = db::name('vs_user_nobility') + ->field('id,user_id,lid,end_time') + ->where('delete_time', 0) + ->where('user_id', $user_id) + ->find(); + $price = 0; + if ($user_nobility_info) { //已购买过 续费 + if($user_nobility_info['lid'] == $lid){ //续费 + $price = $nobility_info['renew_price']; + }else{ //升级 + $old_nobility_info = db::name('vs_nobility') + ->field('lid,name,pay_price,pay_coin') + ->where('delete_time', 0) + ->where('lid', $user_nobility_info['lid']) + ->find(); + $old_end_time = $user_nobility_info['end_time']; + //剩余时间 + $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); + }else{ + $price = $nobility_info['pay_price']; + } + + } + }else{ //未购买 新购 + $price = $nobility_info['pay_price']; + } + $power_ids = explode(',', $nobility_info['power_ids']); + $power_list = db::name('vs_nobility_power') + ->field('id,content') + ->where('delete_time', 0) + ->where('id', 'in', $power_ids) + ->select(); + $return = [ + 'lid' => $nobility_info['lid'], + 'nobility_name' => $nobility_info['name'], + 'nobility_image' => $nobility_info['image'], + 'price' => $price, + 'day' => $nobility_info['day'], + 'power_list' => $power_list, + ]; + return ['code' => 1, 'msg' => '成功', 'data' => $return]; + } + + //获取用户爵位信息 + public static function getUserNobilityInfo($user_id){ + $user_nobility_info = db::name('vs_user_nobility') + ->field('id,user_id,lid,end_time') + ->where('delete_time', 0) + ->where('user_id', $user_id) + ->find(); + if($user_nobility_info){ + $nobility_info = db::name('vs_nobility') + ->field('lid,name,image,pay_price,renew_price,day,power_ids') + ->where('delete_time', 0) + ->where('lid', $user_nobility_info['lid']) + ->find(); + //权限 + $power_ids = []; + if($nobility_info){ + $power_ids = explode(',', $nobility_info['power_ids']); + } + $power_list = db::name('vs_nobility_power') + ->field('id,name,content') + ->where('delete_time', 0) + ->where('id', 'in', $power_ids) + ->select(); + } + $return = [ + 'lid' => $user_nobility_info['lid'] ?? 0, + 'nobility_name' => $nobility_info['name'] ?? '', + 'nobility_image' => $nobility_info['image'] ?? '', + 'end_time' => $user_nobility_info['end_time'] ?? 0, + 'power_list' => $power_list ?? [], + ]; + return $return; + } }