Files
huangjingfen/pro_v3.5.1/app/jobs/activity/HolidayGiftJob.php
panchengyong 7acbf45ff7 new files
2026-03-07 22:29:07 +08:00

75 lines
2.8 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
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
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;
}
}
}