| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace addons\SecondaryCard\common\global_func\Order;
- use addons\ReservationService\common\models\ReservationServiceOrder;
- use addons\SecondaryCard\common\models\SecondaryCardOrder;
- use addons\SecondaryCard\common\models\SecondaryCardUseLog;
- use addons\SecondaryCard\common\service\SecondaryCardOrderService;
- use common\enums\AddonsEnum;
- use common\models\mall\MallAddons;
- class OrderList
- {
- public static function getApiOrderList($params)
- {
- if (!isset($params['order']) || !is_array($params['order'])) return [];
- $marketing_ids = [];
- foreach ($params['order'] as $val) {
- if ($val['order_source'] == 'Reserve' && $val['marketing_type'] == 'SecondaryCard') {
- $marketing_ids[] = $val['marketing_id'];
- }
- }
- if (!empty($marketing_ids)) {
- $secondary_card_order_list = SecondaryCardOrder::lists(['where' => [['id' => $marketing_ids]], 'index' => 'id','with'=>['secondaryCard']]);
- }
- // 判断是否安装了预约服务插件
- if (MallAddons::isInstall($params['mall_id'], AddonsEnum::ADDONS_NAME_RESERVATION_SERVICE)) {
- $order_ids = array_column($params['order'],'id');
- $reservation_service_order_list = ReservationServiceOrder::lists(['where'=>[['order_id'=>$order_ids]],'index'=>'order_id']);
- $reservation_service_order_ids = array_column($reservation_service_order_list,'id');
- $use_log_list = SecondaryCardUseLog::lists(['where'=>[['reservation_service_order_id'=>$reservation_service_order_ids]],'index'=>'reservation_service_order_id']);
- }
- foreach ($params['order'] as &$item) {
- if ($item['order_source'] == 'Reserve' && $item['marketing_type'] == 'SecondaryCard') {
- if (!empty($secondary_card_order_list) && isset($secondary_card_order_list[$item['marketing_id']])) {
- $item['is_secondary_card'] = 1;
- $secondary_card_order = $secondary_card_order_list[$item['marketing_id']];
- $item['secondary_card'] = [
- 'name' => $secondary_card_order['secondaryCard']['name'],
- 'font_color' => $secondary_card_order['secondaryCard']['font_color'],
- 'background' => $secondary_card_order['secondaryCard']['background'],
- 'reservation_cancel_hour' => $secondary_card_order['secondaryCard']['reservation_cancel_hour'],
- 'appointment_interval_duration' => $secondary_card_order['secondaryCard']['appointment_interval_duration'],
- 'service' => json_decode($secondary_card_order['secondaryCard']['service'],true),
- 'order_no' => $secondary_card_order['order_no'],
- 'secondary_card_order_order_id' => $secondary_card_order['id'],
- 'main_order_id' => $item['id'],
- 'reservation_cancel_type' => $secondary_card_order['secondaryCard']['reservation_cancel_type'],
- 'reservation_cancel_deduct' => $secondary_card_order['secondaryCard']['reservation_cancel_deduct'],
- ];
- $item['secondary_card']['order_source'] = SecondaryCardOrderService::getSourceName($secondary_card_order,$secondary_card_order['secondaryCard']['use_type']);
- $service_times = 1;
- if (isset($reservation_service_order_list[$item['id']])) {
- $reservation_service_order_id = $reservation_service_order_list[$item['id']]['id'];
- if (isset($use_log_list[$reservation_service_order_id])) {
- $service_times = $use_log_list[$reservation_service_order_id]['clerk_nums'];
- }
- }
- $item['secondary_card']['service_times'] = $service_times;
- $item['secondary_card_order_no'] = $secondary_card_order['order_no'];
- }
- }
- }
- return $params['order'];
- }
- }
|