This commit is contained in:
2025-08-14 17:19:26 +08:00
parent 30abda5ba7
commit 281248fd04
245 changed files with 21051 additions and 61 deletions

View File

@@ -0,0 +1,128 @@
<?php
namespace app\admin\controller;
use app\common\controller\Backend;
use app\admin\model\SysCaptcha;
use app\common\library\DatabaseRoute;
use think\facade\Db;
class VipDetails extends Backend
{
protected array $noNeedPermission = ['selectVipDetailsList'];
public function sendVip()
{
$data = $this->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('成功');
}
}