|
|
@ -51,31 +51,30 @@ class Pass extends Controller |
|
|
$data_json = $this->request->param('data'); |
|
|
$data_json = $this->request->param('data'); |
|
|
$data = json_decode(html_entity_decode($data_json),true); |
|
|
$data = json_decode(html_entity_decode($data_json),true); |
|
|
|
|
|
|
|
|
$hour = date("H:00"); |
|
|
|
|
|
$last_hour = date("H:00",strtotime('-1 hour')); |
|
|
|
|
|
$dm = new Dm(); |
|
|
$dm = new Dm(); |
|
|
foreach ($data as $val) { |
|
|
foreach ($data as $val) { |
|
|
$val['day30_incount'] = $val['day30_incount'] ?: 0; |
|
|
|
|
|
$val['day30_outcount'] = $val['day30_outcount'] ?: 0; |
|
|
$val['day30_incount'] = $val['day30_incount'] ?: 0; |
|
|
$val['today_incount'] = $val['today_incount'] ?: 0; |
|
|
$val['day30_outcount'] = $val['day30_outcount'] ?: 0; |
|
|
$val['today_outcount'] = $val['today_outcount'] ?: 0; |
|
|
$val['today_incount'] = $val['today_incount'] ?: 0; |
|
|
$val['month_incount'] = $val['month_incount'] ?: 0; |
|
|
$val['today_outcount'] = $val['today_outcount'] ?: 0; |
|
|
$val['month_outcount'] = $val['month_outcount'] ?: 0; |
|
|
$val['month_incount'] = $val['month_incount'] ?: 0; |
|
|
$val['year_incount'] = $val['year_incount'] ?: 0; |
|
|
$val['month_outcount'] = $val['month_outcount'] ?: 0; |
|
|
$val['year_outcount'] = $val['year_outcount'] ?: 0; |
|
|
$val['year_incount'] = $val['year_incount'] ?: 0; |
|
|
|
|
|
$val['year_outcount'] = $val['year_outcount'] ?: 0; |
|
|
|
|
|
|
|
|
// --------------------- 当天实时数据 --------------------- // |
|
|
// --------------------- 当天实时数据 --------------------- // |
|
|
$query = $dm->find('bt_library',['group_id' => $val['group_id']]); |
|
|
$query = $dm->find('bt_library',['group_id' => $val['group_id']]); |
|
|
|
|
|
|
|
|
$opData = [ |
|
|
$opData = [ |
|
|
'day30_incount' => $val['day30_incount'], |
|
|
'day30_incount' => $val['day30_incount'], |
|
|
'day30_outcount' => $val['day30_outcount'], |
|
|
'day30_outcount' => $val['day30_outcount'], |
|
|
'today_incount' => $val['today_incount'], |
|
|
'today_incount' => $val['today_incount'], |
|
|
'today_outcount' => $val['today_outcount'], |
|
|
'today_outcount' => $val['today_outcount'], |
|
|
'month_incount' => $val['month_incount'], |
|
|
'month_incount' => $val['month_incount'], |
|
|
'month_outcount' => $val['month_outcount'], |
|
|
'month_outcount' => $val['month_outcount'], |
|
|
'year_incount' => $val['year_incount'], |
|
|
'year_incount' => $val['year_incount'], |
|
|
'year_outcount' => $val['year_outcount'], |
|
|
'year_outcount' => $val['year_outcount'], |
|
|
]; |
|
|
]; |
|
|
if ($query) { |
|
|
if ($query) { |
|
|
$opData['update_time'] = date("Y-m-d H:i:s",time()); |
|
|
$opData['update_time'] = date("Y-m-d H:i:s",time()); |
|
|
@ -88,53 +87,41 @@ class Pass extends Controller |
|
|
} |
|
|
} |
|
|
// --------------------- END --------------------- // |
|
|
// --------------------- END --------------------- // |
|
|
// --------------------- 小时数据 --------------------- // |
|
|
// --------------------- 小时数据 --------------------- // |
|
|
$hoursQueryWhere = ['hour_time' => $hour, 'group_id' => $val['group_id'], 'create_time' => ['>=',date('Y-m-d 00:00:00')]]; |
|
|
if (isset($val['hour']) && is_array($val['hour'])) { |
|
|
$hoursQuery = $dm->find("bt_library_hours",$hoursQueryWhere); |
|
|
|
|
|
|
|
|
foreach ($val['hour'] as $hour => $hourVal) { |
|
|
# 默认单天数据 |
|
|
|
|
|
$incount = 0; |
|
|
$hour = strlen($hour) > 1 ? $hour : '0' . $hour; |
|
|
$outcount = 0; |
|
|
$hour .= ':00'; |
|
|
if ($hoursQuery) { |
|
|
# 查看数据是否已经生成 |
|
|
|
|
|
$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); |
|
|
$incount = $hoursQuery['incount'] + ($val['today_incount'] - $hoursQuery['target_today_incount']); |
|
|
|
|
|
$outcount = $hoursQuery['outcount'] + ($val['today_outcount'] - $hoursQuery['target_today_outcount']); |
|
|
if ($hoursQuery) { |
|
|
|
|
|
# 数据发生变化再修改 |
|
|
$update = [ |
|
|
if ($hourVal['incount'] == $hoursQuery['incount'] && $hourVal['outcount'] == $hoursQuery['outcount']) { |
|
|
'incount' => $incount, |
|
|
continue; |
|
|
'outcount' => $outcount, |
|
|
} |
|
|
'target_today_incount' => $val['today_incount'], |
|
|
$update = [ |
|
|
'target_today_outcount' => $val['today_outcount'], |
|
|
'incount' => $hourVal['incount'], |
|
|
'update_time' => date("Y-m-d H:i:s",time()) |
|
|
'outcount' => $hourVal['outcount'], |
|
|
]; |
|
|
'update_time' => date("Y-m-d H:i:s", time()) |
|
|
|
|
|
]; |
|
|
$dm->update('bt_library_hours',$update,['id' => $hoursQuery['id']]); |
|
|
$dm->update('bt_library_hours', $update, ['id' => $hoursQuery['id']]); |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
# 创建数据 |
|
|
# 查看该组是否存在上一条数据 |
|
|
$insert = [ |
|
|
$lastHoursWhere = ['hour_time' => $last_hour, 'group_id' => $val['group_id']]; |
|
|
'group_id' => $val['group_id'], |
|
|
$lastHours = $dm->find('bt_library_hours',$lastHoursWhere,'*','id DESC'); |
|
|
'group_name' => base64_decode($val['group_name']), |
|
|
if ($lastHours && $hour != '00:00') { |
|
|
'incount' => $hourVal['incount'], |
|
|
$incount = (int)($val['today_incount'] - $lastHours['target_today_incount']); |
|
|
'outcount' => $hourVal['outcount'], |
|
|
$outcount = (int)($val['today_outcount'] - $lastHours['target_today_outcount']); |
|
|
'hour_time' => $hour, |
|
|
$incount = $incount > 0 ? $incount : 0; |
|
|
'create_time' => date("Y-m-d H:i:s", time()) |
|
|
$outcount = $outcount > 0 ? $outcount : 0; |
|
|
]; |
|
|
|
|
|
$dm->insert("bt_library_hours", $insert); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
# 创建数据 |
|
|
|
|
|
$insert = [ |
|
|
|
|
|
'group_id' => $val['group_id'], |
|
|
|
|
|
'group_name' => base64_decode($val['group_name']), |
|
|
|
|
|
'incount' => $incount, |
|
|
|
|
|
'outcount' => $outcount, |
|
|
|
|
|
'target_today_incount' => $val['today_incount'], |
|
|
|
|
|
'target_today_outcount' => $val['today_outcount'], |
|
|
|
|
|
'hour_time' => $hour, |
|
|
|
|
|
'create_time' => date("Y-m-d H:i:s",time()) |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
$dm->insert("bt_library_hours",$insert); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// --------------------- end --------------------- // |
|
|
// --------------------- end --------------------- // |
|
|
$this->saveLibraryData($dm,$val); |
|
|
$this->saveLibraryData($dm,$val); |
|
|
} |
|
|
} |
|
|
|