webman/app/controller/api/TaskController.php

212 lines
6.8 KiB
PHP
Raw Permalink Normal View History

<?php
namespace app\controller\api;
use app\dao\UserDao;
use app\model\User;
use support\Request;
use App\Utils\ApiResponse;
use App\model\Carousel;
use App\model\Project;
use App\model\ProjectDetailed;
use App\model\ProjectRegister;
use App\model\Carouselad;
use app\model\GetLodeLog;
use app\model\UserPhone;
use App\model\VipLevel;
use App\model\PhoneLog;
use App\Utils\API\SendCode;
use App\Utils\ApiResponseApp;
use App\dao\UserRewardDao;
use Tinywan\Jwt\JwtToken;
use GuzzleHttp\Client;
use hg\apidoc\annotation as Apidoc;
use support\Db;
/**
* @Apidoc\Title("任务控制器")
*/
class TaskController
{
/**
* @Apidoc\Title("1.0 查询当前用户积分")
* @Apidoc\Url("api/task/index")
* @Apidoc\Method("POST")
*/
public function index(Request $request)
{
$user_id = $request->data['id'];
//挂机总时长 单位秒
$res['time'] = UserDao::Totalduration($user_id);
//今天积分=0;
$res['today_money'] = UserDao::today_task_income($user_id);
//昨天积分
$res['yesterday_money'] = UserDao::today_task_income_old($user_id);
return ApiResponseApp::success($res);
}
/**
* @Apidoc\Title("1.0 发送验证码 ")
* @Apidoc\Url("api/task/send_code")
* @Apidoc\Method("POST")
2025-02-17 13:27:10 +08:00
*
*/
public function send_code(Request $request)
{
2025-02-17 13:27:10 +08:00
$phone = $request->post('phone');
$res = SendCode::send_code($phone);
2025-02-18 21:24:11 +08:00
if ($res['code'] == 3) {
return ApiResponseApp::error([], '您已登陆');
}
if ($res['code'] == 0) {
$GetLodeLog = new GetLodeLog();
$GetLodeLog->phone = $phone;
$GetLodeLog->status = 0;
$GetLodeLog->save();
}
return ApiResponseApp::success([]);
}
/**
* @Apidoc\Title("1.0 获取验证码")
* @Apidoc\Url("api/task/send_code")
* @Apidoc\Method("POST")
*/
public function get_code(Request $request)
{
2025-02-17 13:27:10 +08:00
$user_id = $request->data['id'];
$phone = $request->post('phone');
2025-02-17 13:27:10 +08:00
$GetLodeLog = GetLodeLog::where('phone', $phone)->first();
2025-02-22 22:44:28 +08:00
if(is_null($GetLodeLog)){
return ApiResponseApp::error([],'请发送验证码');
}
if ($GetLodeLog->status == 0) {
2025-02-17 13:27:10 +08:00
return ApiResponseApp::success([]);
}
2025-02-22 22:44:28 +08:00
if ($GetLodeLog->status == 1) {
2025-02-17 23:08:00 +08:00
$GetLodeLog->status = 2;
$GetLodeLog->save();
2025-02-17 13:27:10 +08:00
return ApiResponseApp::success(['code' => $GetLodeLog->code]);
}
/**
* 这里查询是否上号成功 2是等待上号
*/
2025-02-22 22:44:28 +08:00
if ($GetLodeLog->status == 2) {
$ws_build_status = SendCode::get_ws_status($phone);
2025-02-17 13:27:10 +08:00
//上号成功
if ($ws_build_status == 0) {
//检查是否在本地库中 如果不在则是全新
$count = UserPhone::where('phone', $phone)->count();
if ($count == 0) {
//查询用户名下有没有绑定手机号
if (UserPhone::where('user_id', $user_id)->count() == 0) {
//首次成功关联赠送50积分
UserRewardDao::base($user_id, 4, 50, '首次关联手机号送50积分');
$UserPhone = new UserPhone();
$UserPhone->phone = $phone;
$UserPhone->user_id = $user_id;
$UserPhone->score = 0;
$UserPhone->status = 1;
$UserPhone->time = 0;
$UserPhone->last_time =time();
$UserPhone->save();
}
}
//本地库存在
if ($count > 0) {
$UserPhone = UserPhone::where('phone', $phone)->first();
$UserPhone->user_id = $user_id;
$UserPhone->score = 0;
$UserPhone->status = 1;
$UserPhone->time = 0;
$UserPhone->last_time =time();
$UserPhone->save();
}
$GetLodeLog->delete();
}
2025-02-17 13:27:10 +08:00
return ApiResponseApp::success([]);
}
return ApiResponseApp::success([]);
}
/**
* @Apidoc\Title("1.0 返回用户ws号在线状态")
* @Apidoc\Url("api/task/phone_list")
* @Apidoc\Method("POST")
*/
public static function phone_list(Request $request)
{
$user_id = $request->data['id'];
$user = User::find($user_id);
$user_phones = UserPhone::where('user_id', $user_id)->get();
$res = [];
foreach ($user_phones as $key => $value) {
$data = [
'id' => $value->id,
'username' => $user->username,
'user_id' => $value->user_id,
//ws手机号
'phone' => $value->phone,
//积分
'score' => $value->score,
//当前在线状态 1在线0不在线
'status' => $value->status,
//创建时间
'createtime' => 1739275956,
//最后在线时间?
'last_time' => 1739564458,
//应该是在线时间单位 秒
'time' => $value->time,
'back_times' => 80,
'updatetime' => 1739564458,
'login_success' => 1,
'priority' => 0,
//备注
'remark' => $value->remark,
'proxy' => '154.200.10.132:6051',
'smscode' => '12345678',
'smsstatus' => null,
'send_count' => 8,
'del' => 0,
'send_time' => 0,
'today_count' => 0,
'last_sent_time' => 1739564482,
'uu_id' => $user->invite_code,
'quhao' => '',
'proxy_id' => 10782,
'device_name' => 'HK4-10264D',
//任务状态?
'task_status' => 1,
'status_text' => 'Status 1',
'last_time_text' => '2025-02-15 04:20:58',
'hang_up_time_text' => ''
];
$res[] = $data;
}
return ApiResponseApp::success($res);
}
/**
* @Apidoc\Title("1.0 设置用户ws号码备注名")
* @Apidoc\Url("api/task/edit_phone")
* @Apidoc\Method("POST")
*/
public static function edit_phone(Request $request)
{
// phone: 601160880622
// remark: 4
$phone = $request->post('phone');
$remark = $request->post('remark');
$user_id = $request->data['id'];
$user_phones = UserPhone::where('user_id', $user_id)->where('phone', $phone)->first();
$user_phones->remark = $remark;
$user_phones->save();
return ApiResponseApp::success([]);
}
}