You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
5.0 KiB
112 lines
5.0 KiB
<?php
|
|
|
|
|
|
namespace App\Admin\Controllers\v3;
|
|
|
|
|
|
use App\Admin\Actions\Tools\SalesmanOption;
|
|
use App\Admin\Actions\Tools\SalesmanOptionCopy;
|
|
use App\Admin\Common\Order;
|
|
use App\Models\LanzuUserRelationBind;
|
|
use App\Models\v3\LanzuEmployees;
|
|
use App\Models\v3\SalesmanData;
|
|
use Dcat\Admin\Admin;
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
use Dcat\Admin\Grid;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
class Salesman extends AdminController
|
|
{
|
|
protected function 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->disableActions();
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->equal('person_id', '拓展员懒ID');
|
|
});
|
|
});
|
|
} else {
|
|
$adu = Admin::user();
|
|
return Grid::make(new \App\Admin\Repositories\v3\Salesman(), function (Grid $grid) use ($adu) {
|
|
$grid->tools(new SalesmanOption());
|
|
$name = request()->get('name') ? (request()->get('name') == '全部' ? '总' : request()->get('name')) : '';
|
|
$option = request()->get('option') ?? 0;
|
|
list($beginTime,$endTime) = Order::beginAndEnd($option);
|
|
$searchTime = request()->input('created_at');//搜索时间
|
|
if ($searchTime) {
|
|
$content = "<a href='salesman_export?option={$option}&name={$name}&created_at[start]={$searchTime['start']}&created_at[end]={$searchTime['end']}' class='btn btn-primary feather icon-download'> 导出 </a>";
|
|
} else {
|
|
$content = "<a href='salesman_export?option={$option}&name={$name}' class='btn btn-primary feather icon-download'> 导出 </a>";
|
|
}
|
|
$grid->tools($content);
|
|
$grid->paginate(10);
|
|
$grid->column('person_id', '懒ID');
|
|
$grid->column('nick_name', '拓展员')->display(function () {
|
|
$row = LanzuEmployees::where('user_id', $this->person_id)->where('status', 1)->first();
|
|
if ($row) {
|
|
return $row->name;
|
|
}
|
|
return $this->nick_name;
|
|
});
|
|
$grid->column('total', '社区总数');
|
|
$grid->column('user_id', $name.'绑定用户数')->display(function ($uid) use ($beginTime,$endTime) {
|
|
if ($uid) {
|
|
$count = LanzuUserRelationBind::whereIn('user_id',explode(',', $uid))->whereBetween('created_at',[$beginTime,$endTime])->count();
|
|
return $count;
|
|
}
|
|
return 0;
|
|
});
|
|
//$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, $searchTime) {
|
|
$row = $actions->row->toArray();
|
|
$actions->append(new \App\Admin\Extensions\Salesman($row['admin_user_id'], $name, $option, $searchTime, '详情'));
|
|
});
|
|
|
|
$grid->disableCreateButton();
|
|
$grid->disableEditButton();
|
|
$grid->disableDeleteButton();
|
|
$grid->disableViewButton();
|
|
$grid->filter(function (Grid\Filter $filter) use ($option, $adu) {
|
|
if (!$adu->isRole('lanzu_cs')) {
|
|
$filter->equal('person_id', '懒ID');
|
|
$filter->equal('user_id', '拓展员')->select(
|
|
LanzuEmployees::where('status', 1)->pluck('name', 'user_id')
|
|
);
|
|
}
|
|
if ($option == 0) {
|
|
$filter->between('created_at', '日期')->datetime();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 数据导出
|
|
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
|
|
*/
|
|
public function export()
|
|
{
|
|
$name = request()->get('name');
|
|
$option = request()->get('option');
|
|
$time = date('Y-m-d H:i:s', time());
|
|
return Excel::download(new \App\Admin\Actions\Excel\SalesMan($option, $name), $time . '.xlsx');
|
|
}
|
|
|
|
|
|
}
|