_name = $name; $this->_option = $option; } public function array(): array { $result[] = [ '懒ID', '拓展员', '服务站点', '站点地址', '绑定用户数', $this->_name.'下单人数', $this->_name.'订单数', $this->_name.'订单金额', ]; $res = $this->getSaleMan(-30); foreach ($res as $value){ $item =[]; $item[] = $value['person_id']; $item[] = $value['real_name']??$value['nick_name']; $item[] = $value['name']; $item[] = $value['address']; $item[] = $value['user_num']??0; $item[] = $value['order_user_num']??0; $item[] = $value['order_num']??0; $item[] = $value['order_amount']??0; $result[] = $item; } return $result; } /** * 获取拓展员 */ public function getSaleMan($option) { $data = LanzuCsInfo::select( DB::raw('count("lanzu_cs_info.person_id") as total'), DB::raw('group_concat(lanzu_cs_info.admin_user_id) as admin_user_id'), DB::raw('group_concat(rb.user_id) as user_id'), 'lanzu_cs_info.person_id', 'lanzu_user.nick_name') ->groupBy('lanzu_cs_info.person_id') ->leftJoin('lanzu_user', 'lanzu_user.id', 'lanzu_cs_info.person_id') ->leftJoin('lanzu_user_relation_bind as rb', 'rb.source_id', 'lanzu_cs_info.admin_user_id') ->where('lanzu_cs_info.person_id', '>', 0)->get()->toArray(); $result = []; foreach ($data as $key => $value) { $value['admin_user_id'] = array_unique(explode(',', $value['admin_user_id'])); $result = $this->csDetail($value['admin_user_id'], $this->_option, $value['nick_name'], $result); } return $result; } /** * 获取站点详情 */ public function csDetail($adminUid, $option, $nickName, $result) { $data = modelCsInfo::whereIn('lanzu_cs_info.admin_user_id', $adminUid) ->select('lanzu_cs_info.*','lanzu_employees.name as real_name') ->leftJoin('lanzu_employees', function ($join){ $join->on('lanzu_employees.user_id','=', 'lanzu_cs_info.person_id') ->where('lanzu_employees.status','=',1); }) ->get()->toArray(); foreach ($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);//订单金额 $value['nick_name'] = $nickName; $result[] = $value; } return $result; } }