Browse Source

订单列表

master
lanzu_qsy 6 years ago
parent
commit
28061633ce
  1. 58
      app/Admin/Actions/ModifyOrderState.php
  2. 78
      app/Admin/Actions/Show/OrderDetail.php
  3. 139
      app/Admin/Controllers/ImsCjdcOrderMainController.php
  4. 18
      app/Admin/Controllers/Test.php
  5. 61
      app/Admin/Extensions/CheckRow.php
  6. 16
      app/Admin/Extensions/OrderDetail.php
  7. 55
      app/Admin/Extensions/OrderStateHandle.php
  8. 6
      app/Admin/Repositories/ImsCjdcMarket.php
  9. 5
      app/Admin/Repositories/ImsCjdcOrderMain.php
  10. 3
      app/Admin/routes.php
  11. 14
      app/Models/ImsCjdcMarket.php
  12. 2
      app/Models/ImsCjdcOrderMain.php
  13. 5
      app/Models/StoreAccount.php
  14. 48
      config/order.php
  15. 16
      resources/lang/zh-CN/ims-cjdc-order-main.php
  16. 14
      resources/views/orderdetail.php

58
app/Admin/Actions/ModifyOrderState.php

@ -0,0 +1,58 @@
<?php
namespace App\Admin\Actions;
use Dcat\Admin\Actions\Action;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class ModifyOrderState extends Action
{
/**
* @return string
*/
protected $title = '状态';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
// dump($this->getKey());
return $this->response()->success('Processed successfully.')->redirect('/');
}
/**
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
/**
* @return array
*/
protected function parameters()
{
return [];
}
}

78
app/Admin/Actions/Show/OrderDetail.php

@ -0,0 +1,78 @@
<?php
namespace App\Admin\Actions\Show;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Show\AbstractTool;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class OrderDetail extends AbstractTool
{
/**
* @return string
*/
protected $title = '订单订单详情';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
dd($this->getKey());
return $this->response()
->success('Processed successfully.')
->redirect('/');
}
/**
* @return string|void
*/
protected function href()
{
return admin_url('auth/users');
}
/**
* @return string|array|void
*/
public function confirm()
{
return ['Confirm?', 'contents'];
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
// 如果你想自定义动作按钮的HTML,可以重写此方法
public function html()
{
return view('orderdetail');
}
/**
* @return array
*/
protected function parameters()
{
return [];
}
}

139
app/Admin/Controllers/ImsCjdcOrderMainController.php

@ -0,0 +1,139 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Extensions\OrderDetail;
use App\Admin\Extensions\OrderStateHandle;
use App\Admin\Repositories\ImsCjdcOrderMain;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;;
class ImsCjdcOrderMainController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new ImsCjdcOrderMain(), function (Grid $grid) {
//>>1.只展示线上订单打√
//>>2.不同服务站只能看到自己的市场订单
//>>3.订单不允许有添加,编辑,删除
//>>4.订单状态变更√
//>>5.打印功能
//>6.退款
$grid->paginate(10);//每页展示数据10条
//$grid->id;
//$grid->user_id('用户信息');
$grid->column('user_name','用户信息');
$grid->order_num;
$grid->state('订单状态')
->using(config('order.state'))
->label([1=>'dark',2=>'danger',3=>'indigo',4=>'success']);
$grid->money;
$grid->column('market.name','所属市场');
$grid->time;
$grid->pay_time;
$grid->actions(function (Grid\Displayers\Actions $actions) {
$state = $actions->row->state;
if ($state==2){
$actions->append(new OrderStateHandle('接单',3));
}elseif ($state==31){
$actions->append(new OrderStateHandle('完成',4));
}
$actions->append(new OrderDetail('详情'));
//$actions->append("<a class='btn btn-xs action-btn btn-danger grid-row-refuse' data-id='{$actions->getKey()}'><i class='fa fa-close' title='拒绝退款'>拒绝</i></a>&nbsp;&nbsp;");
//$actions->append("<a class='btn btn-xs action-btn btn-success grid-row-pass' data-id='{$actions->getKey()}'><i class='fa fa-check' title='同意退款'>同意</i></a>");
});
//$grid->column('详情')->modal('详情',function ()use ($grid){
// return view('orderdetail',['id'=>2]);
//
//});
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new ImsCjdcOrderMain(), function (Show $show) {
$show->id;
$show->user_id;
$show->order_num;
$show->state;
$show->time;
$show->pay_time;
$show->money;
$show->tools(function (Show\Tools $tools) {
$tools->append(new \App\Admin\Actions\Show\OrderDetail());
});
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new ImsCjdcOrderMain(), function (Form $form) {
$form->display('id');
$form->text('user_id');
$form->text('order_num');
$form->text('state');
$form->text('time');
$form->text('pay_time');
$form->text('money');
});
}
public function orderDetail()
{
echo 111;
}
}

18
app/Admin/Controllers/Test.php

@ -0,0 +1,18 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\ImsCjdcMarket;
use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Grid;
class Test extends AdminController
{
public function test()
{
$gird = new Grid(new \App\Models\ImsCjdcMarket());
}
}

61
app/Admin/Extensions/CheckRow.php

@ -1,42 +1,59 @@
<?php
namespace App\Admin\Extensions;
use App\Models\ImsCjdcOrderMain;
use App\Models\StoreAccount;
use Dcat\Admin\Grid\RowAction;
use Illuminate\Http\Request;
class CheckRow extends RowAction
{
public function title()
protected $model;
protected $state;
protected $title;
public function __construct($title=null,$state=null)
{
return 'Check row';
parent::__construct($title);
$this->state = $state;
}
/**
* 添加JS
* 处理请求
*
* @return string
* @param Request $request
*
* @return \Dcat\Admin\Actions\Response
*/
protected function script()
{
return <<<JS
$('.grid-check-row').on('click', function () {
// Your code.
console.log($(this).data('id'));
});
JS;
}
public function html()
public function handle(Request $request)
{
// 获取当前行数据ID
// 获取当前行ID
$id = $this->getKey();
$orderMain = new ImsCjdcOrderMain();
$state = $request->get('state');
$res = $orderMain->modifyState($id,$state);
if ($res==true){
return $this->response()->success('操作成功')->refresh();
}else{
return $this->response()->error('操作失败');
}
// 获取当前行数据的用户名
$username = $this->row->username;
// 这里需要添加一个class, 和上面script方法对应
$this->setHtmlAttribute(['data-id' => $id, 'email' => $username, 'class' => 'grid-check-row']);
return parent::html();
}
/**
* 设置要POST到接口的数据
*
* @return array
*/
public function parameters()
{
return [
'state' => $this->state,
];
}
}

16
app/Admin/Extensions/OrderDetail.php

@ -0,0 +1,16 @@
<?php
namespace App\Admin\Extensions;
use Dcat\Admin\Grid\RowAction;
class OrderDetail extends RowAction
{
public function __construct($title=null)
{
parent::__construct($title);
}
}

55
app/Admin/Extensions/OrderStateHandle.php

@ -0,0 +1,55 @@
<?php
namespace App\Admin\Extensions;
use App\Models\ImsCjdcOrderMain;
use Dcat\Admin\Grid\RowAction;
use Illuminate\Http\Request;
class OrderStateHandle extends RowAction
{
protected $model;
protected $state;
protected $title;
public function __construct($title=null,$state=null)
{
parent::__construct($title);
$this->state = $state;
}
/**
* 处理请求
*
* @param Request $request
*
* @return \Dcat\Admin\Actions\Response
*/
public function handle(Request $request)
{
// 获取当前行ID
$id = $this->getKey();
$orderMain = new ImsCjdcOrderMain();
$state = $request->get('state');
$res = $orderMain->modifyState($id,$state);
if ($res==true){
return $this->response()->success('操作成功')->refresh();
}else{
return $this->response()->error('操作失败');
}
}
/**
* 设置要POST到接口的数据
*
* @return array
*/
public function parameters()
{
return [
'state' => $this->state,
];
}
}

6
app/Admin/Repositories/ImsCjdcMarket.php

@ -13,4 +13,10 @@ class ImsCjdcMarket extends EloquentRepository
* @var string
*/
protected $eloquentClass = Model::class;
// 通过这个方法可以指定查询的字段,默认"*"
public function getGridColumns()
{
return [$this->getKeyName(), 'name'];
}
}

5
app/Admin/Repositories/ImsCjdcOrderMain.php

@ -18,9 +18,9 @@ class ImsCjdcOrderMain extends EloquentRepository
public function get(Grid\Model $model)
{
$builder = new \App\Models\ImsCjdcOrderMain();
$builder = $builder::leftJoin('ims_cjdc_user','ims_cjdc_user.id','ims_cjdc_order_main.user_id')
$builder = $builder::leftJoin('ims_cjdc_user as u','u.id','ims_cjdc_order_main.user_id')
->with('market')
->select('ims_cjdc_order_main.*','ims_cjdc_user.name as user_name')
->select('ims_cjdc_order_main.*','u.name as user_name')
->where('type',1)
->orderBy('ims_cjdc_order_main.id','desc');//只取线上订单数据
@ -38,6 +38,7 @@ class ImsCjdcOrderMain extends EloquentRepository
});
$query = $query->toArray();
//如果订单状态为配送中 将state设置为31
foreach ($query['data'] as &$value){
if ($value['state']==3&&$value['order_shipping_code']==1){
$value['state'] = 31;

3
app/Admin/routes.php

@ -44,5 +44,8 @@ Route::group([
//统计店铺新增用户
$router->resource('/storeUserReport', 'StoreUserReportController');
$router->resource('/order', 'ImsCjdcOrderMainController');
$router->any('/detail', 'ImsCjdcOrderMainController@orderDetail');
$router->any('/test', 'Test@test');
});

14
app/Models/ImsCjdcMarket.php

@ -29,18 +29,6 @@ class ImsCjdcMarket extends Model
return $this->hasOne('\App\Models\LanzuMpInfo','id','mp_id');
}
/**
* 获取市场信息
* @return \Illuminate\Http\JsonResponse
*/
public static function getMarket()
{
$markets = self::get();
$item = [];
foreach ($markets as $market) {
$item[$market->id] = $market->name;
}
return $item;
}
}

2
app/Models/ImsCjdcOrderMain.php

@ -54,4 +54,6 @@ class ImsCjdcOrderMain extends Model
});
}
}

5
app/Models/StoreAccount.php

@ -9,7 +9,6 @@ namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use App\Models\ImsCjdcStore as storeModel;
class StoreAccount extends Model
{
@ -46,8 +45,4 @@ class StoreAccount extends Model
return false;
}
}
public function store(){
return $this->hasMany(storeModel::class,'id','store_id');
}
}

48
config/order.php

@ -0,0 +1,48 @@
<?php
return [
//自营平台订单状态
'state'=>[
0=>'错误状态',
1=>'待付款',
2=>'待接单',
3=>'待发货',
31=>'配送中',//state==3&&order_shipping_code==1
4=>'已完成',
5=>'已评价',
6=>'已取消',
7=>'拒绝',
8=>'申请退款',
9=>'已退款',
10=>'退款拒绝',
9999=>'虚拟订单'
],
//达达平台的订单状态
'dada_status'=>[
1=>'待快递员接单',
2=>'待取货',
3=>'配送中',
4=>'已完成',
5=>'已取消',
8=>'指派单',
9=>'妥投异常之物品返回中',
10=>'妥投异常之物品返回完成',
100=>'骑士到店',
1000=>'创建达达运单失败',
],
//达达测试0 如果为1则用为正式环境
'online'=>0,
'dada_test_config'=>[
'source_id'=>'73753',
'shop_no'=>'11047059',
'app_key'=>'dada91f5568c2fa580b',
'app_secret'=>'851019e075fd94d00942289c9161008c',
'url'=>'http://newopen.qa.imdada.cn'
],
'dada_config'=>[
'source_id'=>'49325',
'app_key'=>'dada9c5cebc86361427',
'app_secret'=>'bd3cedf12d2749aa8791f1686a9d9a54',
'url'=>'https://newopen.imdada.cn'
],
];

16
resources/lang/zh-CN/ims-cjdc-order-main.php

@ -0,0 +1,16 @@
<?php
return [
'labels' => [
'ImsCjdcOrderMain' => 'ImsCjdcOrderMain',
],
'fields' => [
'user_id' => '用户id',
'order_num' => '订单号',
'state' => '1.待付款2.待结单3.等待送达4.完成5.已评价6.取消7.拒绝8.退款中9.已退款10.退款拒绝',
'time' => '下单时间',
'pay_time' => '支付时间',
'money' => '付款金额',
],
'options' => [
],
];

14
resources/views/orderdetail.php

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<title>Laravel</title>
</head>
<body >
<h1>{{$id}}</h1>
</body>
</html>
Loading…
Cancel
Save