renderSuccess(compact('data')); } /** * 借阅,办证 * 分馆年借还,今日借、还,今日办证 * @return array */ public function getLibraryService() { $library = $this->request->param('library') ?: '044007'; $url = $this->url . "/SSBusiness/monitor/getLibraryService?library={$library}"; $result = curlPost($url); $data = json_decode($result,true); return $this->renderSuccess(compact('data')); } /** * 创建数据接口 * @return array */ public function create() { $this->validateToken(); $data_json = $this->request->param('data'); $data = json_decode(html_entity_decode($data_json),true); $dm = new Dm(); foreach ($data as $val) { $val['day30_incount'] = $val['day30_incount'] ?: 0; $val['day30_outcount'] = $val['day30_outcount'] ?: 0; $val['today_incount'] = $val['today_incount'] ?: 0; $val['today_outcount'] = $val['today_outcount'] ?: 0; $val['month_incount'] = $val['month_incount'] ?: 0; $val['month_outcount'] = $val['month_outcount'] ?: 0; $val['year_incount'] = $val['year_incount'] ?: 0; $val['year_outcount'] = $val['year_outcount'] ?: 0; if (date("Y") == '2024') $val['year_incount'] += 400000;// 虚拟数据+40W 的 6分之一 66667 // --------------------- 当天实时数据 --------------------- // $query = $dm->find('bt_library',['group_id' => $val['group_id']]); $opData = [ 'day30_incount' => $val['day30_incount'], 'day30_outcount' => $val['day30_outcount'], 'today_incount' => $val['today_incount'], 'today_outcount' => $val['today_outcount'], 'month_incount' => $val['month_incount'], 'month_outcount' => $val['month_outcount'], 'year_incount' => $val['year_incount'], 'year_outcount' => $val['year_outcount'], ]; if ($query) { $opData['update_time'] = date("Y-m-d H:i:s",time()); $dm->update('bt_library',$opData,['id' => $query['id']]); } else { $opData['group_id'] = $val['group_id']; $opData['group_name'] = base64_decode($val['group_name']); $opData['create_time'] = date("Y-m-d H:i:s",time()); $dm->insert('bt_library',$opData); } // --------------------- END --------------------- // // --------------------- 小时数据 --------------------- // if (isset($val['hour']) && is_array($val['hour'])) { foreach ($val['hour'] as $hour => $hourVal) { $hour = strlen($hour) > 1 ? $hour : '0' . $hour; $hour .= ':00'; # 查看数据是否已经生成 $hoursQueryWhere = ['hour_time' => $hour, 'group_id' => $val['group_id'], 'create_time' => ['>=', date('Y-m-d 00:00:00')]]; $hoursQuery = $dm->find("bt_library_hours", $hoursQueryWhere); if ($hoursQuery) { # 数据发生变化再修改 if ($hourVal['incount'] == $hoursQuery['incount'] && $hourVal['outcount'] == $hoursQuery['outcount']) { continue; } $update = [ 'incount' => $hourVal['incount'], 'outcount' => $hourVal['outcount'], 'update_time' => date("Y-m-d H:i:s", time()) ]; $dm->update('bt_library_hours', $update, ['id' => $hoursQuery['id']]); } else { # 创建数据 $insert = [ 'group_id' => $val['group_id'], 'group_name' => base64_decode($val['group_name']), 'incount' => $hourVal['incount'], 'outcount' => $hourVal['outcount'], 'hour_time' => $hour, 'target_today_incount' => 0, 'target_today_outcount' => 0, 'create_time' => date("Y-m-d H:i:s", time()) ]; $dm->insert("bt_library_hours", $insert); } } } // --------------------- end --------------------- // $this->saveLibraryData($dm,$val); } return $this->renderSuccess(); } /** * 日 月 年数据 收集 * @param $dm * @param $data * @return void */ protected function saveLibraryData($dm,$data) { $arr = [ 'day' => [ 'create_time' => date('Y-m-d 00:00:00'), 'incount' => $data['today_incount'], 'outcount' => $data['today_outcount'] ], 'month' => [ 'create_time' => date('Y-m-01 00:00:00'), 'incount' => $data['month_incount'], 'outcount' => $data['month_outcount'] ], 'year' => [ 'create_time' => date('Y-01-01 00:00:00'), 'incount' => $data['year_incount'], 'outcount' => $data['year_outcount'] ], ]; $group_id = $data['group_id']; $group_name = base64_decode($data['group_name']); foreach ($arr as $date => $value) { $incount = $value['incount']; $outcount = $value['outcount']; $create_time = $value['create_time']; $queryWhere = ['date' => $date, 'group_id' => $group_id, 'create_time' => ['>=',$create_time]]; $query = $dm->find("bt_library_data",$queryWhere); if ($query) { # 存在的数量 + (这次天数数量 - 上次天数数量) = 当前小时数量 $incount = $query['incount'] + ($incount - $query['last_incount']); $outcount = $query['outcount'] + ($outcount - $query['last_outcount']); $update = [ 'incount' => $incount, 'outcount' => $outcount, 'last_incount' => $value['incount'], 'last_outcount' => $value['outcount'], 'update_time' => date("Y-m-d H:i:s",time()) ]; $dm->update('bt_library_data',$update,['id' => $query['id']]); } else { # 创建数据 $insert = [ 'group_id' => $group_id, 'group_name' => $group_name, 'incount' => $incount, 'outcount' => $outcount, 'last_incount' => $incount, 'last_outcount' => $outcount, 'date' => $date, 'create_time' => date("Y-m-d H:i:s",time()) ]; $dm->insert("bt_library_data",$insert); } } } /** * 文化 - 24小时 柱状图 数据 * @return array */ public function getLibraryHours24List() { $data = PassFlow::getLibraryHours24List(); return $this->renderSuccess(compact('data')); } /** * 今日个场馆数据 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getLibraryGroupHoursList() { $data = PassFlow::getLibraryGroupHoursList(); return $this->renderSuccess(compact('data')); } /** * 创建图书馆 借阅 办证数据 * @return array */ public function createLibraryLease() { $this->validateToken(); $data_json = $this->request->param('data'); $data = json_decode(html_entity_decode($data_json),true); $dm = new Dm(); $today_start_time = date("Y-m-d 00:00:00",time()); foreach ($data as $val) { $library = $val['library']; $query = $dm->find("bt_library_lease",['library' => $library,'create_time' => ['>=',$today_start_time]]); $arr = [ 'newreader' => $val['newreader'], 'servcount' => $val['servcount'], 'returncount' => $val['returncount'] ]; if ($query) { $arr['update_time'] = date("Y-m-d H:i:s",time()); $dm->update('bt_library_lease',$arr,['id' => $query['id']]); } else { $arr['library'] = $library; $arr['create_time'] = date("Y-m-d H:i:s",time()); $dm->insert('bt_library_lease',$arr); } } return $this->renderSuccess(); } /** * 获取今日借阅办证数据 * @return array */ public function getLibraryLeaseData() { $data = PassFlow::getLibraryLeaseData(); return $this->renderSuccess(compact('data')); } public function createData() { $params = $this->request->get(); $type = $params['type'] ?? 1; $dm = new Dm(); if ($type == 1) { $query = $dm->select('bt_passenger_monitor_group'); $data = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'", 'id,groupId,groupName,flowInNum,granularity,statTime'); $count = $dm->count('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'"); echo "
";
var_dump($query);
var_dump($data);
var_dump($count);
$data = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'", 'id,groupId,groupName,flowInNum,granularity,statTime');
$count = $dm->count('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
var_dump($data);
var_dump($count);
$data = $dm->select('bt_library_data','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
$count = $dm->count('bt_library_data','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
var_dump($data);
var_dump($count);
$data = $dm->select('bt_library_data','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
$count = $dm->count('bt_library_data','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
var_dump($data);
var_dump($count);
exit;
} else if ($type == 2) {
if (!isset($params['token'])) {
return $this->renderError('请求失败!');
}
if ($params['token'] != '3cdf2dfc441bc35b757988b2c716fbf6') {
return $this->renderError('请求验证失败');
}
$TyYearData = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'yearly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
foreach ($TyYearData as $TyYearValue) {
$update = [
'flowInNum' => $TyYearValue['flowInNum'] + 66666
];
$dm->update('bt_passenger_flow_all',$update,['id' => $TyYearValue['id']]);
}
$TyMonthData = $dm->select('bt_passenger_flow_all','"granularity" =' . " 'monthly'" . ' AND "statTime"' . " >= '2024-01-01T00:00:00.000+08:00'" . ' AND "statTime"' . " <= '2024-08-31T23:59:59.000+08:00'");
foreach ($TyMonthData as $TyMonthValue) {
$update = [
'flowInNum' => $TyMonthValue['flowInNum'] + 8333
];
$dm->update('bt_passenger_flow_all',$update,['id' => $TyMonthValue['id']]);
}
$BaYearData = $dm->select('bt_passenger_flow_all','"date" =' . " 'year'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
foreach ($BaYearData as $BaYearValue) {
$update = [
'incount' => $BaYearValue['incount'] + 66666
];
$dm->update('bt_passenger_flow_all',$update,['id' => $BaYearValue['id']]);
}
$BaMonthData = $dm->select('bt_passenger_flow_all','"date" =' . " 'month'" . ' AND "create_time"' . " >= '2024-01-01 00:00:00'" . ' AND "create_time"' . " <= '2024-08-31 23:59:59'");
foreach ($BaMonthData as $BaMonthValue) {
$update = [
'incount' => $BaMonthValue['incount'] + 8333
];
$dm->update('bt_passenger_flow_all',$update,['id' => $BaMonthValue['id']]);
}
return $this->renderSuccess();
}
return $this->renderError('请求失败');
}
}