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-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();
|
|
|
|
|
|
|
|
|
|
$user=User::where('username',$data['username'])->first();
|
|
|
|
|
// 查询用户的手机号
|
|
|
|
|
$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,
|
|
|
|
|
'total_time' => floor($time/60)
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
$res['user']=$user;
|
|
|
|
|
$res['userPhonesWithTime']=$userPhonesWithTime;
|
|
|
|
|
// 返回计算结果
|
|
|
|
|
return ApiResponse::success(200, $res);
|
|
|
|
|
}
|
2025-02-19 18:13:40 +08:00
|
|
|
|
}
|