链街Dcat后台
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
4.8 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Actions\Lazy\CsInfo;
  4. use App\Admin\Actions\Tools\SalesmanOption;
  5. use App\Admin\Actions\Tools\SalesmanOptionCopy;
  6. use App\Http\Controllers\TestController;
  7. use App\Models\LanzuMarket;
  8. use App\Models\v3\LanzuEmployees;
  9. use App\Models\v3\SalesmanData;
  10. use Dcat\Admin\Admin;
  11. use Dcat\Admin\Controllers\AdminController;
  12. use Dcat\Admin\Grid;
  13. use Dcat\Admin\Widgets\Modal;
  14. use Maatwebsite\Excel\Facades\Excel;
  15. class Salesman extends AdminController
  16. {
  17. protected function grid()
  18. {
  19. if (false) {
  20. return Grid::make(new SalesmanData(), function (Grid $grid) {
  21. $grid->paginate(10);
  22. $grid->column('person_id', '懒ID');
  23. $grid->column('nick_name', '拓展员');
  24. $grid->column('total', '社区总数');
  25. $grid->column('t_num', '今日订单数');
  26. $grid->column('t_amount', '今日成交额');
  27. $grid->column('y_num', '昨日订单数');
  28. $grid->column('y_amount', '昨日成交额');
  29. $grid->column('w_num', '本周订单数');
  30. $grid->column('w_amount', '本周成交额');
  31. $grid->column('m_num', '本月订单数');
  32. $grid->column('m_amount', '本月成交额');
  33. $grid->disableActions();
  34. $grid->filter(function (Grid\Filter $filter) {
  35. $filter->equal('person_id', '拓展员懒ID');
  36. });
  37. });
  38. } else {
  39. $adu = Admin::user();
  40. return Grid::make(new \App\Admin\Repositories\v3\Salesman(), function (Grid $grid)use ($adu) {
  41. $grid->tools(new SalesmanOption());
  42. $name = request()->get('name') ?(request()->get('name')=='全部'?'总':request()->get('name')): '';
  43. $option = request()->get('option') ?? 0;
  44. $searchTime = request()->input('created_at');//搜索时间
  45. if ($searchTime){
  46. $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>";
  47. }else{
  48. $content = "<a href='salesman_export?option={$option}&name={$name}' class='btn btn-primary feather icon-download'> 导出 </a>";
  49. }
  50. $grid->tools($content);
  51. $grid->paginate(10);
  52. $grid->column('person_id', '懒ID');
  53. $grid->column('nick_name', '拓展员')->display(function (){
  54. $row = LanzuEmployees::where('user_id',$this->person_id)->where('status',1)->first();
  55. if ($row){
  56. return $row->name;
  57. }
  58. return $this->nick_name;
  59. });
  60. $grid->column('total', '社区总数');
  61. $grid->column('user_id', '绑定用户数')->display(function ($uid) {
  62. if ($uid) {
  63. return count(explode(',', $uid));
  64. }
  65. return 0;
  66. });
  67. //$grid->column('order_user_num', $name.'下单人数');
  68. $grid->column('order_num', $name . '订单数');
  69. $grid->column('order_amount', $name . '成交额');
  70. $grid->actions(function (Grid\Displayers\Actions $actions) use ($name, $option,$searchTime) {
  71. $row = $actions->row->toArray();
  72. $actions->append(new \App\Admin\Extensions\Salesman($row['admin_user_id'], $name, $option,$searchTime, '详情'));
  73. });
  74. $grid->disableCreateButton();
  75. $grid->disableEditButton();
  76. $grid->disableDeleteButton();
  77. $grid->disableViewButton();
  78. $grid->filter(function (Grid\Filter $filter)use ($option,$adu) {
  79. if (!$adu->isRole('lanzu_cs')){
  80. $filter->equal('person_id','懒ID');
  81. $filter->equal('user_id','拓展员')->select(
  82. LanzuEmployees::where('status',1)->pluck('name','user_id')
  83. );
  84. }
  85. if ($option==0){
  86. $filter->between('created_at','日期')->datetime();
  87. }
  88. });
  89. });
  90. }
  91. }
  92. /**
  93. * 数据导出
  94. * @return \Symfony\Component\HttpFoundation\BinaryFileResponse
  95. */
  96. public function export()
  97. {
  98. $name = request()->get('name');
  99. $option = request()->get('option');
  100. $time = date('Y-m-d H:i:s',time());
  101. return Excel::download(new \App\Admin\Actions\Exporter\SalesMan($option,$name), $time.'.xlsx');
  102. }
  103. }