You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
6.3 KiB
208 lines
6.3 KiB
<?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 = 7;
|
|
|
|
|
|
$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;
|