1 changed files with 208 additions and 0 deletions
@ -0,0 +1,208 @@ |
|||||
|
<?php |
||||
|
|
||||
|
use app\common\dm\Dm; |
||||
|
require_once __DIR__ . '../../source/application/common/dm/Dm.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/helper.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/library/think/Config.php'; |
||||
|
require_once __DIR__ . '../../source/application/common.php'; |
||||
|
$config = require_once __DIR__ . '../../source/application/database.php'; |
||||
|
|
||||
|
$dm = new Dm($config['connections']['dm']); |
||||
|
|
||||
|
$y = 2023; |
||||
|
|
||||
|
$groupArr = [ |
||||
|
'110' => [ |
||||
|
'name' => '体育场', |
||||
|
'count' => '354670', |
||||
|
'day' => '11822', |
||||
|
'amplitude' => [ |
||||
|
'min' => '-10640', |
||||
|
'max' => '17733', |
||||
|
] |
||||
|
], |
||||
|
'210' => [ |
||||
|
'name' => '体育馆', |
||||
|
'count' => '380343', |
||||
|
'day' => '12678', |
||||
|
'amplitude' => [ |
||||
|
'min' => '-11410', |
||||
|
'max' => '19017', |
||||
|
] |
||||
|
], |
||||
|
'310' => [ |
||||
|
'name' => '游泳馆', |
||||
|
'count' => '114346', |
||||
|
'day' => '3811', |
||||
|
'amplitude' => [ |
||||
|
'min' => '-3430', |
||||
|
'max' => '5717', |
||||
|
] |
||||
|
], |
||||
|
'510' => [ |
||||
|
'name' => '博物馆', |
||||
|
'count' => '4018', |
||||
|
'day' => '133', |
||||
|
'amplitude' => [ |
||||
|
'min' => '-120', |
||||
|
'max' => '200', |
||||
|
] |
||||
|
] |
||||
|
]; |
||||
|
$monthNum = 6; |
||||
|
|
||||
|
|
||||
|
$returnData = []; |
||||
|
$returnDataAll = []; |
||||
|
foreach ($groupArr as $groupId => $val) { |
||||
|
|
||||
|
$groupName = $val['name']; |
||||
|
$count = $val['count']; |
||||
|
$day = $val['day']; |
||||
|
|
||||
|
# 月总数 |
||||
|
$sumFlowInNum = 0; |
||||
|
|
||||
|
for ($i = 1; $i <= $monthNum; $i++) { |
||||
|
|
||||
|
# 幅度 |
||||
|
$temp_count = rand($val['amplitude']['min'],$val['amplitude']['max']); |
||||
|
|
||||
|
if ($i == 1) { |
||||
|
# 减去假期 |
||||
|
$temp_day = $day * 7; |
||||
|
$temp_count = bcsub($temp_count,$temp_day); |
||||
|
} |
||||
|
|
||||
|
if ($i == 2) { |
||||
|
# 减去未满30 |
||||
|
$temp_day = $day * 2; |
||||
|
$temp_count = bcsub($temp_count,$temp_day); |
||||
|
} |
||||
|
|
||||
|
# 每月数量 |
||||
|
$flowInNum = bcadd($count,$temp_count); |
||||
|
|
||||
|
$sumFlowInNum = bcadd($sumFlowInNum,$flowInNum); |
||||
|
|
||||
|
$iStr = strlen($i) == 1 ? '0'.$i : $i; |
||||
|
|
||||
|
$statTime = "{$y}-{$iStr}-01T00:00:00.000+08:00"; |
||||
|
|
||||
|
$queryWhereAll = ['groupId' => $groupId,'granularity' => 'monthly','statTime' => $statTime,'date'=>'month']; |
||||
|
$queryAll = $dm->find('bt_passenger_flow_all',$queryWhereAll); |
||||
|
|
||||
|
if (!$queryAll) { |
||||
|
|
||||
|
$iArrAll = [ |
||||
|
'groupId' => $groupId, |
||||
|
'groupName' => $groupName, |
||||
|
'flowInNum' => $flowInNum, |
||||
|
'flowOutNum' => 0, |
||||
|
'noRepeatInNum' => $flowInNum, |
||||
|
'noRepeatOutNum' => 0, |
||||
|
'holdValue' => 0, |
||||
|
'netValue' => 0, |
||||
|
'createTime' => strtotime("{$y}-{$iStr}-01 00:00:00") . "000", |
||||
|
'updateTime' => strtotime("{$y}-{$iStr}-01 00:00:00") . "000", |
||||
|
'statTime' => $statTime, |
||||
|
'granularity' => 'monthly', |
||||
|
'date' => 'month' |
||||
|
]; |
||||
|
$dm->insert('bt_passenger_flow_all',$iArrAll); |
||||
|
$returnDataAll[] = $iArrAll; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
$queryWhere = ['groupId' => $groupId,'granularity' => 'monthly','statTime' => $statTime]; |
||||
|
$query = $dm->find('bt_passenger_flow',$queryWhere); |
||||
|
if (!$query) { |
||||
|
|
||||
|
$iArr = [ |
||||
|
'groupId' => $groupId, |
||||
|
'groupName' => $groupName, |
||||
|
'flowInNum' => $flowInNum, |
||||
|
'flowOutNum' => 0, |
||||
|
'noRepeatInNum' => $flowInNum, |
||||
|
'noRepeatOutNum' => 0, |
||||
|
'holdValue' => 0, |
||||
|
'netValue' => 0, |
||||
|
'createTime' => strtotime("{$y}-{$iStr}-01 00:00:00") . "000", |
||||
|
'updateTime' => strtotime("{$y}-{$iStr}-01 00:00:00") . "000", |
||||
|
'statTime' => $statTime, |
||||
|
'granularity' => 'monthly' |
||||
|
]; |
||||
|
|
||||
|
$dm->insert('bt_passenger_flow',$iArr); |
||||
|
$returnData[] = $iArr; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
# 总的 |
||||
|
|
||||
|
$queryWhereSumAll = ['groupId' => $groupId,'granularity' => 'yearly','statTime' => ['>=',"{$y}-01-01T00:00:00.000+08:00"],'date' => 'year']; |
||||
|
$querySumAll = $dm->find('bt_passenger_flow_all',$queryWhereSumAll); |
||||
|
|
||||
|
if ($querySumAll) { |
||||
|
|
||||
|
// $iArrSumAll = [ |
||||
|
// 'groupId' => $groupId, |
||||
|
// 'groupName' => $groupName, |
||||
|
// 'flowOutNum' => 0, |
||||
|
// 'noRepeatOutNum' => 0, |
||||
|
// 'holdValue' => 0, |
||||
|
// 'netValue' => 0, |
||||
|
// 'flowInNum' => bcadd(0,$sumFlowInNum), |
||||
|
// 'noRepeatInNum' => bcadd(0,$sumFlowInNum), |
||||
|
// 'createTime' => strtotime("{$y}--01-01 00:00:00") . "000", |
||||
|
// 'updateTime' => strtotime("{$y}--01-01 00:00:00") . "000", |
||||
|
// 'statTime' => "{$y}-01-01T00:00:00.000+08:00", |
||||
|
// 'granularity' => 'yearly', |
||||
|
// 'date' => 'year' |
||||
|
// ]; |
||||
|
// $returnDataAll[] = $iArrSumAll; |
||||
|
|
||||
|
$updateAll = [ |
||||
|
'flowInNum' => bcadd($querySumAll['flowInNum'],$sumFlowInNum), |
||||
|
'noRepeatInNum' => bcadd($querySumAll['noRepeatInNum'],$sumFlowInNum), |
||||
|
]; |
||||
|
|
||||
|
$dm->update('bt_passenger_flow_all',$updateAll,'"id" = ' . "'{$querySumAll['id']}'"); |
||||
|
} |
||||
|
|
||||
|
$queryWhereSum = ['groupId' => $groupId,'granularity' => 'yearly','statTime' => ['>=',"{$y}-01-01T00:00:00.000+08:00"]]; |
||||
|
$querySum = $dm->find('bt_passenger_flow',$queryWhereSum); |
||||
|
|
||||
|
if ($querySum) { |
||||
|
|
||||
|
// $iArrSum = [ |
||||
|
// 'groupId' => $groupId, |
||||
|
// 'groupName' => $groupName, |
||||
|
// 'flowOutNum' => 0, |
||||
|
// 'noRepeatOutNum' => 0, |
||||
|
// 'holdValue' => 0, |
||||
|
// 'netValue' => 0, |
||||
|
// 'flowInNum' => bcadd(0,$sumFlowInNum), |
||||
|
// 'noRepeatInNum' => bcadd(0,$sumFlowInNum), |
||||
|
// 'createTime' => strtotime("{$y}--01-01 00:00:00") . "000", |
||||
|
// 'updateTime' => strtotime("{$y}--01-01 00:00:00") . "000", |
||||
|
// 'statTime' => "{$y}-01-01T00:00:00.000+08:00", |
||||
|
// 'granularity' => 'yearly' |
||||
|
// ]; |
||||
|
// |
||||
|
// $returnData[] = $iArrSum; |
||||
|
$update = [ |
||||
|
'flowInNum' => bcadd($querySum['flowInNum'],$sumFlowInNum), |
||||
|
'noRepeatInNum' => bcadd($querySum['noRepeatInNum'],$sumFlowInNum), |
||||
|
]; |
||||
|
|
||||
|
$dm->update('bt_passenger_flow',$update,'"id" = ' . "'{$querySum['id']}'"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//var_dump($returnData); |
||||
|
//var_dump($returnDataAll); |
||||
|
echo true; |
||||
Loading…
Reference in new issue