model('tasklog'); $time = time(); $log_sdf = array( 'log_title' => $log_title, 'params' => serialize($params), 'log_type' => $log_type, 'crc32_log_type' => sprintf('%u',crc32(md5($log_type))), 'status' => $status ? $status : 'fail',// 默认值:失败 'msg' => $msg, 'node_id' => $node_id, 'createtime' => $time, 'last_modified' => $time, ); if (is_array($addon)){ $log_sdf = array_merge($log_sdf, $addon); } if ($tasklogModel->save($log_sdf)){ return $log_sdf['log_id']; }else{ return NULL; } } /** * 更新任务日志 * @access public * @param String $log_id 日志ID * @param String $msg 任务消息 * @param String $status 任务状态 * @param Array $params 任务参数(覆盖) * @param Array $addon 扩展字段 * @return boolean */ function update_log($log_id,$msg='',$status=NULL,$params=array(),$addon=array()){ if (empty($log_id)) return false; $update_field = array('status','params','msg'); $log_sdf = array(); foreach ($update_field as $fields){ if (!empty(${$fields})){ $log_sdf[$fields] = ${$fields}; } } if(isset($log_sdf['params'])){ $log_sdf['params'] = serialize($params); } if (is_array($addon)){ $log_sdf = array_merge($log_sdf, (array)$addon); } $tasklogModel = &app::get('finance')->model('tasklog'); $filter = array('log_id'=>$log_id); return $tasklogModel->update($log_sdf, $filter); } /** * 获取日志信息 * @access public * @param String $log_id 日志ID * @param String $col 字段信息 * @return bool */ function detail($log_id,$col='*'){ if (empty($log_id)) return true; $tasklogModel = &app::get('finance')->model('tasklog'); $filter = array('log_id'=>$log_id); $detail = $tasklogModel->getList($col,$filter,0,1); if (isset($detail[0]['params']) && $detail[0]['params']){ $detail[0]['params'] = unserialize($detail[0]['params']); } return $detail[0]; } /** * 获取任务日志数据 * @access public * @param Array $filter 过滤条件 * @return Array */ function getList($filter=''){ $tasklogModel = &app::get('finance')->model('tasklog'); $filter = !empty($filter) ? $filter : array(); return $tasklogModel->getList('*',$filter,0,-1); } /** * 删除日志 * @access public * @param String $log_id 日志ID * @return bool */ function delete($log_id){ if (empty($log_id)) return true; $tasklogModel = &app::get('finance')->model('tasklog'); $filter = array('log_id'=>$log_id); return $tasklogModel->delete($filter); } /** * 强制失败 * @access public * @param Array $log_ids 任务日志ID * @return bool */ function abort_fail($log_ids){ $tasklogModel = &app::get('finance')->model('tasklog'); return $tasklogModel->abort_fail($log_ids); } }