修复定时任务计算逻辑问题
This commit is contained in:
parent
5f49d6147f
commit
1c0b6c5bf6
|
@ -34,15 +34,14 @@ class TurntableController
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Apidoc\Title("1.0 抽奖点击后暂时不知道有什么用")
|
* @Apidoc\Title("1.0 抽奖点击后 返回抽奖结构)
|
||||||
* @Apidoc\Url("api/Tturntable/lottery")
|
* @Apidoc\Url("api/Tturntable/lottery")
|
||||||
* @Apidoc\Method("POST")
|
* @Apidoc\Method("POST")
|
||||||
*/
|
*/
|
||||||
public function lottery(Request $request)
|
public function lottery(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$res=Reward::all();
|
return ApiResponseApp::success(4,'恭喜抽中1.00');
|
||||||
return ApiResponseApp::success($res);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,15 +41,4 @@ class UserPhone extends Model
|
||||||
*/
|
*/
|
||||||
public $timestamps = true;
|
public $timestamps = true;
|
||||||
|
|
||||||
/**
|
|
||||||
* 表的字段类型
|
|
||||||
* 这里我们不需要使用数据库中的每个字段的类型声明,Webman 模型会自动推导出来
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function setUp(): void
|
|
||||||
{
|
|
||||||
parent::setUp();
|
|
||||||
$this->fillable = ['user_id', 'phone', 'score', 'status', 'time', 'remark'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,18 +44,21 @@ class Task
|
||||||
// echo date('Y-m-d H:i:s')."\n";
|
// echo date('Y-m-d H:i:s')."\n";
|
||||||
// });
|
// });
|
||||||
// // 每5秒执行一次
|
// // 每5秒执行一次
|
||||||
new Crontab('0 */1 * * * *', function(){
|
new Crontab('0 */15 * * * *', function(){
|
||||||
$phones=UserPhone::all();
|
// $phones=UserPhone::all();
|
||||||
foreach($phones as $key =>$value){
|
// foreach($phones as $key =>$value){
|
||||||
//如果大于60秒这里单位是秒就给他20个积分
|
// //如果大于60秒这里单位是秒就给他20个积分
|
||||||
if($value->time>3600){
|
// if($value->time>3600){
|
||||||
$score =intdiv($value->time,3600)*20;
|
// $div =intdiv($value->time,3600);
|
||||||
$value->score=$score;
|
// $score=$div*20;
|
||||||
$value->time-=intdiv($value->time,3600)*3600;
|
// $time_tmp=$value->time-($div*3600);
|
||||||
$value->save();
|
// $value->score+=$score;
|
||||||
UserRewardDao::Onhookincome($value->user_id,$score);
|
// $value->time=$time_tmp;
|
||||||
}
|
// var_dump($time_tmp);
|
||||||
}
|
// $value->save();
|
||||||
|
// UserRewardDao::Onhookincome($value->user_id,$score);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace process;
|
namespace process;
|
||||||
|
|
||||||
use App\Utils\API\SendCode;
|
use App\Utils\API\SendCode;
|
||||||
|
@ -43,20 +44,40 @@ class Task2
|
||||||
// new Crontab('50 7 * * *', function(){
|
// new Crontab('50 7 * * *', function(){
|
||||||
// echo date('Y-m-d H:i:s')."\n";
|
// echo date('Y-m-d H:i:s')."\n";
|
||||||
// });
|
// });
|
||||||
// // 每5秒执行一次
|
// // 每5秒执行一次
|
||||||
new Crontab('*/1 * * * * *', function(){
|
new Crontab('* */1 * * * *', function () {
|
||||||
$phones=UserPhone::all();
|
$phones = UserPhone::all();
|
||||||
foreach($phones as $key =>$value){
|
foreach ($phones as $key => $value) {
|
||||||
// var_dump($value->last_time);
|
|
||||||
$currentTimestamp = time();
|
$currentTimestamp = time();
|
||||||
if(SendCode::get_ws_status($value->phone)==0){
|
|
||||||
$value->time=$value->time+$currentTimestamp-$value->last_time;
|
// 如果是挂机状态
|
||||||
$value->last_time=$currentTimestamp;
|
if (SendCode::get_ws_status($value->phone) == 0) {
|
||||||
$value->status=1;
|
// 如果在线时长超过 3600 秒
|
||||||
}else{
|
if ($value->time > 3600) {
|
||||||
$value->status=0;
|
$div = intdiv($value->time, 3600);
|
||||||
|
$score = $div * 20;
|
||||||
|
$time_tmp = $value->time - ($div * 3600);
|
||||||
|
|
||||||
|
// 更新积分
|
||||||
|
$value->score += $score;
|
||||||
|
$value->time = $time_tmp;
|
||||||
|
|
||||||
|
// 保存用户收益
|
||||||
|
UserRewardDao::Onhookincome($value->user_id, $score);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算新的在线时长
|
||||||
|
$value->time += $currentTimestamp - $value->last_time;
|
||||||
|
$value->last_time = $currentTimestamp;
|
||||||
|
|
||||||
|
// 更新状态为在线
|
||||||
|
$value->status = 1;
|
||||||
|
} else {
|
||||||
|
// 如果不在线,设置状态为 0
|
||||||
|
$value->status = 0;
|
||||||
}
|
}
|
||||||
$value->last_time=$currentTimestamp;
|
$value->last_time = $currentTimestamp;
|
||||||
|
// 最后保存数据
|
||||||
$value->save();
|
$value->save();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue