Browse Source

优化订单详情返回路径

master
lanzu_qinsheng 5 years ago
parent
commit
764b77f40b
  1. 11
      app/Admin/Controllers/ImsCjdcOrderMainController.php
  2. 2
      app/Admin/Extensions/MyDetailPage.php
  3. 6
      app/Admin/Extensions/OrderDetail.php
  4. 8
      app/Admin/Repositories/ImsCjdcOrderMain.php
  5. 12
      app/Models/LanzuStore.php

11
app/Admin/Controllers/ImsCjdcOrderMainController.php

@ -14,6 +14,7 @@ use App\Admin\Extensions\OrderRefund;
use App\Admin\Extensions\OrderStateHandle; use App\Admin\Extensions\OrderStateHandle;
use App\Admin\Repositories\ImsCjdcOrderMain; use App\Admin\Repositories\ImsCjdcOrderMain;
use App\Models\ImsCjdcMarket; use App\Models\ImsCjdcMarket;
use App\Models\LanzuStore;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
@ -77,7 +78,8 @@ class ImsCjdcOrderMainController extends AdminController
$grid->actions(function (Grid\Displayers\Actions $actions) use ($grid) { $grid->actions(function (Grid\Displayers\Actions $actions) use ($grid) {
$state = $actions->row->state; $state = $actions->row->state;
$actions->append(new OrderDetail($actions->row->id, $grid->model()->getCurrentPage(), '<div type="button" class="btn btn-outline-primary btn-sm">详情</div>'));
$lastUrl = isset($_SERVER['QUERY_STRING'])?base64_encode($_SERVER['QUERY_STRING']):'';
$actions->append(new OrderDetail($actions->row->id, $grid->model()->getCurrentPage(),$lastUrl, '<div type="button" class="btn btn-outline-primary btn-sm">详情</div>'));
if ($state == 2) { if ($state == 2) {
$actions->append(new OrderStateHandle('<div type="button" class="btn btn-outline-danger btn-sm">接单</div>', 3)); $actions->append(new OrderStateHandle('<div type="button" class="btn btn-outline-danger btn-sm">接单</div>', 3));
@ -103,11 +105,13 @@ class ImsCjdcOrderMainController extends AdminController
if (!(Admin::user()->isRole('market_service'))){ if (!(Admin::user()->isRole('market_service'))){
$filter->equal('market_id','所属市场')->select(ImsCjdcMarket::getMarket()); $filter->equal('market_id','所属市场')->select(ImsCjdcMarket::getMarket());
} }
$filter->equal('store_id','店铺')->select(LanzuStore::getData(Auth::getMarket()));
$filter->between('created_at','下单时间')->datetime(); $filter->between('created_at','下单时间')->datetime();
$filter->between('money','订单金额'); $filter->between('money','订单金额');
$filter->equal('state','订单状态')->select( $filter->equal('state','订单状态')->select(
[1=>'待付款',2=>'待接单',4=>'已完成',6=>'已取消',8=>'退款中',9=>'已退款',10=>'退款拒绝'] [1=>'待付款',2=>'待接单',4=>'已完成',6=>'已取消',8=>'退款中',9=>'已退款',10=>'退款拒绝']
); );
$filter->disableResetButton(); $filter->disableResetButton();
}); });
@ -169,9 +173,10 @@ class ImsCjdcOrderMainController extends AdminController
{ {
$oid = request()->get('order_id'); $oid = request()->get('order_id');
$page = request()->get('page'); $page = request()->get('page');
$lastUrl = base64_decode(request()->get('last_url'));
// 实例化表单类并传递自定义参数 // 实例化表单类并传递自定义参数
$detail = MyDetailPage::make(['order_id' => $oid,'page'=>$page]);
return $content->header("<a href='order?page={$page}'><<返回</a>")
$detail = MyDetailPage::make(['order_id' => $oid,'page'=>$page,'last_url'=>$lastUrl]);
return $content->header("<a href='order?{$lastUrl}'><<返回</a>")
->breadcrumb( ->breadcrumb(
['text' => '返回', 'url' => "order?page={$page}"], ['text' => '返回', 'url' => "order?page={$page}"],
['text' => '详情', 'url' => 'detail'] ['text' => '详情', 'url' => 'detail']

2
app/Admin/Extensions/MyDetailPage.php

@ -31,7 +31,7 @@ class MyDetailPage extends LazyRenderable
$result = ImsCjdcOrder::getOrdersData($order['global_order_id'],$order['id']); $result = ImsCjdcOrder::getOrdersData($order['global_order_id'],$order['id']);
$orders = json_encode($result['orders']); $orders = json_encode($result['orders']);
$showRefund = json_encode($result['show_refund']); $showRefund = json_encode($result['show_refund']);
$path = "order?page=".$this->page;
$path = "order?".$this->last_url;
Admin::script( Admin::script(
<<<JS <<<JS
var orders = JSON.stringify($orders) var orders = JSON.stringify($orders)

6
app/Admin/Extensions/OrderDetail.php

@ -11,10 +11,12 @@ class OrderDetail extends RowAction
protected $title; protected $title;
protected $order_id; protected $order_id;
protected $currentPage; protected $currentPage;
public function __construct($orderId,$currentPage,$title=null)
protected $last_url;
public function __construct($orderId,$currentPage,$lastUrl,$title=null)
{ {
$this->order_id = $orderId; $this->order_id = $orderId;
$this->currentPage = $currentPage; $this->currentPage = $currentPage;
$this->last_url = $lastUrl;
parent::__construct($title); parent::__construct($title);
} }
@ -26,7 +28,7 @@ class OrderDetail extends RowAction
{ {
return <<<JS return <<<JS
$('.detail_{$this->order_id}').on('click', function () { $('.detail_{$this->order_id}').on('click', function () {
window.location.href ="detail?order_id={$this->order_id}&page={$this->currentPage}";
window.location.href ="detail?order_id={$this->order_id}&page={$this->currentPage}&last_url={$this->last_url}";
}); });
JS; JS;
} }

8
app/Admin/Repositories/ImsCjdcOrderMain.php

@ -5,6 +5,7 @@ namespace App\Admin\Repositories;
use App\Models\ImsCjdcOrderMain as Model; use App\Models\ImsCjdcOrderMain as Model;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Repositories\EloquentRepository; use Dcat\Admin\Repositories\EloquentRepository;
use Illuminate\Support\Facades\Session;
class ImsCjdcOrderMain extends EloquentRepository class ImsCjdcOrderMain extends EloquentRepository
{ {
@ -17,7 +18,6 @@ class ImsCjdcOrderMain extends EloquentRepository
public function get(Grid\Model $model) public function get(Grid\Model $model)
{ {
$builder = new \App\Models\ImsCjdcOrderMain(); $builder = new \App\Models\ImsCjdcOrderMain();
$time = request()->input('time'); $time = request()->input('time');
$builder = $builder::leftJoin('lanzu_user','lanzu_user.id','lanzu_order_main.user_id') $builder = $builder::leftJoin('lanzu_user','lanzu_user.id','lanzu_order_main.user_id')
@ -43,6 +43,11 @@ class ImsCjdcOrderMain extends EloquentRepository
$value['arguments'][1][0] = strtotime($value['arguments'][1][0]); $value['arguments'][1][0] = strtotime($value['arguments'][1][0]);
$value['arguments'][1][1] = strtotime($value['arguments'][1][1]); $value['arguments'][1][1] = strtotime($value['arguments'][1][1]);
} }
}elseif ($value['method']=='where'){
if ($value['arguments'][0]=='store_id'){
$query->leftJoin('lanzu_order','lanzu_order.order_main_id','lanzu_order_main.global_order_id');
$value['arguments'][0]='lanzu_order.store_id';
}
} }
$query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []);
}); });
@ -53,7 +58,6 @@ class ImsCjdcOrderMain extends EloquentRepository
if ($value['state']==3&&$value['shipping_type']==1&&!empty($value['horseman_id'])){ if ($value['state']==3&&$value['shipping_type']==1&&!empty($value['horseman_id'])){
$value['state'] = 311; $value['state'] = 311;
} }
$value['time'] = time()-(7*86400);
} }
$query = $model->makePaginator($query['total'],$query['data']); $query = $model->makePaginator($query['total'],$query['data']);

12
app/Models/LanzuStore.php

@ -21,4 +21,16 @@ class LanzuStore extends Model
public function storeAccount(){ public function storeAccount(){
return $this->hasMany(StoreAccount::class,'store_id','id'); return $this->hasMany(StoreAccount::class,'store_id','id');
} }
public static function getData($marketId=null)
{
if ($marketId){
$result = self::where('market_id',$marketId)
->pluck('name','id')->toArray();
}else{
$result = self::pluck('name','id')->toArray();
}
return $result;
}
} }
Loading…
Cancel
Save