diff --git a/app/Admin/Actions/Lazy/CsInfo.php b/app/Admin/Actions/Lazy/CsInfo.php index 0b56742..019816d 100644 --- a/app/Admin/Actions/Lazy/CsInfo.php +++ b/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 - } + } diff --git a/app/Admin/Actions/Tools/SalesmanOption.php b/app/Admin/Actions/Tools/SalesmanOption.php index bc28dab..2d463ad 100644 --- a/app/Admin/Actions/Tools/SalesmanOption.php +++ b/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()); } diff --git a/app/Admin/Common/Order.php b/app/Admin/Common/Order.php index f132181..918f76c 100644 --- a/app/Admin/Common/Order.php +++ b/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; + } } diff --git a/app/Admin/Controllers/ImsCjdcOrderMainController.php b/app/Admin/Controllers/ImsCjdcOrderMainController.php index 3605ab9..a1d8b9e 100644 --- a/app/Admin/Controllers/ImsCjdcOrderMainController.php +++ b/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'))){ diff --git a/app/Admin/Controllers/v3/Salesman.php b/app/Admin/Controllers/v3/Salesman.php index fba6611..0f74d23 100644 --- a/app/Admin/Controllers/v3/Salesman.php +++ b/app/Admin/Controllers/v3/Salesman.php @@ -16,45 +16,55 @@ class Salesman extends AdminController { protected function grid() { - if (false){ - return Grid::make(new SalesmanData(),function (Grid $grid){ + if (false) { + return Grid::make(new SalesmanData(), function (Grid $grid) { $grid->paginate(10); - $grid->column('person_id','懒ID'); - $grid->column('nick_name','拓展员'); - $grid->column('total','社区总数'); - $grid->column('t_num','今日订单数'); - $grid->column('t_amount','今日成交额'); - $grid->column('y_num','昨日订单数'); - $grid->column('y_amount','昨日成交额'); - $grid->column('w_num','本周订单数'); - $grid->column('w_amount','本周成交额'); - $grid->column('m_num','本月订单数'); - $grid->column('m_amount','本月成交额'); + $grid->column('person_id', '懒ID'); + $grid->column('nick_name', '拓展员'); + $grid->column('total', '社区总数'); + $grid->column('t_num', '今日订单数'); + $grid->column('t_amount', '今日成交额'); + $grid->column('y_num', '昨日订单数'); + $grid->column('y_amount', '昨日成交额'); + $grid->column('w_num', '本周订单数'); + $grid->column('w_amount', '本周成交额'); + $grid->column('m_num', '本月订单数'); + $grid->column('m_amount', '本月成交额'); $grid->disableActions(); - $grid->filter(function (Grid\Filter $filter){ - $filter->equal('person_id','拓展员懒ID'); + $grid->filter(function (Grid\Filter $filter) { + $filter->equal('person_id', '拓展员懒ID'); }); }); - }else{ - return Grid::make(new \App\Admin\Repositories\v3\Salesman(),function (Grid $grid){ - //$grid->tools(new SalesmanOption()); + } else { + return Grid::make(new \App\Admin\Repositories\v3\Salesman(), function (Grid $grid) { + $grid->tools(new SalesmanOption()); + $name = request()->get('name')??null; + $option = request()->get('option'); $grid->paginate(10); - $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->id; + $grid->column('person_id', '懒ID'); + $grid->column('nick_name', '拓展员'); + $grid->column('total', '社区总数'); $grid->column('user_id','绑定用户数')->display(function ($uid){ - return count(explode(',',$uid)); + if ($uid){ + return count(explode(',',$uid)); + } + return 0; }); - $grid->column('t_num','订单数'); - $grid->column('t_amount','成交额'); - $grid->disableActions(); - $grid->filter(function (Grid\Filter $filter){ - $filter->equal('person_id','拓展员懒ID'); + $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'); }); }); } diff --git a/app/Admin/Extensions/Salesman.php b/app/Admin/Extensions/Salesman.php new file mode 100644 index 0000000..800d0f6 --- /dev/null +++ b/app/Admin/Extensions/Salesman.php @@ -0,0 +1,40 @@ +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('详情'); + + } +} diff --git a/app/Admin/Repositories/v3/CsInfo.php b/app/Admin/Repositories/v3/CsInfo.php index 8eddb5b..012776f 100644 --- a/app/Admin/Repositories/v3/CsInfo.php +++ b/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'] ?? [] // 传入数据二维数组 + ); + } } diff --git a/app/Admin/Repositories/v3/Salesman.php b/app/Admin/Repositories/v3/Salesman.php index 17a96f9..ab4c606 100644 --- a/app/Admin/Repositories/v3/Salesman.php +++ b/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'=>'',//取哪个市场数据 diff --git a/app/Models/v3/SalesmanData.php b/app/Models/v3/SalesmanData.php index 537c04b..5387a62 100644 --- a/app/Models/v3/SalesmanData.php +++ b/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'; }