Files
huangjingfen/pro_v3.5.1/app/jobs/activity/HolidayGiftJob.php
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

69 lines
2.3 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
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
namespace app\jobs\activity;
use app\services\activity\holiday\HolidayGiftPushServices;
use app\services\activity\holiday\HolidayGiftRecordServices;
use crmeb\basic\BaseJobs;
use crmeb\traits\QueueTrait;
use think\facade\Log;
/**
* 节日有礼用户权益处理队列
* Class HolidayGiftJob
* @package app\jobs\activity
*/
class HolidayGiftJob extends BaseJobs
{
use QueueTrait;
/**
* 处理单个用户的节日有礼权益
* @param int $uid 用户ID
* @param array $giftInfo 活动信息
* @return bool
*/
public function doJob(int $uid, array $giftInfo)
{
try {
/** @var HolidayGiftPushServices $holidayGiftPushServices */
$holidayGiftPushServices = app()->make(HolidayGiftPushServices::class);
$holidayGiftRecordServices = app()->make(HolidayGiftRecordServices::class);
//检查是否需要提前推送或当天推送
if (!$holidayGiftPushServices->checkAdvancePush($giftInfo, true, $uid)) {
return true;
}
// 检查用户是否符合活动条件
if (!$holidayGiftPushServices->checkUserCondition($uid, $giftInfo)) {
return true;
}
// 检查是否可以推送(频次限制)
if ($holidayGiftRecordServices->checkUserCanPush($uid, $giftInfo['id'])) {
return true;
}
// 执行赠送权益
$grantResults = $holidayGiftPushServices->grantUserBenefits($uid, $giftInfo);
// 记录推送记录(无论成功失败都要记录)
$holidayGiftPushServices->recordPushLog($uid, $giftInfo);
if ($grantResults) {
Log::info("用户{$uid}节日有礼处理成功活动ID{$giftInfo['id']}");
} else {
Log::warning("用户{$uid}节日有礼权益赠送失败活动ID{$giftInfo['id']},详情:" . json_encode($grantResults['details']));
}
return true;
} catch (\Exception $e) {
Log::error("用户{$uid}节日有礼处理失败: " . $e->getMessage());
return false;
}
}
}