webman/app/controller/admin/api/v1/JobuserController.php

235 lines
8.0 KiB
PHP
Raw Normal View History

2025-02-19 18:13:40 +08:00
<?php
namespace app\controller\admin\api\v1;
2025-02-19 20:42:25 +08:00
use app\dao\UserDao;
2025-02-21 17:31:39 +08:00
use app\dao\UserRewardDao;
2025-02-19 18:13:40 +08:00
use support\Request;
use App\Utils\ApiResponse;
use App\model\Admin;
use app\model\User;
2025-02-20 23:27:27 +08:00
use app\model\UserPhone;
use app\model\UserPhoneLog;
2025-02-19 18:13:40 +08:00
use hg\apidoc\annotation as Apidoc;
2025-02-19 20:42:25 +08:00
use app\model\Withdraw;
2025-02-19 18:13:40 +08:00
/**
2025-02-19 20:42:25 +08:00
* @Apidoc\Title("用户控制器")
* @Apidoc\Group("admin")
2025-02-19 18:13:40 +08:00
*/
class JobuserController
{
/**
* @Apidoc\Title("1.0 获取用户列表")
* @Apidoc\Url("admin/api/v1/Jobuser/lists")
* @Apidoc\Method("POST")
* @Apidoc\Param("username", type="string",require=true, desc="用户名")
* @Apidoc\Param("password", type="string",require=true, desc="密码")
*/
public function lists(Request $request)
{
2025-02-20 08:39:49 +08:00
// 获取请求的参数
$data = $request->post();
// 构建查询构造器
$query = User::query();
// 根据 key 进行模糊查询
if (!empty($data['key'])) {
$key = $data['key'];
$query->where(function ($query) use ($key) {
$query->where('username', 'like', '%' . $key . '%')
->orWhere('invite_code', 'like', '%' . $key . '%')
->orWhere('remark', 'like', '%' . $key . '%');
});
}
// 根据 status 过滤,假设 status 字段存在并且不是 -1
if (isset($data['status']) && $data['status'] != -1) {
$status = (int)$data['status']; // 强制转换为整数
2025-02-20 23:27:27 +08:00
// 使用 users 表的别名明确指定 status 字段
$query->where('users.status', $status);
2025-02-20 08:39:49 +08:00
}
2025-02-20 23:27:27 +08:00
// 使用 join 进行关联查询 f_id 对应的用户名称
$users = $query->leftJoin('users as u', 'users.f_id', '=', 'u.id') // 假设 users 表有 id 字段f_id 关联到父用户
->select('users.*', 'u.username as parent_username') // 选择用户表的字段和关联表的 username 字段
->get(); // 或者使用 paginate() 来进行分页
2025-02-20 08:39:49 +08:00
// 格式化结果为数组
return ApiResponse::success(200, $users->toArray());
2025-02-19 18:13:40 +08:00
}
2025-02-20 23:27:27 +08:00
2025-02-19 18:13:40 +08:00
/**
* @Apidoc\Title("1.0 封禁用户")
* @Apidoc\Url("admin/api/v1/Jobuser/black")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function black(Request $request)
{
// 获取请求数据
$data = $request->post();
$user = User::find($data['id']);
$user->status = 0;
$user->save();
return ApiResponse::success(200, []);
}
2025-02-19 20:42:25 +08:00
/**
2025-02-19 18:13:40 +08:00
* @Apidoc\Title("1.0 解禁用户")
* @Apidoc\Url("admin/api/v1/Jobuser/outblack")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function outblack(Request $request)
{
// 获取请求数据
$data = $request->post();
$user = User::find($data['id']);
$user->status = 1;
$user->save();
return ApiResponse::success(200, []);
}
2025-02-19 20:42:25 +08:00
/**
* @Apidoc\Title("1.0 查询用户树")
* @Apidoc\Url("admin/api/v1/Jobuser/getSonId")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function getSonId(Request $request)
{
// 获取请求数据
$data = $request->post();
$user = User::find($data['id']);
$user->status = 1;
$user->save();
return ApiResponse::success(200, []);
}
/**
* @Apidoc\Title("1.0 查询用户树")
* @Apidoc\Url("admin/api/v1/Jobuser/getSonId")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function del(Request $request)
{
// 获取请求数据
$data = $request->post();
UserDao::del($data['id']);
return ApiResponse::success(200, []);
}
/**
* @Apidoc\Title("1.0 查询用户提现记录")
* @Apidoc\Url("admin/api/v1/Jobuser/getWithdraw")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function getWithdraw(Request $request)
{
// 获取请求数据
$data = $request->post();
$Withdraw = Withdraw::where('user_id', $data['id'])->orderByDesc('id')->get();
return ApiResponse::success(200, $Withdraw);
}
/**
* @Apidoc\Title("1.0 修改用户备注")
* @Apidoc\Url("admin/api/v1/Jobuser/set_user_remark")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
* @Apidoc\Param("remark", type="string",require=true, desc="用户备注")
*/
public function set_user_remark(Request $request)
{
// 获取请求数据
$data = $request->post();
2025-02-20 08:39:49 +08:00
$user = User::find($data['id']);
$user->remark = $data['remark'];
2025-02-19 20:42:25 +08:00
$user->save();
return ApiResponse::success(200, []);
}
2025-02-20 08:39:49 +08:00
/**
2025-02-19 20:42:25 +08:00
* @Apidoc\Title("1.0 修改用户密码")
* @Apidoc\Url("admin/api/v1/Jobuser/set_user_password")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
* @Apidoc\Param("password", type="string",require=true, desc="密码")
*/
public function set_user_password(Request $request)
{
// 获取请求数据
$data = $request->post();
2025-02-20 08:39:49 +08:00
$user = User::find($data['id']);
2025-02-19 20:42:25 +08:00
$user->password = password_hash($data['password'], PASSWORD_DEFAULT);
$user->save();
return ApiResponse::success(200, []);
}
2025-02-20 08:39:49 +08:00
/**
* @Apidoc\Title("1.0 查看用户提现记录")
* @Apidoc\Url("admin/api/v1/Jobuser/set_user_password")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
*/
public function get_user_withdraw(Request $request)
{
// 获取请求数据
$data = $request->post();
2025-02-20 23:27:27 +08:00
$Withdraw = Withdraw::where('user_id', $data['id'])->orderByDesc('id')->get();
2025-02-20 08:39:49 +08:00
return ApiResponse::success(200, $Withdraw);
}
2025-02-20 23:27:27 +08:00
/**
* @Apidoc\Title("1.0 查询用户手机号和在线时间")
* @Apidoc\Url("admin/api/v1/Jobuser/set_user_password")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="username",require=true, desc="用户名称")
*/
public function get_user_wphone(Request $request)
{
// 获取请求数据
$data = $request->post();
2025-02-21 17:31:39 +08:00
$user = User::where('username', $data['username'])->first();
2025-02-20 23:27:27 +08:00
// 查询用户的手机号
$UserPhone = UserPhone::where('user_id', $user->id)->get();
// 创建一个数组来存储手机号和对应的在线时间
$userPhonesWithTime = [];
// 遍历每个手机号,查询该手机号的在线时间总和
foreach ($UserPhone as $v) {
$time = UserPhoneLog::where('phone', $v->phone)->sum('time');
// 将手机号和总时间添加到结果数组中
$userPhonesWithTime[] = [
'phone' => $v->phone,
2025-02-21 17:31:39 +08:00
'total_time' => floor($time / 60)
2025-02-20 23:27:27 +08:00
];
}
2025-02-21 17:31:39 +08:00
$res['user'] = $user;
$res['userPhonesWithTime'] = $userPhonesWithTime;
2025-02-20 23:27:27 +08:00
// 返回计算结果
return ApiResponse::success(200, $res);
}
2025-02-21 17:31:39 +08:00
/**
* @Apidoc\Title("1.0 增减用户积分")
* 减法传递 负数 正数增加
* @Apidoc\Url("admin/api/v1/Jobuser/add_money")
* @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="用户id")
* @Apidoc\Param("money", type="int",require=true, desc="金额")
* @Apidoc\Param("memo", type="string",require=true, desc="备注")
*/
public function add_money(Request $request)
{
// 获取请求数据
$data = $request->post();
///用户id
$user_id = $data['id'];
//金额
$money = $data['money'];
//备注
$memo = $data['memo'];
UserRewardDao::adjust($user_id, $money, $memo);
// 返回计算结果
return ApiResponse::success(200, []);
}
2025-02-19 18:13:40 +08:00
}