|
- <?php
- /**
- * Created by PhpStorm.
- * User: fuhc
- * Date: 2017-10-24
- * Time: 10:30
- */
-
- namespace backend\modules\api\logic;
-
- use backend\modules\api\models\ErrorOrderLog;
- use backend\modules\api\models\OrderTicketCheck;
- use common\models\Msg;
- use common\util\CurlInterface;
- use Yii;
- use backend\modules\api\models\OrderMain;
- use backend\modules\api\util\Util;
- use backend\modules\api\models\BaseSupplier;
-
- class SubmitOrder
- {
- /**
- * Function Description:门票退单
- * Function Name: CancelTicketOrder
- *
- * @return array
- *
- * @author 张帅
- */
- function CancelTicketOrder($param){
- $order_main = new OrderMain();
-
- #region 获取参数
- $order_id = $param['order_id'];
- $user_id = $param['user_id'];
- $cancel_reason = $param['cancel_reason'];
- // $order_id = Yii::$app->request->post('order_id');//订单号(必传)
- // $user_id = Yii::$app->request->post('user_id', 1);//用户id 默认1
- // $cancel_reason = Yii::$app->request->post('cancel_reason', '系统退单');//退票原因 默认:系统退单
- #endregion
- if ($order_id == "") {
- return json_encode(["code" => "1", "info" => "缺少订单号"]);
- }
- #region 1.获取订单详情
- $order_info = $order_main->getTicketOrderInfo($order_id);
- if (count($order_info) == 0) {
- $result['code'] = '0';
- $result['info'] = '订单已取消或不存在';
- return $result;
- }
- #endregion
-
- #region 2.取消订单
- $update_user_id = $user_id;
- $result = $order_main->cancelTicketOrder($order_id, $order_info, $update_user_id, $cancel_reason);
- $result["user_id"] = $user_id;
- #endregion
- //TODO
- //update: fuhc 2018-03-13 取消保险订单
- if(!empty($order_info[0]['order_confirm_code'])){
- $cancelParam = [
- 'policyno'=>$order_info[0]['order_confirm_code']
- ];
- $curl = new CurlInterface($cancelParam, 5);
- $cancelResult = $curl->execute('http://'. CS1_DOMAIN. '/api/sunshine-insurance/cancel-insurance', 'POST');
- $cancelResult = json_decode($cancelResult,true);
- if($cancelResult['flag']){
- //如果保险取消失败,则发送短信通知
- $config = Yii::$app->params;
- if (empty($config['YunYinPhone']) == false) {
- foreach ($config['YunYinPhone'] as $phone) {
- $msg = "保险直连取消失败,请及时确认并取消。订单号:".$order_id;
- Msg::sendTelMsg($phone, $msg);
- }
- }
- }else{
-
- }
- }
- // #region 3. 微信门票退单通知微信端
- // if ($result['code'] == 0 && $user_id != 698) {
- // $outside_sale_org_id = $order_main->getOutsideSaleOrgId($order_id);
- // if ($outside_sale_org_id == 164) {
- // $util = new Util();
- // $cancel_push = $util::interfaceZzcx($order_id, 2);
- // //推送错误记录错误
- // if ($cancel_push['code'] != 0) {
- // $error_order_info = new ErrorOrderLog();
- // if (isset($cancel_push['info'])) {
- // $error_msg = $cancel_push['info'];
- // } else {
- // $error_msg = '';
- // }
- // $error_order_info->istOrderLog($order_id, '微信车票订单通知微信端返回值错误 ' . $error_msg);
- // }
- // }
- // }
- #endregion
- return $result;
- }
-
- /**
- * Function Description:操作订单渠道商和供应商的预付款
- * Function Name: SupplierBalance
- * @param $order_id
- * @param $pay_type
- * @param $memo
- *
- *
- * @author 娄梦宁
- */
- public function SupplierBalance($order_id,$pay_type,$memo){
- $base_supplier = new BaseSupplier();
- $order_main=new OrderMain();
- $opera_supplier_id=$order_main->getProdTopOrgId($order_id);
- $channel_supplier_id=$order_main->getOutsideSaleOrgId($order_id);
- if ($base_supplier->getSettType($channel_supplier_id) == 288) {
- $model = new BaseBalance($order_id, $pay_type, $memo);
- $sup_data = $model->insertChannelBalanceMain();
- $model->addLog($sup_data,$memo);
- }
- if ($base_supplier->getSettType($opera_supplier_id) == 288) {
- $model = new BaseBalance($order_id, $pay_type, $memo);
- $sup_data = $model->insertBalanceMain();
- $model->addLog($sup_data,$memo);
- }
- }
-
- /**
- * Function Description:判断订单是否要插入检票信息及插入检票信息
- * Function Name: CheckTicketByOrder
- * @param $order_id
- * @param $user_id
- *
- * @return bool
- *
- * @author 娄梦宁
- */
- public function CheckTicketByOrder($order_id,$user_id)
- {
- $order_main=new OrderMain();
- $order_ticket_check=new OrderTicketCheck();
- $is_checked=$order_main->getTicketChecked($order_id);
- if($is_checked!=1){
- return false;
- }
- $order_son_arr=$order_main->getSonOrderArr($order_id);
- foreach($order_son_arr as $order_son_id){
- $order_ticket_check->AddCheckTicketInfo($order_id,$order_son_id['order_id'],$user_id);
- }
- return true;
- }
- }
|