<?php
|
|
namespace app\operations\controller\order;
|
|
use app\operations\controller\Controller;
|
use app\operations\model\order\Order as OrderModel;
|
use app\common\enum\settings\DeliveryTypeEnum;
|
use app\operations\model\settings\Express as ExpressModel;
|
use app\operations\model\store\Clerk as ShopClerkModel;
|
use app\operations\model\supplier\Supplier as SupplierModel;
|
|
/**
|
* 订单控制器
|
*/
|
class Order extends Controller
|
{
|
/**
|
* 订单列表
|
*/
|
public function index($dataType = 'all')
|
{
|
//获取该角色管理的区域 by yj 2023.12.20
|
$shop_supplier_ids = SupplierModel::getSupplierIdsByUser();
|
// 订单列表
|
$postData = $this->postData();
|
if(!empty($shop_supplier_ids)){
|
$postData["shop_supplier_ids"] = $shop_supplier_ids;
|
}
|
$model = new OrderModel();
|
$list = $model->getList($dataType, $postData);
|
$order_count = [
|
'order_count' => [
|
'payment' => $model->getCount('payment',$shop_supplier_ids),
|
'delivery' => $model->getCount('delivery',$shop_supplier_ids),
|
'received' => $model->getCount('received',$shop_supplier_ids),
|
'cancel' => $model->getCount('cancel',$shop_supplier_ids),
|
],];
|
$ex_style = DeliveryTypeEnum::data();
|
//商户列表
|
$supplier_list = SupplierModel::getAll($this->store['user']);
|
return $this->renderSuccess('', compact('list', 'ex_style', 'order_count','supplier_list'));
|
}
|
|
/**
|
* 订单详情
|
*/
|
public function detail($order_id)
|
{
|
// 订单详情
|
$detail = OrderModel::detail($order_id);
|
if (isset($detail['pay_time']) && $detail['pay_time'] != '') {
|
$detail['pay_time'] = date('Y-m-d H:i:s', $detail['pay_time']);
|
}
|
if (isset($detail['delivery_time']) && $detail['delivery_time'] != '') {
|
$detail['delivery_time'] = date('Y-m-d H:i:s', $detail['delivery_time']);
|
}
|
if ($detail['order_source'] == 70 && isset($detail['advance'])) {
|
$detail['pay_price'] = round($detail['pay_price'] + $detail['advance']['pay_price'], 2);
|
$detail['order_price'] = round($detail['order_price'] + $detail['advance']['pay_price'], 2);
|
}
|
$detail['buy_remark'] = json_decode($detail['buy_remark'], 1);
|
// 物流公司列表
|
$model = new ExpressModel();
|
$expressList = $model->getAll();
|
// 门店店员列表
|
$shopClerkList = (new ShopClerkModel)->getAll($detail['shop_supplier_id']);
|
return $this->renderSuccess('', compact('detail', 'expressList', 'shopClerkList'));
|
}
|
|
/**
|
* 确认发货
|
*/
|
public function delivery($order_id)
|
{
|
$model = OrderModel::detail($order_id);
|
if ($model->delivery($this->postData('param'))) {
|
return $this->renderSuccess('发货成功');
|
}
|
return $this->renderError('发货失败');
|
}
|
|
/**
|
* 修改订单价格
|
*/
|
public function updatePrice($order_id)
|
{
|
$model = OrderModel::detail($order_id);
|
if ($model->updatePrice($this->postData('order'))) {
|
return $this->renderSuccess('修改成功');
|
}
|
return $this->renderError($model->getError() ?: '修改失败');
|
}
|
|
/**
|
* 获取物流信息
|
*/
|
public function express($order_id)
|
{
|
// 订单信息
|
$order = OrderModel::detail($order_id);
|
if (!$order['express_no']) {
|
return $this->renderError('没有物流信息');
|
}
|
// 获取物流信息
|
$model = $order['express'];
|
$express = $model->dynamic($model['express_name'], $model['express_code'], $order['express_no']);
|
if ($express === false) {
|
return $this->renderError($model->getError());
|
}
|
return $this->renderSuccess('', compact('express'));
|
}
|
|
/**
|
* 订单改地址
|
*/
|
public function updateAddress($order_id)
|
{
|
// 订单信息
|
$order = OrderModel::detail($order_id);
|
if ($order['delivery_type'] == 10 && $order['delivery_status'] == 20) {
|
return $this->renderError('订单已发货不允许修改');
|
}
|
// 获取物流信息
|
$model = $order['address'];
|
if (!$model->updateAddress($this->postData())) {
|
return $this->renderError($model->getError() ?: '修改失败');
|
}
|
return $this->renderSuccess('修改成功');
|
}
|
|
}
|