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