Browse Source

业务员列表明细

master
lanzu_qinsheng 5 years ago
parent
commit
606f0f4d7d
  1. 13
      app/Admin/Actions/Lazy/CsInfo.php
  2. 2
      app/Admin/Actions/Tools/SalesmanOption.php
  3. 17
      app/Admin/Common/Order.php
  4. 1
      app/Admin/Controllers/ImsCjdcOrderMainController.php
  5. 30
      app/Admin/Controllers/v3/Salesman.php
  6. 40
      app/Admin/Extensions/Salesman.php
  7. 47
      app/Admin/Repositories/v3/CsInfo.php
  8. 11
      app/Admin/Repositories/v3/Salesman.php
  9. 2
      app/Models/v3/SalesmanData.php

13
app/Admin/Actions/Lazy/CsInfo.php

@ -9,12 +9,15 @@ class CsInfo extends LazyRenderable
public function grid(): Grid
{
return Grid::make(new \App\Admin\Repositories\v3\CsInfo(),function (Grid $grid){
$grid->name;
$name= request()->get('name');
$grid->name('站点名称');
$grid->column('user_num','绑定用户数');
$grid->column('order_user_num',$name.'下单人数');
$grid->column('order_num',$name.'订单数');
$grid->column('order_amount',$name.'订单金额');
$grid->disableActions();
});
}
public function render()
{
return parent::render(); // TODO: Change the autogenerated stub
}
}

2
app/Admin/Actions/Tools/SalesmanOption.php

@ -38,7 +38,7 @@ JS;
];
foreach ($data as $key=>$value){
$this->url = "salesman?type={$key}&option={$value}";
$this->url = "salesman?type={$key}&option={$value}&&name={$options[$key]}";
$this->option = $key;
Admin::script($this->script());
}

17
app/Admin/Common/Order.php

@ -5,6 +5,7 @@ namespace App\Admin\Common;
use App\Models\ImsCjdcOrderMain;
use App\Models\LanzuUserRelationBind;
class Order
{
@ -129,4 +130,20 @@ class Order
->where('type',1);
return $build;
}
/**
* 查询用户绑定后下过单的用户id
* @param $adminUserId
* @return mixed
*/
public static function getUserOrder($adminUserId)
{
$uid = LanzuUserRelationBind::where('source_id',$adminUserId)
->leftJoin('lanzu_order_main','lanzu_order_main.user_id','lanzu_user_relation_bind.user_id')
->whereRaw('lanzu_order_main.created_at > lanzu_user_relation_bind.created_at')
->groupBy('lanzu_order_main.user_id')
->pluck('lanzu_order_main.user_id')
->toArray();//获取绑定社区的所有用户
return $uid;
}
}

1
app/Admin/Controllers/ImsCjdcOrderMainController.php

@ -99,7 +99,6 @@ class ImsCjdcOrderMainController extends AdminController
}
});
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('order_num');
if (!(Admin::user()->isRole('market_service'))){

30
app/Admin/Controllers/v3/Salesman.php

@ -37,22 +37,32 @@ class Salesman extends AdminController
});
} else {
return Grid::make(new \App\Admin\Repositories\v3\Salesman(), function (Grid $grid) {
//$grid->tools(new SalesmanOption());
$grid->tools(new SalesmanOption());
$name = request()->get('name')??null;
$option = request()->get('option');
$grid->paginate(10);
$grid->id;
$grid->column('person_id', '懒ID');
$grid->column('nick_name', '拓展员');
//$grid->column('total','社区总数')->modal(CsInfo::make());;
$grid->actions(function (Grid\Displayers\Actions $actions){
dd($actions->row->toArray());
});
$grid->column('total', '社区总数');
$grid->column('user_id','绑定用户数')->display(function ($uid){
if ($uid){
return count(explode(',',$uid));
}
return 0;
});
$grid->column('t_num','订单数');
$grid->column('t_amount','成交额');
$grid->disableActions();
$grid->column('order_user_num', $name.'下单人数');
$grid->column('order_num', $name.'订单数');
$grid->column('order_amount', $name.'成交额');
$grid->actions(function (Grid\Displayers\Actions $actions)use ($name,$option){
$row = $actions->row->toArray();
$actions->append(new \App\Admin\Extensions\Salesman($row['admin_user_id'],$name,$option,'详情'));
});
$grid->disableCreateButton();
$grid->disableEditButton();
$grid->disableDeleteButton();
$grid->disableViewButton();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('person_id', '拓展员懒ID');
});

40
app/Admin/Extensions/Salesman.php

@ -0,0 +1,40 @@
<?php
namespace App\Admin\Extensions;
use App\Admin\Actions\Lazy\CsInfo;
use App\Admin\Forms\SelectHorseman;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
class Salesman extends RowAction
{
protected $title;
protected $adminUid;
protected $name;
protected $option;
public function __construct($adminUid,$name,$option,$title=null)
{
$this->title = $title;
$this->name = $name;
$this->option = $option;
$this->adminUid = $adminUid;
parent::__construct($title);
}
public function render()
{
// 实例化表单类并传递自定义参数
$table = CsInfo::make(['admin_user_id'=>$this->adminUid,'name'=>$this->name,'option'=>$this->option]);
return Modal::make()
->lg()
->title('数据明细')
->body($table)
->button('详情');
}
}

47
app/Admin/Repositories/v3/CsInfo.php

@ -3,9 +3,54 @@
namespace App\Admin\Repositories\v3;
use App\Admin\Common\Order;
use App\Models\LanzuUserRelationBind;
use Dcat\Admin\Grid;
use Dcat\Admin\Repositories\EloquentRepository;
use \App\Models\v3\CsInfo as modelCsInfo;
class CsInfo extends EloquentRepository
{
protected $eloquentClass = \App\Models\v3\CsInfo::class;
public function get(Grid\Model $model)
{
$adminUid= request()->get('admin_user_id');
$option= request()->get('option');
$data = modelCsInfo::whereIn('admin_user_id',$adminUid)
->paginate(10)
->toArray();
foreach ($data['data'] as &$value){
//>>1.获取绑定后下过单的用户
$value['user_num'] = LanzuUserRelationBind::where('source_id',$value['admin_user_id'])->count();
$uid = Order::getUserOrder($value['admin_user_id']);
//>>2.获取订单数据
$value['order_user_num'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'count_user',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>$uid?$uid:null
],$option);//下单人数
$value['order_num'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'number',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>$uid?$uid:null
],$option);//订单数
$value['order_amount'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'amount',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>$uid?$uid:null
],$option);//订单金额
}
return $model->makePaginator(
$data['total'] ?? 0, // 传入总记录数
$data['data'] ?? [] // 传入数据二维数组
);
}
}

11
app/Admin/Repositories/v3/Salesman.php

@ -37,14 +37,21 @@ class Salesman extends EloquentRepository
$value['admin_user_id'] = array_unique(explode(',',$value['admin_user_id']));
$value['total'] = count($value['admin_user_id']);
$uid = explode(',',$value['user_id']);
$value['t_num'] = Order::getOrderData([
$value['order_user_num'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'count_user',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>$uid?$uid:null
],$option);//下单人数
$value['order_num'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'number',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>$uid?$uid:null
],$option);//今日订单数
$value['t_amount'] = Order::getOrderData([
$value['order_amount'] = Order::getOrderData([
'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
'data_type'=>'amount',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据

2
app/Models/v3/SalesmanData.php

@ -4,10 +4,12 @@
namespace App\Models\v3;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class SalesmanData extends Model
{
use HasDateTimeFormatter;
protected $table = 'lanzu_salesman_data';
protected $dateFormat = 'U';
}
Loading…
Cancel
Save