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

68 lines
2.8 KiB

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\Repositories\v3;
  3. use App\Admin\Common\Order;
  4. use App\Models\LanzuCsInfo;
  5. use App\Models\v3\SalesmanData;
  6. use Dcat\Admin\Admin;
  7. use Dcat\Admin\Grid;
  8. use Dcat\Admin\Repositories\EloquentRepository;
  9. use Illuminate\Support\Facades\DB;
  10. class Salesman extends EloquentRepository
  11. {
  12. protected $eloquentClass = \App\Models\v3\User::class;
  13. public function get(Grid\Model $model)
  14. {
  15. $adu = Admin::user();
  16. if ($adu->isRole('lanzu_cs')){
  17. $row = LanzuCsInfo::where('admin_user_id',$adu->id)->first();
  18. if ($row){
  19. $userId = $row->person_id;
  20. }
  21. }else{
  22. $personId = $model->filter()->input('person_id');
  23. $userId = $personId??$model->filter()->input('user_id');
  24. }
  25. $build = LanzuCsInfo::select(
  26. DB::raw('count("lanzu_cs_info.person_id") as total'),
  27. DB::raw('group_concat(lanzu_cs_info.admin_user_id) as admin_user_id'),
  28. DB::raw('group_concat(rb.user_id) as user_id'),
  29. 'lanzu_cs_info.person_id','lanzu_user.nick_name')
  30. ->groupBy('lanzu_cs_info.person_id')
  31. ->leftJoin('lanzu_user','lanzu_user.id','lanzu_cs_info.person_id')
  32. ->leftJoin('lanzu_user_relation_bind as rb','rb.source_id','lanzu_cs_info.admin_user_id')
  33. ->where('lanzu_cs_info.person_id','>',0);
  34. if ($userId){
  35. $build = $build->where('lanzu_user.id',$userId);
  36. }
  37. $option = request()->get('option');
  38. //>>1.获取业务员
  39. $rows = $build->paginate(10)->toArray();
  40. //>>2.获取业务员下的所有社区的绑定用户
  41. foreach ($rows['data'] as &$value){
  42. $value['admin_user_id'] = array_unique(explode(',',$value['admin_user_id']));
  43. $value['total'] = count($value['admin_user_id']);
  44. $uid = explode(',',$value['user_id']);
  45. $value['order_num'] = Order::getOrderData([
  46. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  47. 'data_type'=>'number',//取什么数据 data_type 数据类型
  48. 'market_id'=>'',//取哪个市场数据
  49. 'condition'=>1,//取数据维度 condition
  50. 'user_ids'=>$uid?$uid:null
  51. ],$option);//今日订单数
  52. $value['order_amount'] = Order::getOrderData([
  53. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  54. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  55. 'market_id'=>'',//取哪个市场数据
  56. 'condition'=>1,//取数据维度 condition
  57. 'user_ids'=>$uid?$uid:null
  58. ],$option);//今日订单金额
  59. }
  60. return $model->makePaginator($rows['total'],$rows['data']); // 传入总记录数// 传入数据二维数组
  61. }
  62. }