链街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.

108 lines
5.0 KiB

5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Repositories\v3;
  3. use App\Admin\Common\Order;
  4. use App\Models\LanzuCsInfo;
  5. use App\Models\v3\SalesmanData;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Repositories\EloquentRepository;
  8. use Illuminate\Support\Facades\DB;
  9. class Salesman extends EloquentRepository
  10. {
  11. protected $eloquentClass = \App\Models\v3\User::class;
  12. public function get(Grid\Model $model)
  13. {
  14. $userId = $model->filter()->input('user_id');
  15. $build = LanzuCsInfo::select(
  16. DB::raw('count("lanzu_cs_info.person_id") as total'),
  17. DB::raw('group_concat(lanzu_cs_info.admin_user_id) as admin_user_id'),
  18. DB::raw('group_concat(rb.user_id) as user_id'),
  19. 'lanzu_cs_info.person_id','lanzu_user.nick_name')
  20. ->groupBy('lanzu_cs_info.person_id')
  21. ->leftJoin('lanzu_user','lanzu_user.id','lanzu_cs_info.person_id')
  22. ->leftJoin('lanzu_user_relation_bind as rb','rb.source_id','lanzu_cs_info.admin_user_id')
  23. ->where('lanzu_cs_info.person_id','>',0);
  24. if ($userId){
  25. $build = $build->where('lanzu_user.id',$userId);
  26. }
  27. //>>1.获取业务员
  28. $rows = $build->paginate(10)->toArray();
  29. //>>2.获取业务员下的所有社区的绑定用户
  30. foreach ($rows['data'] as &$value){
  31. $value['admin_user_id'] = array_unique(explode(',',$value['admin_user_id']));
  32. $value['total'] = count($value['admin_user_id']);
  33. $uid = explode(',',$value['user_id']);
  34. $value['t_num'] = Order::getOrderData([
  35. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  36. 'data_type'=>'number',//取什么数据 data_type 数据类型
  37. 'market_id'=>'',//取哪个市场数据
  38. 'condition'=>1,//取数据维度 condition
  39. 'user_ids'=>$uid?$uid:null
  40. ],1);//今日订单数
  41. $value['t_amount'] = Order::getOrderData([
  42. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  43. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  44. 'market_id'=>'',//取哪个市场数据
  45. 'condition'=>1,//取数据维度 condition
  46. 'user_ids'=>$uid?$uid:null
  47. ],1);//今日订单金额
  48. $value['y_num'] = Order::getOrderData([
  49. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  50. 'data_type'=>'number',//取什么数据 data_type 数据类型
  51. 'market_id'=>'',//取哪个市场数据
  52. 'condition'=>1,//取数据维度 condition
  53. 'user_ids'=>$uid?$uid:null
  54. ],-1);//昨日订单数
  55. $value['y_amount'] = Order::getOrderData([
  56. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  57. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  58. 'market_id'=>'',//取哪个市场数据
  59. 'condition'=>1,//取数据维度 condition
  60. 'user_ids'=>$uid?$uid:null
  61. ],-1);//昨日订单金额
  62. $value['w_num'] = Order::getOrderData([
  63. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  64. 'data_type'=>'number',//取什么数据 data_type 数据类型
  65. 'market_id'=>'',//取哪个市场数据
  66. 'condition'=>1,//取数据维度 condition
  67. 'user_ids'=>$uid?$uid:null
  68. ],'w');//本周订单 数
  69. $value['w_amount'] = Order::getOrderData([
  70. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  71. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  72. 'market_id'=>'',//取哪个市场数据
  73. 'condition'=>1,//取数据维度 condition
  74. 'user_ids'=>$uid?$uid:null
  75. ],'w');//本周订单金额
  76. $value['m_num'] = Order::getOrderData([
  77. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  78. 'data_type'=>'number',//取什么数据 data_type 数据类型
  79. 'market_id'=>'',//取哪个市场数据
  80. 'condition'=>1,//取数据维度 condition
  81. 'user_ids'=>$uid?$uid:null
  82. ],'30');//本月订单数
  83. $value['m_amount'] = Order::getOrderData([
  84. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  85. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  86. 'market_id'=>'',//取哪个市场数据
  87. 'condition'=>1,//取数据维度 condition
  88. 'user_ids'=>$uid?$uid:null
  89. ],'30');//本月订单金额
  90. unset($value['admin_user_id']);
  91. unset($value['user_id']);
  92. }
  93. return $model->makePaginator($rows['total'],$rows['data']); // 传入总记录数// 传入数据二维数组
  94. }
  95. }