From d96985b7129f4ca753519a07b64004206f76f5bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=92=8A?= Date: Wed, 5 Nov 2025 11:14:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=B5=E4=BD=8D=E6=8E=A5=E5=8F=A3=E6=8F=90?= =?UTF-8?q?=E4=BA=A4-=E8=B4=AD=E4=B9=B0=E7=88=B5=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Nobility.php | 88 ++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/application/api/model/Nobility.php b/application/api/model/Nobility.php index eb1ea01..64eec05 100644 --- a/application/api/model/Nobility.php +++ b/application/api/model/Nobility.php @@ -109,4 +109,92 @@ class Nobility extends Model } return ['code' => 1, 'msg' => '成功', 'data' => $return]; } + + //购买爵位 + public static function buyNobility($user_id,$lid){ + $nobility_info = db::name('vs_nobility') + ->field('lid,name,pay_price,pay_coin') + ->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(); + if ($user_nobility_info) { //已购买过 续费 + if($user_nobility_info['lid'] == $lid){//续费 + $is_renew = 1; + if($user_nobility_info['end_time'] > time()){ + $old_end_time = $user_nobility_info['end_time']; + }else{ + $old_end_time = time(); + } + $end_time = $old_end_time + $nobility_info['day'] * 86400; + $data = [ + 'end_time' => $end_time, + 'updatetime' => time(), + ]; + $re = db::name('vs_user_nobility')->where('id', $user_nobility_info['id'])->update($data); + if (!$re) { + return ['code' => 0, 'msg' => '失败']; + } + + }else{ //升级 + $is_renew = 2; + if($user_nobility_info['end_time'] > time()){ + $old_end_time = $user_nobility_info['end_time']; + }else{ + $old_end_time = time(); + } + $end_time = $old_end_time + $nobility_info['day'] * 86400; + $data = [ + 'lid' => $lid, + 'user_id' => $user_id, + 'end_time' => $end_time, + 'createtime' => time(), + ]; + db::name('vs_user_nobility')->where('id', $user_nobility_info['id'])->update(['delete_time'=>time()]); + $re = db::name('vs_user_nobility')->insert($data); + if (!$re) { + return ['code' => 0, 'msg' => '失败']; + } + } + }else{ //未购买 新购 + $is_renew = 0; + $end_time = time() + $nobility_info['day'] * 86400; + $data = [ + 'user_id' => $user_id, + 'lid' => $lid, + 'end_time' => $end_time, + 'createtime' => time(), + ]; + $re = db::name('vs_user_nobility')->insert($data); + if (!$re) { + return ['code' => 0, 'msg' => '失败']; + } + } + //记录日志 + $log_data = [ + 'user_id' => $user_id, + 'lid' => $lid, + 'day' => $nobility_info['day'], + 'end_time' => $end_time, + 'is_renew' => $is_renew, + 'createtime' => time(), + ]; + db::name('vs_user_nobility_log')->insert($log_data); + return ['code' => 1, 'msg' => '成功']; + } }