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

236 lines
8.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\controller\admin\api\v1;
use app\dao\UserDao;
use app\dao\UserRewardDao;
use support\Request;
use App\Utils\ApiResponse;
use App\model\Admin;
use app\model\User;
use app\model\UserPhone;
use app\model\UserPhoneLog;
use hg\apidoc\annotation as Apidoc;
use app\model\Withdraw;
/**
* @Apidoc\Title("用户控制器")
* @Apidoc\Group("admin")
*/
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)
{
// 获取请求的参数
$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']; // 强制转换为整数
// 使用 users 表的别名明确指定 status 字段
$query->where('users.status', $status);
}
// 使用 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 字段
->orderBy('id', 'desc')
->get(); // 或者使用 paginate() 来进行分页
// 格式化结果为数组
return ApiResponse::success(200, $users->toArray());
}
/**
* @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, []);
}
/**
* @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, []);
}
/**
* @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();
$user = User::find($data['id']);
$user->remark = $data['remark'];
$user->save();
return ApiResponse::success(200, []);
}
/**
* @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();
$user = User::find($data['id']);
$user->password = password_hash($data['password'], PASSWORD_DEFAULT);
$user->save();
return ApiResponse::success(200, []);
}
/**
* @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();
$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_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);
}
/**
* @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, []);
}
}