|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- <?php
- /**
- *
- * ============================================================================
- * * 版权所有 蜘蛛出行 * *
- * 网站地址: http://www.zhizhuchuxing.com
- * ----------------------------------------------------------------------------
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
- * 使用;不允许对程序代码以任何形式任何目的的再发布。
- * ============================================================================
- * Author By: 张帅
- * PhpStorm CheckSubmitData.php
- * Create By 2017/4/14 18:16 $
- */
-
- namespace backend\modules\api\logic;
-
- use backend\modules\api\models\BaseSupplier;
- use common\models\CheckData;
- use yii\db\Query;
-
- class CheckSubmitData extends Query
- {
- /**
- * Function Description:检验巴士数据
- * Function Name: checkBusProductData
- * @param string $bus_product 巴士产品
- *
- * @return array|bool|mixed
- *
- * @author 张帅
- */
- public function checkBusProductData($bus_product)
- {
- $check_data = new CheckData();
- if ($bus_product == '' || $bus_product == 'null') {
- return [];
- } else {
- #region 将json数据转为数组
- if (is_null(json_decode($bus_product, true))) {
- return false;
- }
- $bus_product_arr = json_decode($bus_product, true);
- #endregion
-
- foreach ($bus_product_arr as $key => $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;
- }
- }
|