Commit 4ca419ee authored by zw's avatar zw

统计

parent f600f945
......@@ -282,15 +282,32 @@ class OBargainModel extends Model
->where($params)
->find();
}
public function getAddBargainNumGroupTime($params){
$field = "count(1) as num,DATE(create_time) as day";
/**
* @param $params
* @param $type
* @return false|\PDOStatement|string|\think\Collection
*/
public function getAddBargainNumGroupTime($params,$type){
$field = "";
$where_ = [];
if($type == 1){
$field = "sum(scale_fee) as num,DATE(create_time) as day";
}elseif($type == 2){
$field = "sum(practical_fee) as num,DATE(create_time) as day";
}elseif ($type == 3){
$field = "count(1) as num,DATE(create_time) as day";
}
$where_["status"] = 11; //审核成功
if(isset($params["agent_id"])){
$where_["reception_id"] = $params["agent_id"];
$where_["agent_id"] = $params["agent_id"];
}
if(isset($params["create_time"])){
$where_["create_time"] = $params["create_time"];
}
return Db::table($this->table)
->field($field)
->where($where_)
......
......@@ -136,5 +136,21 @@ class OReportModel extends Model
}
public function getAddReportNumGroupTime($params){
$field = "count(1) as num,DATE(create_time) as day";
$where_ = [];
if(isset($params["agent_id"])){
$where_["report_agent_id"] = $params["agent_id"];
}
if(isset($params["create_time"])){
$where_["create_time"] = $params["create_time"];
}
$where_["status"] = 0;
return Db::table($this->table)
->field($field)
->where($where_)
->group("day")
->select();
}
}
\ No newline at end of file
......@@ -17,7 +17,7 @@ class TAgentTotalModel extends Model{
function __construct()
{
$this->db_ = Db::table($this->table);
$this->db_ = Db::name($this->table);
}
/**
......@@ -31,6 +31,8 @@ class TAgentTotalModel extends Model{
Db::commit();
return 1;
} catch (\Exception $e) {
print_r($e);
Db::rollback();
return 0;
}
......
......@@ -272,6 +272,11 @@ Route::group('task',[
'addReport' => [ 'task/PrivacyNumber/addReport', [ 'method' => 'get|post' ]], //阿里大于隐私号码回调
'queryRecordFile' => [ 'task/PrivacyNumber/queryRecordFile', [ 'method' => 'get' ]], //下载录音
'releaseNumber' => [ 'task/PrivacyNumber/releaseNumber', [ 'method' => 'get' ]], //释放号码
'totalAgentResults' => [ 'task/ResultsSummaryTask/totalAgentResults', [ 'method' => 'get' ]], //释放号码
]);
Route::group('broker', [
......
<?php
namespace app\task\controller;
use app\model\AAgents;
use app\model\GHouses;
use app\model\OBargainModel;
use app\model\OMarchInModel;
use app\model\OPayLogModel;
use app\model\OReportModel;
use app\model\TAgentTotalModel;
use app\model\Users;
......@@ -15,42 +18,45 @@ use app\model\Users;
* Time : 上午10:07
* Intro:
*/
class ResultsSummaryTask{
class ResultsSummaryTask
{
private $agentsModel;
private $tAgentTotalModel;
function __construct()
{
$this->agentsModel = new AAgents();
$this->tAgentTotalModel = new TAgentTotalModel();
}
public function totalAgentResults(){
public function totalAgentResults()
{
//todo 1.分页查询经纪人, 2遍历执行,判断一个经纪人在统计表最后一条统计数据的日期
//TODO 3.日期加一天并判断是否大于等于当前时间大于return 4.执行此日期的统计,5.当次日期小于当前日期,递归日期加一。继续统计
$total = $this->agentsModel->getAgentsCountByTask();
$pageSize = 50;
$pageSize = 50;
$pageTotal = ceil($total / $pageSize);
for($pageNo = 1 ; $pageNo <= $pageTotal ; $pageNo++ ){
$resultArr = $this->agentsModel->getAgentsListByTask($pageNo,$pageSize,"id,store_id,district_id");
for ($pageNo = 1; $pageNo <= $pageTotal; $pageNo++) {
$resultArr = $this->agentsModel->getAgentsListByTask($pageNo, $pageSize, "id,store_id,district_id");
$this->executeTotal($resultArr);
}
exit;
}
private function executeTotal($resultArr){
foreach ($resultArr as $key=>$value){
private function executeTotal($resultArr)
{
foreach ($resultArr as $key => $value) {
$param["agent_id"] = $value["id"];
$param["is_del"] = 0;
$total_time_arr = $this->tAgentTotalModel->getTotalEndTimeByAgentId("total_time",$param);
$total_time_arr = $this->tAgentTotalModel->getTotalEndTimeByAgentId("total_time", $param);
$start_total_time = "2018-03-12";
$end_total_time = date("Y-m-d",strtotime("-1 day"));
if(count($total_time_arr) > 0){
$end_total_time = date("Y-m-d", strtotime("-1 day"));
if (count($total_time_arr) > 0) {
$start_total_time = $total_time_arr[0]["total_time"];
}
......@@ -58,67 +64,121 @@ class ResultsSummaryTask{
$district_id = empty($value["district_id"]) ? 0 : $value["district_id"];
$store_id = empty($value["store_id"]) ? 0 : $value["store_id"];
//todo 查询时间段的数据
$this->selectTotal($agent_id,$start_total_time,$end_total_time);
$this->binAgentModel($agent_id,$district_id,$store_id);
$result = $this->selectTotal($agent_id, $district_id, $store_id, $start_total_time, $end_total_time);
$this->tAgentTotalModel->addTotal($result);
}
}
public function test(){
$this->selectTotal(1,"2018-02-02","2018-03-15");
}
private function selectTotal($agent_id,$start_total_time,$end_total_time){
/* public function test()
{
$params = $this->selectTotal(1, 1, 1, "2018-02-02", "2018-03-15");
$this->tAgentTotalModel->addTotal($params);
// dump($params);
}*/
private function selectTotal($agent_id, $district_id, $store_id, $start_total_time, $end_total_time)
{
//todo 如果查询出这个时间段都为0 则给此经纪人插入条最后一个日期的为空的数据
$result_arr = [];
$start_total_time = $start_total_time . " 00:00:00";
$end_total_time = $end_total_time . " 23:59:59";
//房源
$houseModel = new GHouses();
$params["agent_id"] = $agent_id;
$params['create_time'] = array( 'between', array( $start_total_time, $end_total_time) );
$addHouseNum = $houseModel->getAddHouseNumGroupTime($params);
$houseModel = new GHouses();
$params["agent_id"] = $agent_id;
$params['create_time'] = array( 'between', array( $start_total_time, $end_total_time ) );
$addHouseNum = $houseModel->getAddHouseNumGroupTime($params);
$result_arr["house_num"] = $this->foreachResult($addHouseNum);
//dump($addHouseNum);
//客源
$userModel = new Users();
$addUserNum = $userModel->getAddUserNumGroupTime($params);
$userModel = new Users();
$addUserNum = $userModel->getAddUserNumGroupTime($params);
$result_arr["user_num"] = $this->foreachResult($addUserNum);
//dump($addUserNum);
//业绩
$bargainModel = new OBargainModel();
$performanceSum = $bargainModel->getAddBargainNumGroupTime($params, 1);//1表示业绩 2表示实收
// dump($performanceSum);
$result_arr["performance_sum"] = $this->foreachResult($performanceSum);
//实收
$receivedSum = $bargainModel->getAddBargainNumGroupTime($params, 2);//1表示业绩 2表示实收
$result_arr["received_sum"] = $this->foreachResult($receivedSum);
//dump($receivedSum);
//约带看
$reportModel = new OReportModel();
$reportNum = $reportModel->getAddReportNumGroupTime($params);
$result_arr["report_num"] = $this->foreachResult($reportNum);
//dump($reportNum);
//进场
$marchInModel = new OMarchInModel();
$addMarchInNum = $marchInModel->getAddMarchInNumGroupTime($params);
$marchInModel = new OMarchInModel();
$addMarchInNum = $marchInModel->getAddMarchInNumGroupTime($params);
$result_arr["addMarch_in_num"] = $this->foreachResult($addMarchInNum);
//dump($addMarchInNum);
//收款
$payLogModel = new OPayLogModel();
$payLogNum = $payLogModel->getAddPayLogNumGroupTime($params);
$payLogModel = new OPayLogModel();
$payLogNum = $payLogModel->getAddPayLogNumGroupTime($params);
$result_arr["pay_log_num"] = $this->foreachResult($payLogNum);
//dump($payLogNum);
//监督
//todo 监督
$result_arr["supervision_num"] = $this->foreachResult($supervisionNum = []);
//成交报告
$bargainModel = new OBargainModel();
$bargainModel->getAddBargainNumGroupTime($params);
$bargainSum = $bargainModel->getAddBargainNumGroupTime($params, 3);//表示统计
//dump($bargainSum);
$result_arr["bargain_sum"] = $this->foreachResult($bargainSum);
return $this->binAgentModel($agent_id, $district_id, $store_id, $result_arr, $start_total_time, $end_total_time);
}
private function foreachResult($list)
{
$result = [];
if (count($list) <= 0) {
$day = date("Y-m-d", strtotime("-1 day"));
$result[$day] = 0;
return $result;
}
foreach ($list as $item) {
$result[$item["day"]] = $item["num"];
}
return $result;
}
private function binAgentModel($agent_id,$district_id,$store_id){
$param = [];
$param["district_id"] = 1;
$param["store_id"] = 1;
$param["agent_id"] = 1;
$param["total_time"] = 1;
$param["add_house_num"] = 1;
$param["add_user_num"] = 1;
$param["performance"] = 1;
$param["official_receipts"] = 1;
$param["look_at_num"] = 1;
$param["march_in_num"] = 1;
$param["paylog"] = 1;
$param["supervision_num"] = 1;
$param["create_time"] = 1;
$param["update_time"] = 1;
return $param;
private function binAgentModel($agent_id, $district_id, $store_id, $result_arr, $start_total_time, $end_total_time)
{
$params = [];
$i = 0;
while ($start_total_time <= $end_total_time) {
if(isset($result_arr["house_num"][$start_total_time]) || isset($result_arr["user_num"][$start_total_time])||
isset($result_arr["performance_sum"][$start_total_time]) || isset($result_arr["received_sum"][$start_total_time])||
isset($result_arr["report_num"][$start_total_time]) || isset($result_arr["addMarch_in_num"][$start_total_time])||
isset($result_arr["pay_log_num"][$start_total_time]) || isset($result_arr["supervision_num"][$start_total_time])||
isset($result_arr["bargain_sum"][$start_total_time])){
$params[$i]["district_id"] = $district_id;
$params[$i]["store_id"] = $store_id;
$params[$i]["agent_id"] = $agent_id;
$params[$i]["total_time"] = $start_total_time;
$params[$i]["create_time"] = date("Y-m-d H:s:i", time());
$params[$i]["update_time"] = date("Y-m-d H:s:i", time());
$params[$i]["add_house_num"] = isset($result_arr["house_num"][$start_total_time]) ? $result_arr["house_num"][$start_total_time] : 0;
$params[$i]["add_user_num"] = isset($result_arr["user_num"][$start_total_time]) ? $result_arr["user_num"][$start_total_time] : 0;
$params[$i]["performance"] = isset($result_arr["performance_sum"][$start_total_time]) ? $result_arr["performance_sum"][$start_total_time] : 0;
$params[$i]["official_receipts"] = isset($result_arr["received_sum"][$start_total_time]) ? $result_arr["received_sum"][$start_total_time] : 0;
$params[$i]["look_at_num"] = isset($result_arr["report_num"][$start_total_time]) ? $result_arr["report_num"][$start_total_time] : 0;
$params[$i]["march_in_num"] = isset($result_arr["addMarch_in_num"][$start_total_time]) ? $result_arr["addMarch_in_num"][$start_total_time] : 0;
$params[$i]["paylog"] = isset($result_arr["pay_log_num"][$start_total_time]) ? $result_arr["pay_log_num"][$start_total_time] : 0;
$params[$i]["supervision_num"] = isset($result_arr["supervision_num"][$start_total_time]) ? $result_arr["supervision_num"][$start_total_time] : 0;
$params[$i]["bargain_sum"] = isset($result_arr["bargain_sum"][$start_total_time]) ? $result_arr["bargain_sum"][$start_total_time] : 0;
$i++;
}
$start_total_time = date('Y-m-d', strtotime('+1 day', strtotime($start_total_time)));
}
return $params;
}
}
\ 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