Files
hyperf_service/app/Cron/Coupon/UserCouponTask.php
2025-08-06 11:41:35 +08:00

45 lines
1.0 KiB
PHP

<?php
/**
* This crontab file is part of item.
*
* @author ctexthuang
* @contact ctexthuang@qq.com
*/
declare(strict_types=1);
namespace App\Cron\Coupon;
use App\Constants\Common\CouponCode;
use App\Lib\Log;
use App\Model\UserCoupon;
use Hyperf\Crontab\Annotation\Crontab;
use Hyperf\Di\Annotation\Inject;
#[Crontab(rule: "* * * * *", name: "UserCouponTask", singleton: true , callback: "execute", memo: "每秒执行优惠券过期")]
class UserCouponTask
{
/**
* @var Log
*/
#[Inject]
protected Log $log;
/**
* @var UserCoupon
*/
#[Inject]
protected UserCoupon $userCouponModel;
public function execute()
{
try {
$this->userCouponModel
->whereTime('validity_end_time', '<', date('Y-m-d H:i:s'))
->where('status', CouponCode::COUPON_STATUS_UNUSED)
->update(['status' => CouponCode::COUPON_STATUS_EXPIRE]);
}catch (Exception $e){
$this->log->error(__CLASS__.$e->getMessage());
}
}
}