feat: 初始化雄戈商城服务端代码与Webhook自动部署配置

这个提交包含在:
wikiboss
2026-09-12 16:40:24 +08:00
当前提交 e90ec58e61
共有 6438 个文件被更改,包括 1136083 次插入 和 0 次删除

查看文件

@@ -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());
}
}
}