242 行
9.1 KiB
PHP
可执行文件
242 行
9.1 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Controller;
|
|
|
|
use Common\Model\RetailBillAdvanceModel as advanceOrderModel;
|
|
|
|
use Common\Business\Plug;
|
|
use Common\Model\RetailBillOrderModel;
|
|
use LittleGift\Business\Order;
|
|
|
|
//[1.8.68]
|
|
|
|
/**
|
|
* 预售订单管理
|
|
* Class AdvanceOrderController
|
|
* @package Retail\Controller
|
|
*/
|
|
class AdvanceOrderController extends BaseController
|
|
{
|
|
public function index()
|
|
{
|
|
$this->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);
|
|
}
|
|
} |