virtual_group_type != 3) { return true; } // 获取当前团中的所有订单 $where = [ 'mall_id' => $mall_id, 'open_group_id' => $open_group_id, 'is_pay' => 1, 'order_status' => GroupBuyEnum::JOINING, 'status' => StatusEnum::ENABLED, ]; $groupModel = GroupBuyOrder::find() ->where($where) ->orderBy('open_group_id asc') ->all(); // 是否开启了 "当参团人数≥ x 人,拼团有效期结束后,自动成团" $groupCount = count($groupModel); if ($active->virtual_group_sub_type == 1 && $groupCount < $active->group_size && $groupCount < $active->expired_auto_complete_min_num) { // 拼团失败,退款 $res = GroupBuyOrder::finishGroupBuyOrder($mall_id, $open_group_id); if (!$res) { throw new \Exception(' 开团id[ID:' . $open_group_id . ']过期,执行拼团结束失败, errmsg: ' . GroupBuyOrder::getStaticError() . PHP_EOL); } return true; } $res = GroupBuyOrder::addMainOrder($groupModel[0], $groupModel, $active, count($groupModel)); if (!$res) { \Yii::$app->custom->logs("生成主订单错误,触发:order_id:" . $groupModel[0]['open_group_id']); return false; } return true; } catch (\Exception $e) { \Yii::$app->custom->logs('拼团订单生成失败', $e->getMessage()); return false; } } }