Commit 53cab8ef authored by zhuwei's avatar zhuwei

查询个人排名

parent 7e9e55c0
...@@ -106,10 +106,12 @@ class PerformanceService ...@@ -106,10 +106,12 @@ class PerformanceService
$arr = []; $arr = [];
$field = "a.name,a.img,b.store_name,c.district_name"; $field = "a.name,a.img,b.store_name,c.district_name";
$num = ($pageNo - 1) * 10;
foreach ($result as $key => $value) { foreach ($result as $key => $value) {
switch ($type) { switch ($type) {
case 1: case 1:
$value["index_"] = $key + 1; $value["index_"] = $key + 1 + $num;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]); $info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]);
if (count($info) > 0) { if (count($info) > 0) {
$value["name"] = $info[0]["name"]; $value["name"] = $info[0]["name"];
...@@ -121,7 +123,7 @@ class PerformanceService ...@@ -121,7 +123,7 @@ class PerformanceService
} }
break; break;
case 2: case 2:
$value["index_"] = $key + 1; $value["index_"] = $key + 1 + $num;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"], "" ]); $info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"], "" ]);
$store_name = $this->agentModel->getStoreOrDistrict([ "store_id" => $value["store_id"], "level" => 20 ]); $store_name = $this->agentModel->getStoreOrDistrict([ "store_id" => $value["store_id"], "level" => 20 ]);
if (count($info) > 0) { if (count($info) > 0) {
...@@ -141,7 +143,7 @@ class PerformanceService ...@@ -141,7 +143,7 @@ class PerformanceService
break; break;
case 3: case 3:
$value["index_"] = $key + 1; $value["index_"] = $key + 1 + $num;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]); $info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]);
$district_name = $this->agentModel->getStoreOrDistrict([ "district_id" => $value["district_id"], "level" => [ "in", "30,40" ] ]); $district_name = $this->agentModel->getStoreOrDistrict([ "district_id" => $value["district_id"], "level" => [ "in", "30,40" ] ]);
if (count($info) > 0) { if (count($info) > 0) {
...@@ -160,10 +162,131 @@ class PerformanceService ...@@ -160,10 +162,131 @@ class PerformanceService
break; break;
} }
} }
//dump($arr);exit;
if (count($arr) == 1) {
$agent_id = $arr[0]['agent_id'];
//只有一条数据说明是经纪人个人业绩查询,将完整排名查下,将个人排名查出来
$ranking_num = $this->getRanking($type, $yesterday, $end_day,$pageNo,$pageSize,$params,$agent_id);
$arr[0]['index_'] = $ranking_num;
}
return ['list'=>$arr,'total'=>$total_result]; return ['list'=>$arr,'total'=>$total_result];
}
/**
* 查询完整排名
* @param $type
* @param $yesterday
* @param $end_day
* @param $pageNo
* @param $pageSize
* @param $params
* @param string $agent_id
* @return int]
*/
public function getRanking($type, $yesterday, $end_day,$pageNo,$pageSize,$params,$agent_id='5740')
{
$where_ = [];
//区域搜索条件
if (!empty($params['district_id'])) {
$where_['district_id'] = $params['district_id'];
}
//部门搜索条件
if (!empty($params['store_id'])) {
$where_['store_id'] = $params['store_id'];
}
$where_['total_time'] = array( 'between', array( $end_day, $yesterday ) );
/* 成交报告数 bargain_sum
收款数 paylog
进场数 march_in_num
报备数 look_at_num
新增商铺数 add_house_num
新增客户数 add_user_num
团队人数 team_num*/
$field = "agent_id,store_id,district_id,
sum(performance) as performance_total,
sum(bargain_sum) as bargain_sum_total,
sum(paylog) as paylog_total,
sum(march_in_num) as march_in_num_total,
sum(look_at_num) as look_at_num_total,
sum(add_house_num) as add_house_num_total,
sum(add_user_num) as add_user_num_total
";
//排序规则
$order = "performance_total ".$params['order'];
$result = $this->totalModel->getTotalByAgentId($field, $where_, $type, $order);
$arr = [];
$field = "a.name,a.img,b.store_name,c.district_name";
foreach ($result as $key => $value) {
switch ($type) {
case 1:
$value["index_"] = $key + 1;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]);
if (count($info) > 0) {
$value["name"] = $info[0]["name"];
$value["img"] = AGENTHEADERIMGURL . $info[0]["img"];
$value["store_name"] = $info[0]["store_name"];
$value["district_name"] = $info[0]["district_name"];
array_push($arr, $value);
}
break;
case 2:
$value["index_"] = $key + 1;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"], "" ]);
$store_name = $this->agentModel->getStoreOrDistrict([ "store_id" => $value["store_id"], "level" => 20 ]);
if (count($info) > 0) {
$value["name"] = count($store_name) > 0 ? $store_name[0]["name"] : "---";
$value["img"] = AGENTHEADERIMGURL . $store_name[0]["img"];
$value["store_name"] = $info[0]["store_name"];
$value["district_name"] = $info[0]["district_name"];
}
//计算门店人数
$params = [];
$params['store_id'] = $value["store_id"];
$params["status"] = 0; //只查询正常状态的经纪人
$value["team_num"] = $this->agentModel->getAgentsCountByStoreId($params);
array_push($arr, $value);
break;
case 3:
$value["index_"] = $key + 1;
$info = $this->agentModel->getAgentsInfoByAgentId($field, [ "agent_id" => $value["agent_id"] ]);
$district_name = $this->agentModel->getStoreOrDistrict([ "district_id" => $value["district_id"], "level" => [ "in", "30,40" ] ]);
if (count($info) > 0) {
$value["name"] = count($district_name) > 0 ? $district_name[0]["name"] : "---";
$value["img"] = AGENTHEADERIMGURL . $district_name[0]["img"];
$value["store_name"] = $info[0]["store_name"];
$value["district_name"] = $info[0]["district_name"];
}
//计算区域人数
$params = [];
$params['district_id'] = $value["district_id"];
$params["status"] = 0; //只查询正常状态的经纪人
$value["team_num"] = $this->agentModel->getAgentsCountByStoreId($params);
array_push($arr, $value);
break;
}
}
foreach ($arr as $k => $v) {
if($v['agent_id'] == $agent_id){
return $v['index_'];
}
}
return 1;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment