request->post(); $userId = $data['userId'] ?? null; $num = $data['num'] ?? null; $userVip = \app\admin\model\User::selectUserVipByUserId($userId); // 获取当前时间戳 $currentTime = time(); // 如果用户已有 VIP 记录 if ($userVip) { // 如果当前是 VIP 会员(假设 is_vip=2 表示 VIP) if ($userVip['is_vip'] == 2) { // 从现有结束时间开始叠加(转换为时间戳) $endTime = strtotime($userVip['end_time']); } else { // 非 VIP 从当前时间开始 $endTime = $currentTime; } } else { // 新建 VIP 记录 $userVip = [ 'user_id' => $userId, 'create_time' => date('Y-m-d H:i:s', $currentTime) ]; $endTime = $currentTime; } // 设置 VIP 类型和状态 $userVip['vip_type'] = 1; $userVip['is_vip'] = 2; // 计算新的结束时间(增加指定天数,每天 86400 秒) $endTime += $num * 86400; $userVip['end_time'] = date('Y-m-d H:i:s', $endTime); $db = Db::connect(get_master_connect_name())->name('user_vip'); // 保存或更新记录 if (isset($userVip['vip_id'])) { // 更新记录 $db->where('vip_id', $userVip['vip_id']) ->update($userVip); } else { // 插入新记录 $db->insert($userVip); } $this->success(); } public function selectVipDetailsList() { $get = $this->request->get(); $page = $get['page'] ?? null; $limit = $get['limit'] ?? null; $db = Db::connect(get_slave_connect_name())->name('vip_details'); $count = $db->count(); $data = $db->limit(page($page, $limit), $limit)->select()->toArray(); $this->n_success(['data' => [ 'currPage' => $get['page'], 'pageSize' => $get['limit'], 'list' => array_map(function ($item) { $item['id'] = (string)$item['id']; return $item; }, $data), 'totalCount' => $count, 'totalPage' => ceil($count / $get['limit']), ]]); } public function insertVipDetails() { $post = $this->request->post(); $data['vip_name_type'] = $post['vipNameType'] ?? null; $data['money'] = $post['money'] ?? null; $data['pay_diamond'] = $post['payDiamond'] ?? null; $db = Db::connect(get_master_connect_name()); $res = $db->name('vip_details')->insert($data); if($res) { $this->success('成功'); }else { $this->error('失败'); } } public function updateVipDetails() { $post = $this->request->post(); $id = $post['id'] ?? null; $data['vip_name_type'] = $post['vipNameType'] ?? null; $data['money'] = $post['money'] ?? null; $data['pay_diamond'] = $post['payDiamond'] ?? null; $db = Db::connect(get_master_connect_name()); $res = $db->name('vip_details')->where(['id' => $id])->update($data); $this->success('成功'); } public function deleteVipDetails() { $post = $this->request->param(); if(empty($post['id'])) { $this->error('参数不完整'); } $id = $post['id']; $db = Db::connect(get_master_connect_name()); $res = $db->name('vip_details')->where(['id' => $id])->delete(); $this->success('成功'); } }