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' => '成功']; + } }