feat : auto dispense coupon

This commit is contained in:
2025-03-19 16:25:54 +08:00
parent f4d681a23a
commit 44170132e7
10 changed files with 331 additions and 59 deletions

View File

@@ -16,11 +16,14 @@ use App\Extend\DateUtil;
use App\Model\CouponDispenseLog;
use App\Model\UserCoupon;
use App\Service\Api\BaseService;
use App\Service\ServiceTrait\Api\CouponTrait;
use Hyperf\DbConnection\Db;
use Hyperf\Di\Annotation\Inject;
class ReceiveService extends BaseService
{
use CouponTrait;
/**
* @var CouponDispenseLog
*/
@@ -71,22 +74,10 @@ class ReceiveService extends BaseService
if (empty($couponArr)) return;
foreach ($couponArr as $item) {
$validityTime = [];
switch ($item['validity_time_type']) {
case CouponCode::VALIDITY_TIME_TYPE_CYCLE:
$validityValue = json_decode($item['validity_time_value'],true);
$validityTime = [
'start_time' => date('Y-m-d H:i:s'),
'end_time' => date('Y-m-d H:i:s', time() + ($validityValue['day_num'] * DateUtil::DAY))
];
break;
case CouponCode::VALIDITY_TIME_TYPE_FIX:
$validityTime = json_decode($item['validity_time_value'],true);
break;
}
$validityTime = $this->getValidityTime((int)$item['validity_time_type'], $item['validity_time_value']);
//有效期不存在或者到期销毁当前分发逻辑
if (($validityTime['end_time'] ?? date('Y-m-d H:i:s')) < date('Y-m-d H:i:s')) {
if (empty($validityTime) || ($validityTime['end_time'] ?? date('Y-m-d H:i:s')) < date('Y-m-d H:i:s')) {
$this->destroyDispenseData[] = $item['id'];
continue;
}