feat: 初始化雄戈商城服务端代码与Webhook自动部署配置
这个提交包含在:
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace addons\shopro\job;
|
||||
|
||||
use addons\shopro\model\Activity;
|
||||
use addons\shopro\model\RobOrderModel;
|
||||
use think\queue\Job;
|
||||
|
||||
/**
|
||||
* 抢购自动分配名额
|
||||
*/
|
||||
class ActivityRobOrder extends BaseJob
|
||||
{
|
||||
|
||||
/**
|
||||
* 抢购自动分配名额
|
||||
*/
|
||||
public function autoRob(Job $job, $data)
|
||||
{
|
||||
try {
|
||||
$activity = $data['activity'];
|
||||
$activity = Activity::get($activity['id']);
|
||||
|
||||
if ($activity) {
|
||||
// 获取预约列表
|
||||
$orderUserId = RobOrderModel::where(['activity_id' => $activity->id, 'is_rob' => 2])
|
||||
->field('user_id')
|
||||
->select();
|
||||
|
||||
if (!empty($orderUserId)) {
|
||||
// 已提前设置资格人数
|
||||
$count = RobOrderModel::where(['activity_id' => $activity->id, 'is_rob' => 1])
|
||||
->count();
|
||||
// 剩余名额
|
||||
$num = $activity->num - $count;
|
||||
|
||||
if (!empty($num)) {
|
||||
$arr = [];
|
||||
$orderUserId = array_column(collection($orderUserId)->toArray(), 'user_id');
|
||||
|
||||
if (count($orderUserId) <= $num) {
|
||||
$arr = $orderUserId;
|
||||
} else {
|
||||
// 随机取值
|
||||
$arr = randomSelectArr($orderUserId, $num);
|
||||
}
|
||||
|
||||
// 分配资格
|
||||
foreach ($arr as $userId) {
|
||||
RobOrderModel::where(['user_id' => $userId, 'activity_id' => $activity->id])->update([
|
||||
'is_rob' => 1
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 删除 job
|
||||
$job->delete();
|
||||
} catch (\Exception $e) {
|
||||
// 队列执行失败
|
||||
\think\Log::write('queue-' . get_class() . '-autoClose' . ':执行失败,错误信息:' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户