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

158 lines
5.1 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']);
$countBaz = '376378';
$countBaf = '28100';
$data = [
'baz001' => [
'name' => '图书馆',
'count' => $countBaz,
'day' => round($countBaz / 30),
'amplitude' => [
'min' => 0 - ($countBaz * 0.03),
'max' => $countBaz * 0.05,
]
],
'BAF055' => [
'name' => '文化馆',
'count' => $countBaf,
'day' => round($countBaf / 30),
'amplitude' => [
'min' => 0 - ($countBaf * 0.03),
'max' => $countBaf * 0.05,
]
],
];
$monthNum = 7;
$countBaz = [
'baz001' => ['incount' => 0, 'outcount' => 0],
'BAF055' => ['incount' => 0, 'outcount' => 0]
];
for ($i = 1; $i <= $monthNum; $i++) {
$str = strlen($i) == 1 ? '0' . $i : $i;
$incount = 0;
$outcount = 0;
foreach ($data as $group_id => $item) {
$name = $item['name'];
$count = $item['count'];
$day = $item['day'];
# 幅度
$temp_count = rand($item['amplitude']['min'],$item['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);
$days = date('t', strtotime(2023 . '-' . $str . '-01'));
$start = date("Y-{$str}-01 ") ."00:00:00";
$end = date("Y-{$str}-{$days} ") ."23:59:59";
$queryWhere = ' "date" = ' . "'month'" . ' and "group_id" = ' . "'{$group_id}'" . ' and "create_time" >= ' . "'{$start}'" . ' and "create_time" <= ' . "'{$end}'" ;
$query = $dm->find('bt_library_data',$queryWhere);
if (!$query) {
$insert_data = [
'group_id' => $group_id,
'group_name' => $name,
'incount' => $flowInNum,
'outcount' => bcadd($flowInNum,rand(0, 10)),
'date' => 'month',
'create_time' => date("Y-{$str}-01 ") . "00:00:00",
'last_incount' => 0,
'last_outcount' => 0,
];
$dm->insert('bt_library_data', $insert_data);
# 当月总数
$incount += $insert_data['incount'];
$outcount += $insert_data['outcount'];
# 总年
$countBaz[$group_id]['incount'] += $insert_data['incount'];
$countBaz[$group_id]['outcount'] += $insert_data['outcount'];
}
}
$queryWhere2 = ' "date" = ' . "'month'" . ' and "group_id" = ' . "'lib001'" . ' and "create_time" >= ' . "'{$start}'" . ' and "create_time" <= ' . "'{$end}'" ;
$query2 = $dm->find('bt_library_data',$queryWhere2);
if (!$query2) {
$lib001 = [
'group_id' => 'lib001',
'group_name' => '文化',
'incount' => $incount,
'outcount' => $outcount,
'date' => 'month',
'create_time' => date("Y-{$str}-01 ") . "00:00:00",
'last_incount' => 0,
'last_outcount' => 0,
];
$dm->insert('bt_library_data', $lib001);
}
}
// --------------- baz001 --------------- //
$queryWhereBaz = ['date' => 'year', 'group_id' => 'baz001', 'create_time' => ['>=',date("Y-01-01 ") ."00:00:00"]];
$queryBaz = $dm->find("bt_library_data",$queryWhereBaz);
if ($queryBaz) {
$baz001 = [
'incount' => bcadd($queryBaz['incount'],$countBaz['baz001']['incount']),
'outcount' => bcadd($queryBaz['outcount'],$countBaz['baz001']['outcount'])
];
$dm->update('bt_library_data',$baz001,'"id" = ' . "'{$queryBaz['id']}'");
}
// --------------- BAF055 --------------- //
$queryWhereBaf = ['date' => 'year', 'group_id' => 'BAF055', 'create_time' => ['>=',date("Y-01-01 ") ."00:00:00"]];
$queryBaf = $dm->find("bt_library_data",$queryWhereBaf);
if ($queryBaf) {
$BAF055 = [
'incount' => bcadd($queryBaf['incount'],$countBaz['BAF055']['incount']),
'outcount' => bcadd($queryBaf['outcount'],$countBaz['BAF055']['outcount'])
];
$dm->update('bt_library_data',$BAF055,'"id" = ' . "'{$queryBaf['id']}'");
}
// --------------- lib001 --------------- //
$queryWhereLib = ['date' => 'year', 'group_id' => 'lib001', 'create_time' => ['>=',date("Y-01-01 ") ."00:00:00"]];
$queryLib = $dm->find("bt_library_data",$queryWhereLib);
if ($queryLib) {
$lib001 = [
'incount' => $baz001['incount'] + $BAF055['incount'],
'outcount' => $baz001['outcount'] + $BAF055['outcount']
];
$dm->update('bt_library_data',$lib001,'"id" = ' . "'{$queryLib['id']}'");
}
echo true;