Browse Source

优化订单列表按钮

master
lanzu_qinsheng 5 years ago
parent
commit
60dd636b9e
  1. 8
      app/Admin/Actions/Tools/ShowOrderStateHandle.php
  2. 4
      app/Admin/Controllers/ImsCjdcOrderMainController.php
  3. 10
      app/Admin/Repositories/ImsCjdcOrderMain.php
  4. 25
      app/Models/ImsCjdcOrderMain.php

8
app/Admin/Actions/Tools/ShowOrderStateHandle.php

@ -18,7 +18,7 @@ class ShowOrderStateHandle extends AbstractTool
protected function script()
{
if ($this->state){
$url = "order?state=".$this->state.'&'."time=".(time()-(7*86400));
$url = "order?order_state=".$this->state.'&'."time=".(time()-(7*86400));
}else{
$url = "order";
}
@ -37,9 +37,13 @@ JS;
$title = "退款申请(".$count.")";
}elseif ($this->state==2){
$title = "待接单(".$count.")";
}elseif ($this->state==3){
$title = "待发货(".$count.")";
}elseif ($this->state==311){
$title = "配送中(".$count.")";
}
Admin::script($this->script());
return "<a class=\"btn btn-primary order_state_{$this->state}\">{$title}</a>";
return "<button class=\"btn btn-primary order_state_{$this->state}\">{$title}</button>";
}

4
app/Admin/Controllers/ImsCjdcOrderMainController.php

@ -41,6 +41,8 @@ class ImsCjdcOrderMainController extends AdminController
//>>5.打印功能
//>6.退款
$grid->tools(new ShowOrderStateHandle(2));
$grid->tools(new ShowOrderStateHandle(3));
$grid->tools(new ShowOrderStateHandle(311));
$grid->tools(new ShowOrderStateHandle(8));
$grid->tools(new ShowOrderStateHandle());
$grid->paginate(10);//每页展示数据10条
@ -108,7 +110,7 @@ class ImsCjdcOrderMainController extends AdminController
$filter->between('created_at','下单时间')->datetime();
$filter->between('money','订单金额');
$filter->equal('state','订单状态')->select(
[1=>'待付款',2=>'待接单',4=>'已完成',6=>'已取消',8=>'退款中',9=>'已退款',10=>'退款拒绝']
[1=>'待付款',4=>'已完成',6=>'已取消',9=>'已退款',10=>'退款拒绝']
);
$filter->disableResetButton();

10
app/Admin/Repositories/ImsCjdcOrderMain.php

@ -5,6 +5,7 @@ namespace App\Admin\Repositories;
use App\Models\ImsCjdcOrderMain as Model;
use Dcat\Admin\Grid;
use Dcat\Admin\Repositories\EloquentRepository;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class ImsCjdcOrderMain extends EloquentRepository
@ -20,6 +21,7 @@ class ImsCjdcOrderMain extends EloquentRepository
{
$builder = new \App\Models\ImsCjdcOrderMain();
$time = request()->input('time');
$state = request()->input('order_state')??false;
$builder = $builder::leftJoin('lanzu_user','lanzu_user.id','lanzu_order_main.user_id')
->with('market')
->select('lanzu_order_main.*','lanzu_user.nick_name')
@ -28,6 +30,14 @@ class ImsCjdcOrderMain extends EloquentRepository
if ($time){
$builder = $builder->where('lanzu_order_main.created_at','>',$time);
}
if ($state==3){
$builder = $builder->where('state',$state)->where('shipping_type',1)->where('horseman_id',0);
}elseif ($state==311){
$builder = $builder->where('state',3)->where('shipping_type',1)->where('horseman_id','>',0);
}else{
$state !=false?$builder->where('state',$state):false;
}
$this->setSort($model);
$this->setPaginate($model);

25
app/Models/ImsCjdcOrderMain.php

@ -113,20 +113,27 @@ class ImsCjdcOrderMain extends Model
return $order;
}
/**
* 根据订单状态统计数量
* @param $state
* @param null $marketId
* @return mixed
*/
public static function getOrderStateCount($state, $marketId = null)
{
$builder = self::where('type', 1)
->where('created_at','>=',time()-(7*86400));
if ($marketId) {
$count = self::where('state', $state)
->where('type', 1)
->where('created_at','>=',time()-(7*86400))
->where('market_id',$marketId)
->count();
$builder = $builder->where('market_id',$marketId);
}
if ($state==3){
$builder = $builder->where('state',$state)->where('shipping_type',1)->where('horseman_id',0);
}elseif ($state==311){
$builder = $builder->where('state',3)->where('shipping_type',1)->where('horseman_id','>',0);
}else{
$count = self::where('state', $state)
->where('type', 1)
->where('created_at','>=',time()-(7*86400))
->count();
$builder = $builder->where('state',$state);
}
$count = $builder->count();
return $count;
}
}
Loading…
Cancel
Save