349 lines
11 KiB
PHP
349 lines
11 KiB
PHP
<?php
|
||
|
||
namespace app\api\controller\school;
|
||
|
||
use addons\epay\library\Service;
|
||
use app\admin\model\school\help\Cate;
|
||
use app\common\controller\Api;
|
||
use app\common\library\NightSchoolBigData;
|
||
use bw\UrlLock;
|
||
use think\Cache;
|
||
|
||
/**
|
||
* 数据驾驶舱接口
|
||
*/
|
||
class BigData extends Api
|
||
{
|
||
|
||
|
||
// 无需登录的接口,*表示全部
|
||
protected $noNeedLogin = '*';
|
||
// 无需鉴权的接口,*表示全部
|
||
protected $noNeedRight = ['test2'];
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(按区域统计接口)
|
||
* @ApiSummary(按区域统计接口)
|
||
* @ApiMethod(GET)
|
||
* @ApiParams(name = "province", type = "string",required=false,description = "省编号(非必填)")
|
||
* @ApiParams(name = "city", type = "string",required=false,description = "市编号(非必填)")
|
||
* @ApiParams(name = "district", type = "string",required=false,description = "区域编号(非必填)")
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function getAreaBaseData()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"area-base-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$province = $this->request->request("province/s","");
|
||
$city = $this->request->request("city/s","");
|
||
$district = $this->request->request("district/s","");
|
||
$res = NightSchoolBigData::getAreaBaseData($province,$city,$district);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
/**
|
||
* @ApiTitle(按课程类型统计累计报名人数)
|
||
* @ApiSummary(按课程类型统计累计报名人数)
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function accumulatedNumberOfApplicants()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"accumulatedNumberOfApplicants-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
|
||
$res = NightSchoolBigData::accumulatedNumberOfApplicants();
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
/**
|
||
* @ApiTitle(各区域上课数量和上课人数)
|
||
* @ApiSummary(各区域上课数量和上课人数)
|
||
* @ApiParams(name = "province", type = "string",required=false,description = "省编号(非必填)")
|
||
* @ApiParams(name = "city", type = "string",required=false,description = "市编号(非必填)")
|
||
* @ApiParams(name = "time", type = "string",required=false,description = "复合时间查询:today今天,week本周,month本月,year本年,yesterday昨天,last year上一年,last week上周,last month上個月,lately7最近7天 , lately30最近30天,按开始时间区间查传值格式:Y/m/d H:M:S-Y/m/d H:M:S")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function numberOfClassesInEachRegion()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"numberOfClassesInEachRegion-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$province = $this->request->request("province/s","");
|
||
$city = $this->request->request("city/s","");
|
||
$time = $this->request->request("time/s","");
|
||
$res = NightSchoolBigData::numberOfClassesInEachRegion($province,$city,$time);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(按课程类型统计七天内报名人数)
|
||
* @ApiSummary(按课程类型统七天内报名人数)
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function accumulatedSevenNumberOfApplicants()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"accumulatedSevenNumberOfApplicants-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
|
||
$res = NightSchoolBigData::accumulatedSevenNumberOfApplicants();
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
/**
|
||
* @ApiTitle(前N名累计活跃课程)
|
||
* @ApiSummary(前N名累计活跃课程)
|
||
* @ApiParams(name = "number", type = "string",required=false,description = "前N名累计活跃课程")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function topNCumulativeActiveCourses()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"topNCumulativeActiveCourses-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$N = $this->request->request("number/d",20);
|
||
$res = NightSchoolBigData::topNCumulativeActiveCourses($N);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(七天内活动报名人数和活跃热度)
|
||
* @ApiSummary(七天内活动报名人数和活跃热度)
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function accumulatedSevenNumberOfActivity()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"accumulatedSevenNumberOfActivity-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
|
||
$res = NightSchoolBigData::accumulatedSevenNumberOfActivity();
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
/**
|
||
* @ApiTitle(得到七天内日期)
|
||
* @ApiSummary(得到七天内日期)
|
||
* @ApiParams(name = "time", type = "string",required=false,description = "计算的当前时间戳")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function getLastSevenDaysDate()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"getLastSevenDaysDate-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$N = $this->request->request("time/s",0);
|
||
$res = NightSchoolBigData::getLastSevenDaysDate($N);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(得到上个月日期)
|
||
* @ApiSummary(得到上个月日期)
|
||
* @ApiParams(name = "time", type = "string",required=false,description = "计算的当前时间戳")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function getLastMonthDate()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"getLastMonthDate-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$N = $this->request->request("time/s",0);
|
||
$res = NightSchoolBigData::getLastMonthDate($N);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(得到上个天日期)
|
||
* @ApiSummary(得到上个天日期)
|
||
* @ApiParams(name = "time", type = "string",required=false,description = "计算的当前时间戳")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function getLastDaysDate()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"getLastDaysDate-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$N = $this->request->request("time/s",0);
|
||
$res = NightSchoolBigData::getLastDaysDate($N);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(得到上周日期)
|
||
* @ApiSummary(得到上周日期)
|
||
* @ApiParams(name = "time", type = "string",required=false,description = "计算的当前时间戳")
|
||
* @ApiMethod(GET)
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function getLastWeekDate()
|
||
{
|
||
|
||
try{
|
||
$lock = new UrlLock(1,"getLastWeekDate-data-lock-suffix",120,"您的请求过于频繁,请您稍后再试!请求最大锁定间隔5秒/一次!");
|
||
$lock->lock();
|
||
$N = $this->request->request("time/s",0);
|
||
$res = NightSchoolBigData::getLastWeekDate($N);
|
||
|
||
}catch (\Throwable $e){
|
||
$lock->free();
|
||
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
|
||
$this->error($e->getMessage());
|
||
}
|
||
$lock->free();
|
||
|
||
$this->success('返回成功', $res);
|
||
}
|
||
|
||
}
|