display(); } /** * 预售订单列表 */ public function order_list() { $data = I("post."); $data['merchant_id'] = $this->merchant_id; $data['store_id'] = $this->store_id; $orderModel = new advanceOrderModel(); $parameter = $orderModel->order_condition($data); //查询条件 if ($parameter['status'] == 1) { $order_list = $orderModel->order_list($parameter['data']); //列表数据 if (!empty($order_list)) { $count = $orderModel->order_count($parameter['data']); //总条数 $order_list = $orderModel->order_list_conversion($order_list); //转数据 } $whereRoutine = array( 'b.merchant_id' => $data['merchant_id'], 'b.store_id' => $data['store_id'], 'b.pay_state' => array('neq', 0), 'b.type' => 1, 'b.order_type' => 1, 'o.order_genre' => 4, 'a.state' => array('neq', 0), 'o.status' => 1, ); $whereOneArray = [ 'o.pickup_type' => 1, ]; $whereOne['where'] = array_merge($whereOneArray, $whereRoutine); $whereTwoArray = [ 'o.pickup_type' => 2, ]; $whereTwo['where'] = array_merge($whereTwoArray, $whereRoutine); $whereThreeArray = [ 'o.pickup_type' => 3, ]; $whereThree['where'] = array_merge($whereThreeArray, $whereRoutine); $pickup_type_one = $orderModel->order_count($whereOne); //待自提数量,预售订单 $pickup_type_two = $orderModel->order_count($whereTwo); //待配送订单数量 $pickup_type_three = $orderModel->order_count($whereThree); //待发货订单数量 } $plugClass = new Plug(); //订单获取祝福码,判断该门店是否,有,并且开启 $storePlugStatusPost = [ 'store_id' => $this->store_id, 'identification_arr' => ['blessing'], ]; $storePlugStatus = $plugClass->plugStoreStatus($storePlugStatusPost);//获取状态 if ($storePlugStatus === true) { //有权限 $jurisdictionBlessing = 1; } else { //无权限 $jurisdictionBlessing = 2; } $res = array( 'status' => 1, 'msg' => '查询成功', 'data' => array( 'order_list' => $order_list ? $order_list : array(), 'count' => $count ? $count : 0, 'pickup_type_one' => $pickup_type_one ? $pickup_type_one : 0,//待自提数量 'pickup_type_two' => $pickup_type_two ? $pickup_type_two : 0,//待配送数量 'pickup_type_three' => $pickup_type_three ? $pickup_type_three : 0,//待送货数量 'jurisdiction_blessing' => $jurisdictionBlessing,//1有权限,2无权限 ) ); $this->ajaxReturn($res); } /** * 打印 */ public function print_option() { $store_id = session("storeid"); $bill_id = I("post.bill_id"); if (!$bill_id) { $res['status'] = 0; $res['msg'] = '参数缺失'; $this->ajaxReturn($res); } $data = A("PayApi/Printer")->linePrinting_v1($store_id, $bill_id, true); $this->ajaxReturn($data); } /** * 取消订单并进行退款 */ public function order_cancel() { $data = I("post."); if (empty($data['order_no']) || empty($data['uid'])) { $res = array('status' => 0, 'msg' => '缺少参数'); $this->ajaxReturn($res); } if ($this->role_info['platform_type'] == 2) { //第三方Q3ERP $OrderModel = new RetailBillOrderModel(); $third_order = $OrderModel->getFindField([ 'order_no' => $data['order_no'] ], 'third_order'); if (!empty($third_order)) { $ThirdClass = new Order(); $ThirdResult = $ThirdClass->orderCancel([ 'merchant_id' => $this->merchant_id, 'third_order' => $third_order ]); if ($ThirdResult['status'] == 0) { $result['status'] = 0; $result['msg'] = 'Q3 ERP平台取消订单失败' . $ThirdResult['message']; $this->ajaxReturn($result); } } } $parameter = array( 'order_no' => $data['order_no'], 'type' => 1, 'store_id' => $this->store_id, 'merchant_id' => $this->merchant_id, 'store' => session("ls_userinfo"), 'uid' => $data['uid'], 'user_type' => 2 ); $res = A("Api/Customer")->order_cancel($parameter); if ($res['status'] == 0) { $this->ajaxReturn($res); } $parameter['order_no'] = $res['order_no']; //售后订单 $parameter['user_type'] = 3; switch ($res['old_online']['pickup_type']) { case 1: $parameter['return_delivery_fee'] = 2; break; case 2: // no break case 3: $parameter['return_delivery_fee'] = 1; break; default: $parameter['return_delivery_fee'] = 2; break; } if ($this->role_info['platform_type'] == 2) { //第三方平台支付类型修改 $parameter['platform_type'] = 2; } $result = A("PayApi/Refund")->onlineOrderRefund_v2($parameter); //退款 if ($result['status'] == 1) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "门店预售订单取消", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 } else { $SellModel = D('RetailSell'); D('RetailBillOrder')->deleteOrder(array('id' => $res['order_id'])); D('RetailBillOnline')->deleteOrder(array('bill_id' => $res['order_id'])); $SellModel->deleteOrder(array('bill_id' => $res['order_id'])); foreach ($res['success_array'] as $value) { $SellModel->toSetDec(array("id" => $value['sell_id']), "wait_refund_num", $value['num']); } switch ($res['old_online']['order_genre']) { case 4: //预售订单 D("RetailBillAdvance")->deleteOrder(array("bill_id" => $res['order_id'])); break; } } $this->ajaxReturn($result); } /** * 导出 */ public function advance_order_export() { $data = I("get."); $data['merchant_id'] = $this->merchant_id; $data['store_id'] = $this->store_id; $data['earnest_pay_time'] = $data['earnest_pay_time'] ? explode(',', $data['earnest_pay_time']) : ''; $data['finish_time'] = $data['finish_time'] ? explode(',', $data['finish_time']) : ''; $orderModel = new advanceOrderModel(); $parameter = $orderModel->order_condition($data); //查询条件 $order_list = array(); if ($parameter['status'] == 1) { $order_list = $orderModel->order_list($parameter['data']); //列表数据 if (!empty($order_list)) { $order_list = $orderModel->order_list_conversion($order_list); //转数据 } } $headArr = array( array('index', '序号'), array('order_no', '单号'), array('vip_phone', '会员手机号'), array('all_earnest_price', '支付定金金额'), array('earnest_pay_time', '支付定金时间'), array('all_money', '支付尾款金额/全额'), array('finish_time', '支付尾款/全额金额'), array('pay_coupon_fee', '代金券优惠金额'), array('advance_name', '预售方式'), array('pay_state_name', '支付状态'), array('delivery_name', '配送方式'), array('status_name', '发货状态'), array('remark', '买家留言') ); $name = "预售订单"; $str = $name . '导出时间' . date('Y-m-d H:i:s', time()); getExcel($name, $headArr, $order_list, $str); } }