宝体数据调用接口
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.
 
 
 
 
 
 

212 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 = round($temp_count-$temp_day);
}
if ($i == 2) {
# 减去未满30
$temp_day = $day * 2;
$temp_count = round($temp_count-$temp_day);
}
# 每月数量
$flowInNum = round($count+$temp_count);
$sumFlowInNum = round($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' => round($querySumAll['flowInNum']+$sumFlowInNum),
'noRepeatInNum' => round($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' => round($querySum['flowInNum']+$sumFlowInNum),
'noRepeatInNum' => round($querySum['noRepeatInNum']+$sumFlowInNum),
];
$dm->update('bt_passenger_flow',$update,'"id" = ' . "'{$querySum['id']}'");
}
echo "<pre>";
var_dump($groupId);
var_dump($sumFlowInNum);
}
//var_dump($returnData);
//var_dump($returnDataAll);
echo true;