$vel) { /** * 检验数据 * 班次id 必有且不为空 * 票种id 必有且不为空 * 人数 必有且不为空,0 且必须为整数 * 价格 不必有 有则比为数字 * 车号 不必有 有则比为数字 */ if (!$check_data->checkArrayData($vel, [[['run_id', 'ticket_id'], 1], [['prod_num'], 4], [['prod_price', 'bus_no'], 3]])) { return false; } #region 检验价格和车号是否存在 $bus_product_arr[$key]['prod_price'] = !isset($vel['prod_price']) ? 0 : $vel['prod_price'];//单价 $bus_product_arr[$key]['bus_no'] = !isset($vel['bus_no']) ? 0 : $vel['bus_no'];//车号 #endregion } return $bus_product_arr; } } /** * Function Description:检验酒店数据 * Function Name: checkHotelProductData * @param string $hotel_product 酒店产品 * * @return array|bool|mixed * * @author 张帅 */ public function checkHotelProductData($hotel_product) { $check_data = new CheckData(); if ($hotel_product == '' || $hotel_product == 'null') { return []; } else { #region 将json数据转为数组 if (is_null(json_decode($hotel_product, true))) { return false; } $hotel_product_arr = json_decode($hotel_product, true); #endregion foreach ($hotel_product_arr as $key => $vel) { /** * 检验数据 * 酒店id 必有且不为空 * 基础房型id 必有且不为空 * 房型好 必有且不为空 * 房间数据 必有且数量大于0 */ if (!$check_data->checkArrayData($vel, [[['hotel_id', 'base_room_type', 'room_type'], 1], [['run_room'], 5]])) { return false; } $run_date_arr = []; foreach ($vel['run_room'] as $room_key => $room_vel) { /** * 检验数据 * 入住日期 必有且是****-**-** 5 * 人数 必有且不为空,0 且必须为整数 * 价格 不必有 有则比为数字 */ if (!$check_data->checkArrayData($room_vel, [[['run_date'], 6], [['prod_num'], 4], [['prod_price', 'back_value'], 3]])) { return false; } #region 检验价格是否存在 $hotel_product_arr[$key]['run_room'][$room_key]['prod_price'] = !isset($room_vel['prod_price']) ? 0 : $room_vel['prod_price'];//单价 $hotel_product_arr[$key]['run_room'][$room_key]['back_value'] = !isset($room_vel['back_value']) ? 0 : $room_vel['back_value'];//佣金 $hotel_product_arr[$key]['run_room'][$room_key]['run_time'] = !isset($room_vel['run_time']) ? '19:00' : $room_vel['run_time'];//单价 #endregion $run_date_arr[] = $room_vel['run_date']; } #region 获取入住酒店的起止时间 sort($run_date_arr); $hotel_product_arr[$key]['start_date'] = $run_date_arr[0]; rsort($run_date_arr); $hotel_product_arr[$key]['end_date'] = $run_date_arr[0]; #endregion } return $hotel_product_arr; } } /** * Function Description:检验门票数据 * Function Name: checkTicketProductData * @param string $ticket_product 门票产品 * * @return array|bool|mixed * * @author 张帅 */ public function checkTicketProductData($ticket_product) { $check_data = new CheckData(); if ($ticket_product == '' || $ticket_product == 'null') { return []; } else { #region 将json数据转为数组 if (is_null(json_decode($ticket_product, true))) { return false; } $ticket_product_arr = json_decode($ticket_product, true); #endregion foreach ($ticket_product_arr as $key => $vel) { /** * 检验数据 * 门票id 必有且不为空 * 游玩日期 必有且是****-**-** 5 * 子票种 必有且数量大于0 */ if (!$check_data->checkArrayData($vel, [[['ticket_id'], 1], [['run_date'], 6], [['son_ticket'], 5]])) { return false; } foreach ($vel['son_ticket'] as $son_key => $son_vel) { /** * 检验数据 * 子票种id 必有且不为空 * 人数 必有且不为空,0 且必须为整数 * 价格 不必有 有则比为数字 */ if (!$check_data->checkArrayData($son_vel, [[['son_ticket_id'], 1], [['prod_num'], 4], [['prod_price'], 3]])) { return false; } #region 检验价格是否存在 $ticket_product_arr[$key]['son_ticket'][$son_key]['prod_price'] = !isset($son_vel['prod_price']) ? 0 : $son_vel['prod_price'];//单价 #endregion } } return $ticket_product_arr; } } /** * Function Description:检验乘客数据 * Function Name: checkCustomerInfoData * @param string $customer_info 乘客数据 * * @return bool * * @author 张帅 */ public function checkCustomerInfoData($customer_info) { $check_data = new CheckData(); #region 将json数据转为数组 if (is_null(json_decode($customer_info, true)) || $customer_info == '') { return false; } $customer_info_arr = json_decode($customer_info, true); #endregion /** * 检验数据 * 顾客名称 必有且不为空 * 顾客电话 必有且不为空 * 顾客证件类型 必有且不为空 * 顾客证件号 必有且不为空 */ if (!$check_data->checkArrayData($customer_info_arr, [[['customer_name'/*, 'customer_mobile'*/, 'customer_id_type'], 1]])) { return false; } #region 检验备注 $customer_info_arr['customer_memo'] = !isset($customer_info_arr['customer_memo']) ? '' : $customer_info_arr['customer_memo'];//单价 #endregion return $customer_info_arr; } /** * Function Description:检验订单基础信息 * Function Name: checkOrderInfoData * @param array $order_info 订单基本信息 * @param float $group_order_price 组合产品总价 * @return bool|mixed * * @author 张帅 */ public function checkOrderInfoData($order_info,$group_order_price) { $check_data = new CheckData(); #region 将json数据转为数组 if (is_null(json_decode($order_info, true)) || $order_info == '') { return false; } $order_info_arr = json_decode($order_info, true); #endregion /** * 检验数据 * 用户id 必有且不为空 * 渠道id 必有且不为空 */ if (!$check_data->checkArrayData($order_info_arr, [[['user_id', 'outside_sale_org_id'], 1]])) { return false; } //对组合产品价格做检测,最多二位小数 if (!$check_data->checkArrayData(array('group_order_price'=>$group_order_price), [[['group_order_price'], 7]])) { return false; } #region 获取渠道名称和业务员 $channel_info = BaseSupplier::find()->select('sales_man,supplier_name')->where(['id' => $order_info_arr['outside_sale_org_id']])->asArray()->one(); if ($order_info_arr['sales_man'] == '') { $order_info_arr['sales_man'] = empty($channel_info['sales_man']) ? '' : $channel_info['sales_man'];//业务员 } $order_info_arr['org_name'] = empty($channel_info['supplier_name']) ? '' : $channel_info['supplier_name'];//渠道名称 #endregion #region 判断必要数据是否存在 $order_info_arr['member_id'] = !isset($order_info_arr['member_id']) ? 0 : $order_info_arr['member_id'];//会员号 $order_info_arr['outside_sale_order_no'] = !isset($order_info_arr['outside_sale_order_no']) ? '' : $order_info_arr['outside_sale_order_no'];//渠道订单号 $order_info_arr['order_book_status'] = !isset($order_info_arr['order_book_status']) ? 0 : $order_info_arr['order_book_status'];//是否预定 $order_info_arr['pay_type'] = !isset($order_info_arr['pay_type']) ? 275 : $order_info_arr['pay_type'];//付款类型 $order_info_arr['order_pay_status'] = !isset($order_info_arr['order_pay_status']) ? 0 : $order_info_arr['order_pay_status'];//是否支付 $order_info_arr['sales_man'] = !isset($order_info_arr['sales_man']) ? '' : $order_info_arr['sales_man'];//业务员 $order_info_arr['order_status'] = $order_info_arr['order_pay_status'] == 0 ? 145 : 146;//订单状态 #endregion return $order_info_arr; } }