44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Models\CouponSendTask;
|
|
use App\Models\CouponTaskLog;
|
|
|
|
class AdminSendCouponService
|
|
{
|
|
public function startTaskById(int $id)
|
|
{
|
|
$task = CouponSendTask::findOrFail($id);
|
|
$this->startTask($task);
|
|
}
|
|
|
|
public function startTask(CouponSendTask $task)
|
|
{
|
|
$nowTime = now();
|
|
$task->status = 1;
|
|
switch ($task->type) {
|
|
case 1://指定用户
|
|
$insertLogs = [];
|
|
$userIds = explode(',', json_decode($task->value, true)['user_ids']);
|
|
foreach ($userIds as $userId) {
|
|
$insertLogs[] = [
|
|
'task_id'=>$task->id,
|
|
'coupon_id'=>$task->coupon_id,
|
|
'user_id'=>$userId,
|
|
'num'=>$task->num,
|
|
'created_at'=>$nowTime,
|
|
'updated_at'=>$nowTime,
|
|
];
|
|
}
|
|
$res = CouponTaskLog::insert($insertLogs);
|
|
if ($res) {
|
|
$task->status = 2;
|
|
}
|
|
break;
|
|
}
|
|
|
|
$task->save();
|
|
}
|
|
}
|