coupon-admin/app/controller/manager/Statistical.php

122 lines
4.0 KiB
PHP

<?php
namespace app\controller\manager;
use app\model\Member;
use app\repository\AccountRepository;
use app\repository\CouponRepository;
/**
* 统计图
*/
class Statistical extends Base
{
/**
* 签到
* */
public function sign()
{
$startTime = input("startTime/s", date("Y-m-d", strtotime("-1 year")));
$endTime = input("endTime/s", date("Y-m-d"));
$agencyCode = input("agencyCode/s");
$this->data["startTime"] = $startTime;
$this->data["endTime"] = $endTime;
$this->data["agencyCode"] = $agencyCode;
$xDay = diffBetweenTwoDays($startTime, $endTime);
if ($xDay > 366) {
return $this->error("日期不要超过");
}
//生成折现点
$x = ["product"];
$releaseDataArray = ["zero"=>"发布数量"];
$signDataArray = ["zero"=>"签到数量"];
$receiveDataArray = ["zero"=>"领取数量"];
for ($aa = 0; $aa <= $xDay; $aa++) {
$key = date("Y-m-d", strtotime($startTime . " +" . $aa . " day"));
$x[] = $key;
$releaseDataArray[$key] = 0;
$signDataArray[$key] = 0;
$receiveDataArray[$key] = 0;
}
$this->data["x"] = json_encode($x);
//拿数据
//发布
$release = CouponRepository::getInstance()->getReleaseStatistics($startTime,$endTime,$agencyCode);
foreach ($release as $item){
if(isset($releaseDataArray[$item["create_time"]])){
$releaseDataArray[$item["create_time"]]++;
}
}
$releaseDataArray= array_values($releaseDataArray);
$this->data["releaseDataArray"]=json_encode($releaseDataArray);
//签到数量
$sign = CouponRepository::getInstance()->getSignStatistics($startTime,$endTime,$agencyCode);
foreach ($sign as $item){
if(isset($signDataArray[$item["verificate_time"]])){
$signDataArray[$item["verificate_time"]]++;
}
}
$signDataArray= array_values($signDataArray);
$this->data["signDataArray"]=json_encode($signDataArray);
//领取数量
$receive = CouponRepository::getInstance()->getReceiveStatistics($startTime,$endTime,$agencyCode);
foreach ($receive as $item){
if(isset($receiveDataArray[$item["received_time"]])){
$receiveDataArray[$item["received_time"]]++;
}
}
$receiveDataArray = array_values($receiveDataArray);
$this->data["receiveDataArray"] = json_encode($receiveDataArray);
$this->data["agency"] = Member::getAgentAll();
return $this->view();
}
/**
* 注册位置
* */
public function register(){
if($this->request->isPost()){
$page =input("page/d",1);
$size =input("size/d",1000);
$data = AccountRepository::getInstance()->findList([
["lat",">",0],
["lng",">",0],
],["lat","lng","id as value"],$page,$size,function ($q){
return $q->withAttr("value",function ($value){
return 100;
});
},["id"=>"desc"]);
return $this->json(0,"success",$data);
}
return $this->view();
}
/**
* 领取签到券位置
* */
public function receive(){
if($this->request->isPost()){
$page =input("page/d",1);
$size =input("size/d",1000);
$data = CouponRepository::getInstance()->findList([
["lat",">",0],
["lng",">",0],
],["lat","lng","id as value"],$page,$size,function ($q){
return $q->withAttr("value",function ($value){
return 100;
});
},["id"=>"desc"]);
return $this->json(0,"success",$data);
}
return $this->view();
}
}