Files
huangjingfen/pro_v3.5.1/app/jobs/activity/HolidayGiftJob.php

75 lines
2.8 KiB
PHP
Raw Normal View History

2026-03-07 22:29:07 +08:00
<?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;
}
}
}