增加系统业务配置操作日志功能,与系统日志菜单分离,增加相关国际化字典,并更新国际化部分翻译
This commit is contained in:
@@ -35,6 +35,17 @@ public class SysLog extends BaseEntity<SysLog>{
|
|||||||
private Long consumerTime;//消费时间
|
private Long consumerTime;//消费时间
|
||||||
|
|
||||||
private Integer functionId;//功能菜单id
|
private Integer functionId;//功能菜单id
|
||||||
|
private String compileIds;//配置编译id
|
||||||
|
private String cfgIds;//界面配置id
|
||||||
|
private Integer compileId;//配置编译id
|
||||||
|
private Integer cfgId;//界面配置id
|
||||||
|
private String methodName;//功能方法名称
|
||||||
|
private Integer auditState;//审核状态
|
||||||
|
private Integer action;//GK动作
|
||||||
|
private String operation;//操作说明
|
||||||
|
private String functionName;//功能名称
|
||||||
|
private Integer isValid;//配置有效状态
|
||||||
|
|
||||||
|
|
||||||
public Long getConsumerTime() {
|
public Long getConsumerTime() {
|
||||||
return consumerTime;
|
return consumerTime;
|
||||||
@@ -165,6 +176,86 @@ public class SysLog extends BaseEntity<SysLog>{
|
|||||||
this.functionId = functionId;
|
this.functionId = functionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getCompileId() {
|
||||||
|
return compileId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompileId(Integer compileId) {
|
||||||
|
this.compileId = compileId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMethodName() {
|
||||||
|
return methodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMethodName(String methodName) {
|
||||||
|
this.methodName = methodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getAuditState() {
|
||||||
|
return auditState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuditState(Integer auditState) {
|
||||||
|
this.auditState = auditState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getAction() {
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAction(Integer action) {
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCompileIds() {
|
||||||
|
return compileIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompileIds(String compileIds) {
|
||||||
|
this.compileIds = compileIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCfgIds() {
|
||||||
|
return cfgIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCfgIds(String cfgIds) {
|
||||||
|
this.cfgIds = cfgIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCfgId() {
|
||||||
|
return cfgId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCfgId(Integer cfgId) {
|
||||||
|
this.cfgId = cfgId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOperation() {
|
||||||
|
return operation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperation(String operation) {
|
||||||
|
this.operation = operation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFunctionName() {
|
||||||
|
return functionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFunctionName(String functionName) {
|
||||||
|
this.functionName = functionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getIsValid() {
|
||||||
|
return isValid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsValid(Integer isValid) {
|
||||||
|
this.isValid = isValid;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置请求参数
|
* 设置请求参数
|
||||||
* @param paramMap
|
* @param paramMap
|
||||||
|
|||||||
@@ -67,7 +67,26 @@ public class LogUtils {
|
|||||||
}else{
|
}else{
|
||||||
log.setFunctionId(Integer.parseInt(request.getParameter("functionId")));
|
log.setFunctionId(Integer.parseInt(request.getParameter("functionId")));
|
||||||
}
|
}
|
||||||
|
if(!StringUtil.isEmpty(request.getParameter("compileId"))){
|
||||||
|
log.setCompileIds(request.getParameter("compileId"));
|
||||||
|
}else{
|
||||||
|
log.setCompileIds(request.getParameter("compileIds"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!StringUtil.isEmpty(request.getParameter("cfgId"))){
|
||||||
|
log.setCfgIds(request.getParameter("cfgId"));
|
||||||
|
}else{
|
||||||
|
log.setCfgIds(request.getParameter("ids"));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmpty(request.getParameter("isAudit"))){
|
||||||
|
log.setAuditState(Integer.parseInt(request.getParameter("isAudit")));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmpty(request.getParameter("action"))){
|
||||||
|
log.setAction(Integer.parseInt(request.getParameter("action")));
|
||||||
|
}
|
||||||
|
if(!(StringUtil.isEmpty(request.getParameter("isValid")))){
|
||||||
|
log.setIsValid(Integer.parseInt(request.getParameter("isValid")));
|
||||||
|
}
|
||||||
// 异步保存日志
|
// 异步保存日志
|
||||||
new SaveLogThread(log, handler, ex).start();
|
new SaveLogThread(log, handler, ex).start();
|
||||||
}
|
}
|
||||||
@@ -96,6 +115,7 @@ public class LogUtils {
|
|||||||
String permission = "";
|
String permission = "";
|
||||||
if (handler instanceof HandlerMethod){
|
if (handler instanceof HandlerMethod){
|
||||||
Method m = ((HandlerMethod)handler).getMethod();
|
Method m = ((HandlerMethod)handler).getMethod();
|
||||||
|
log.setMethodName(m.getName());
|
||||||
RequiresPermissions rp = m.getAnnotation(RequiresPermissions.class);
|
RequiresPermissions rp = m.getAnnotation(RequiresPermissions.class);
|
||||||
permission = (rp != null ? StringUtils.join(rp.value(), ",") : "");
|
permission = (rp != null ? StringUtils.join(rp.value(), ",") : "");
|
||||||
}
|
}
|
||||||
@@ -104,11 +124,44 @@ public class LogUtils {
|
|||||||
}
|
}
|
||||||
// 如果有异常,设置异常信息
|
// 如果有异常,设置异常信息
|
||||||
log.setException(Exceptions.getStackTraceAsString(ex));
|
log.setException(Exceptions.getStackTraceAsString(ex));
|
||||||
// 如果无标题并无异常日志,则不保存信息
|
// 如果无标题并无异常日志并且无具体的功能id(非业务配置的操作),则不保存信息
|
||||||
if (StringUtils.isBlank(log.getTitle()) && StringUtils.isBlank(log.getException())){
|
if ((StringUtils.isBlank(log.getTitle()) && StringUtils.isBlank(log.getException()) && (log.getFunctionId()==null || log.getFunctionId()==0))){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 保存日志信息
|
// 保存日志信息
|
||||||
|
if(log.getFunctionId()!=null
|
||||||
|
&& log.getFunctionId()!=0 ){
|
||||||
|
String functionName = DictUtils.getDictLabel("SYS_SERVICE_FUNCTION", log.getFunctionId().toString());
|
||||||
|
if(!StringUtil.isEmpty(log.getMethodName())){
|
||||||
|
String operation = DictUtils.getDictLabel("SYS_SERVICE_OPERATION", log.getMethodName());
|
||||||
|
if("saveOrUpdate".equals(operation)){
|
||||||
|
if (log.getCfgId()!=null || log.getCfgIds()!=null || log.getCompileId()!=null || log.getCompileIds()!=null){
|
||||||
|
log.setOperation("edit");
|
||||||
|
}else{
|
||||||
|
log.setOperation("add");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.setOperation(operation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(log.getOperation()!=null && !"默认".equals(log.getOperation()) && !"默认".equals(functionName)){
|
||||||
|
log.setFunctionName(functionName);
|
||||||
|
if(!StringUtil.isEmpty(log.getCompileIds())){
|
||||||
|
for(String compileId:StringUtils.split(log.getCompileIds(),",")){
|
||||||
|
log.setCompileId(Integer.parseInt(compileId));
|
||||||
|
logDao.insertCfgOperationLog(log);
|
||||||
|
}
|
||||||
|
}else if(!StringUtil.isEmpty(log.getCfgIds())){
|
||||||
|
for(String cfgId:StringUtils.split(log.getCfgIds(),",")){
|
||||||
|
log.setCfgId(Integer.parseInt(cfgId));
|
||||||
|
logDao.insertCfgOperationLog(log);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
logDao.insertCfgOperationLog(log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
logDao.insert(log);
|
logDao.insert(log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,7 +255,6 @@ public class LogUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CacheUtils.put(CACHE_MENU_NAME_PATH_MAP, menuMap);
|
CacheUtils.put(CACHE_MENU_NAME_PATH_MAP, menuMap);
|
||||||
CacheUtils.put(CACHE_MENU_NAME_PATH_MAP2, menuMap2);
|
CacheUtils.put(CACHE_MENU_NAME_PATH_MAP2, menuMap2);
|
||||||
}
|
}
|
||||||
@@ -240,7 +292,6 @@ public class LogUtils {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println(menuNamePath);
|
|
||||||
return menuNamePath;
|
return menuNamePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,4 +24,11 @@ public class SysLogController extends BaseController {
|
|||||||
return "/sys/logList";
|
return "/sys/logList";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresPermissions("sys:cfgOperationLog:view")
|
||||||
|
@RequestMapping(value = {"cfgOperationLogList"})
|
||||||
|
public String cfgOperationLogList(SysLog sysLog, HttpServletRequest request, HttpServletResponse response, Model model) {
|
||||||
|
Page<SysLog> page = logService.findCfgOperationLogPage(new Page<SysLog>(request, response), sysLog);
|
||||||
|
model.addAttribute("page", page);
|
||||||
|
return "/sys/cfgOperationLogList";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.nis.web.dao;
|
package com.nis.web.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.nis.domain.SysLog;
|
import com.nis.domain.SysLog;
|
||||||
@MyBatisDao
|
@MyBatisDao
|
||||||
public interface SysLogDao extends CrudDao<SysLog>{
|
public interface SysLogDao extends CrudDao<SysLog>{
|
||||||
|
public void insertCfgOperationLog(SysLog log);
|
||||||
|
public List<SysLog> findCfgOperationLogList(SysLog log);
|
||||||
}
|
}
|
||||||
@@ -28,6 +28,26 @@
|
|||||||
ORDER BY a.create_date DESC
|
ORDER BY a.create_date DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="findCfgOperationLogList" resultType="sysLog">
|
||||||
|
SELECT
|
||||||
|
a.*
|
||||||
|
FROM sys_cfg_operation_log a
|
||||||
|
WHERE a.create_date BETWEEN #{beginDate} AND #{endDate}
|
||||||
|
<if test="functionName != null and functionName != ''">
|
||||||
|
AND a.function_name=#{functionName}
|
||||||
|
</if>
|
||||||
|
<if test="createBy != null and createBy != ''">
|
||||||
|
AND a.create_by = #{createBy}
|
||||||
|
</if>
|
||||||
|
<if test="operation != null and operation != ''">
|
||||||
|
AND a.operation=#{operation}
|
||||||
|
</if>
|
||||||
|
<if test="exception != null and exception != ''">
|
||||||
|
AND a.state = 0
|
||||||
|
</if>
|
||||||
|
ORDER BY a.create_date DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<insert id="insert" parameterType="sysLog" useGeneratedKeys="true" keyProperty="id" >
|
<insert id="insert" parameterType="sysLog" useGeneratedKeys="true" keyProperty="id" >
|
||||||
INSERT INTO sys_log(
|
INSERT INTO sys_log(
|
||||||
@@ -59,4 +79,49 @@
|
|||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="insertCfgOperationLog" parameterType="sysLog" useGeneratedKeys="true" keyProperty="id" >
|
||||||
|
INSERT INTO sys_cfg_operation_log(
|
||||||
|
type,
|
||||||
|
title,
|
||||||
|
create_by,
|
||||||
|
create_date,
|
||||||
|
remote_addr,
|
||||||
|
user_agent,
|
||||||
|
request_uri,
|
||||||
|
method,
|
||||||
|
state,
|
||||||
|
consumer_time,
|
||||||
|
params,
|
||||||
|
exception,
|
||||||
|
compile_id,
|
||||||
|
cfg_id,
|
||||||
|
function_id,
|
||||||
|
method_name,
|
||||||
|
audit_state,
|
||||||
|
action,
|
||||||
|
operation,
|
||||||
|
function_name
|
||||||
|
) VALUES (
|
||||||
|
#{type},
|
||||||
|
#{title},
|
||||||
|
#{createBy},
|
||||||
|
#{createDate},
|
||||||
|
#{remoteAddr},
|
||||||
|
#{userAgent},
|
||||||
|
#{requestUri},
|
||||||
|
#{method},
|
||||||
|
#{state},
|
||||||
|
#{consumerTime},
|
||||||
|
#{params},
|
||||||
|
#{exception},
|
||||||
|
#{compileId},
|
||||||
|
#{cfgId},
|
||||||
|
#{functionId},
|
||||||
|
#{methodName},
|
||||||
|
#{auditState},
|
||||||
|
#{action},
|
||||||
|
#{operation},
|
||||||
|
#{functionName}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
package com.nis.web.service;
|
package com.nis.web.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
@@ -9,7 +12,8 @@ import com.nis.web.dao.SysLogDao;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class LogService extends CrudService<SysLogDao, SysLog> {
|
public class LogService extends CrudService<SysLogDao, SysLog> {
|
||||||
|
@Autowired
|
||||||
|
protected SysLogDao sysLogDao;
|
||||||
public Page<SysLog> findPage(Page<SysLog> page, SysLog sysLog) {
|
public Page<SysLog> findPage(Page<SysLog> page, SysLog sysLog) {
|
||||||
|
|
||||||
// 设置默认时间范围,默认当前月
|
// 设置默认时间范围,默认当前月
|
||||||
@@ -24,4 +28,17 @@ public Page<SysLog> findPage(Page<SysLog> page, SysLog sysLog) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Page<SysLog> findCfgOperationLogPage(Page<SysLog> page, SysLog sysLog) {
|
||||||
|
|
||||||
|
// 设置默认时间范围,默认当前月
|
||||||
|
if (sysLog.getBeginDate() == null){
|
||||||
|
sysLog.setBeginDate(DateUtils.setDays(DateUtils.parseDate(DateUtils.getDate()), 1));
|
||||||
|
}
|
||||||
|
if (sysLog.getEndDate() == null){
|
||||||
|
sysLog.setEndDate(DateUtils.addMonths(sysLog.getBeginDate(), 1));
|
||||||
|
}
|
||||||
|
sysLog.setPage(page);
|
||||||
|
List<SysLog> list = sysLogDao.findCfgOperationLogList(sysLog);
|
||||||
|
return page.setList(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ isp_manage=ISP
|
|||||||
ip_multiple_control=IP Multiple Control
|
ip_multiple_control=IP Multiple Control
|
||||||
ip_port_control=IP+PORT Control
|
ip_port_control=IP+PORT Control
|
||||||
website_multiple_control=Website Multiple Control
|
website_multiple_control=Website Multiple Control
|
||||||
mail_multiple_control=Mail Multiple Control
|
mail_multiple_control=Mail Advanced
|
||||||
request_header_control=Http Request Header Control
|
request_header_control=Http Request Header Control
|
||||||
plaintext_monitor=Plaintext Monitor
|
plaintext_monitor=Plaintext Monitor
|
||||||
ip_address_monitor=IP Monitor
|
ip_address_monitor=IP Monitor
|
||||||
@@ -562,7 +562,7 @@ ssl_ip=SSL IP Configuration
|
|||||||
ssl_sni=SSL SNI Keyword Configuration
|
ssl_sni=SSL SNI Keyword Configuration
|
||||||
ssl_san=SSL SAN Keyword Configuration
|
ssl_san=SSL SAN Keyword Configuration
|
||||||
ssl_ca=SSL CN Keyword Configuration
|
ssl_ca=SSL CN Keyword Configuration
|
||||||
http_control=HTTP Configuration
|
http_control=HTTP Advanced
|
||||||
ingress=Ingress
|
ingress=Ingress
|
||||||
egress=Egress
|
egress=Egress
|
||||||
fileTransfer_control=File Transfer Configuration
|
fileTransfer_control=File Transfer Configuration
|
||||||
@@ -1234,7 +1234,7 @@ log_management=Log Management
|
|||||||
log_date=Date Range
|
log_date=Date Range
|
||||||
log_exception=Query Exception
|
log_exception=Query Exception
|
||||||
log_user=Operating User
|
log_user=Operating User
|
||||||
log_submission=Submission
|
log_submission=Request Method
|
||||||
log_ip=Operator IP
|
log_ip=Operator IP
|
||||||
log_exception_info=Exception Information
|
log_exception_info=Exception Information
|
||||||
system_log=Log Management
|
system_log=Log Management
|
||||||
@@ -1290,3 +1290,6 @@ has_invisible_char=%s has invisible characters
|
|||||||
not_multiple=%s do not support multiple keywords
|
not_multiple=%s do not support multiple keywords
|
||||||
template_error=The import template is incorrect. Pleace choose a proper template which has the same language with the system and the same configure type.
|
template_error=The import template is incorrect. Pleace choose a proper template which has the same language with the system and the same configure type.
|
||||||
asn_no=ASN
|
asn_no=ASN
|
||||||
|
query=Query
|
||||||
|
cfg_operation_log=Configuration Operation Log
|
||||||
|
function_name=Operation Module
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -103,7 +103,7 @@ isp_manage=\u8FD0\u8425\u5546\u7BA1\u7406
|
|||||||
ip_multiple_control=IP\u591A\u57DF\u7BA1\u63A7
|
ip_multiple_control=IP\u591A\u57DF\u7BA1\u63A7
|
||||||
ip_port_control=IP+\u7AEF\u53E3\u7BA1\u63A7
|
ip_port_control=IP+\u7AEF\u53E3\u7BA1\u63A7
|
||||||
website_multiple_control=\u7F51\u7AD9\u591A\u57DF\u7BA1\u63A7
|
website_multiple_control=\u7F51\u7AD9\u591A\u57DF\u7BA1\u63A7
|
||||||
mail_multiple_control=\u90AE\u4EF6\u591A\u57DF\u7BA1\u63A7
|
mail_multiple_control=\u90AE\u4EF6\u9AD8\u7EA7\u914D\u7F6E
|
||||||
request_header_control=\u8BF7\u6C42\u5934\u57DF\u7BA1\u63A7
|
request_header_control=\u8BF7\u6C42\u5934\u57DF\u7BA1\u63A7
|
||||||
plaintext_monitor=\u660E\u6587\u5185\u5BB9\u76D1\u6D4B
|
plaintext_monitor=\u660E\u6587\u5185\u5BB9\u76D1\u6D4B
|
||||||
ip_address_monitor=IP\u5730\u5740\u76D1\u6D4B
|
ip_address_monitor=IP\u5730\u5740\u76D1\u6D4B
|
||||||
@@ -561,7 +561,7 @@ ssl_ip=SSL IP\u914D\u7F6E
|
|||||||
ssl_sni=SSL SNI\u5173\u952E\u5B57\u914D\u7F6E
|
ssl_sni=SSL SNI\u5173\u952E\u5B57\u914D\u7F6E
|
||||||
ssl_san=SSL SAN\u5173\u952E\u5B57\u914D\u7F6E
|
ssl_san=SSL SAN\u5173\u952E\u5B57\u914D\u7F6E
|
||||||
ssl_ca=SSL CN\u5173\u952E\u5B57\u914D\u7F6E
|
ssl_ca=SSL CN\u5173\u952E\u5B57\u914D\u7F6E
|
||||||
http_control=HTTP\u914D\u7F6E
|
http_control=HTTP\u9AD8\u7EA7\u914D\u7F6E
|
||||||
ingress=\u5165\u53E3\u65B9\u5411
|
ingress=\u5165\u53E3\u65B9\u5411
|
||||||
egress=\u51FA\u53E3\u65B9\u5411
|
egress=\u51FA\u53E3\u65B9\u5411
|
||||||
fileTransfer_control=\u6587\u4EF6\u4F20\u8F93\u914D\u7F6E
|
fileTransfer_control=\u6587\u4EF6\u4F20\u8F93\u914D\u7F6E
|
||||||
@@ -962,7 +962,7 @@ app_byte_feature_monit=APP\u5B57\u8282\u7279\u5F81\u76D1\u6D4B
|
|||||||
proxy_domain_forward=\u57DF\u540D\u8F6C\u53D1
|
proxy_domain_forward=\u57DF\u540D\u8F6C\u53D1
|
||||||
ip_complex_loop=IP\u590D\u7528
|
ip_complex_loop=IP\u590D\u7528
|
||||||
ddos_ip_drop=DDOS\u76EE\u6807\u9632\u62A4IP
|
ddos_ip_drop=DDOS\u76EE\u6807\u9632\u62A4IP
|
||||||
ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u914D\u7F6E
|
ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u56DE\u6D41
|
||||||
app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B
|
app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B
|
||||||
app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03
|
app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03
|
||||||
ctrl_http_reject=HTTP(S)\u7BA1\u63A7
|
ctrl_http_reject=HTTP(S)\u7BA1\u63A7
|
||||||
@@ -1188,10 +1188,8 @@ APP_DNS_ADMIN=APP DNS Admin
|
|||||||
APP_SSL_ADMIN=APP SSL Admin
|
APP_SSL_ADMIN=APP SSL Admin
|
||||||
APP_DK_GL=APP\u591A\u7528\u9014\u6807\u7B7E
|
APP_DK_GL=APP\u591A\u7528\u9014\u6807\u7B7E
|
||||||
dnat_complex_loop=DNAT IP\u590D\u7528\u56DE\u6D41
|
dnat_complex_loop=DNAT IP\u590D\u7528\u56DE\u6D41
|
||||||
ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u56DE\u6D41
|
|
||||||
snat_policy=SNAT\u590D\u7528\u7B56\u7565
|
snat_policy=SNAT\u590D\u7528\u7B56\u7565
|
||||||
dnat_policy=DNAT\u590D\u7528\u7B56\u7565
|
dnat_policy=DNAT\u590D\u7528\u7B56\u7565
|
||||||
report_total=\u5408\u8BA1
|
|
||||||
message_type=\u6D88\u606F\u7C7B\u578B
|
message_type=\u6D88\u606F\u7C7B\u578B
|
||||||
as=\u81EA\u6CBB\u7CFB\u7EDF\u53F7
|
as=\u81EA\u6CBB\u7CFB\u7EDF\u53F7
|
||||||
route=\u8DEF\u7531\u4FE1\u606F
|
route=\u8DEF\u7531\u4FE1\u606F
|
||||||
@@ -1228,7 +1226,7 @@ log_management=\u65E5\u5FD7\u7BA1\u7406
|
|||||||
log_date=\u65E5\u671F\u8303\u56F4
|
log_date=\u65E5\u671F\u8303\u56F4
|
||||||
log_exception=\u53EA\u67E5\u8BE2\u5F02\u5E38\u4FE1\u606F
|
log_exception=\u53EA\u67E5\u8BE2\u5F02\u5E38\u4FE1\u606F
|
||||||
log_user=\u64CD\u4F5C\u7528\u6237
|
log_user=\u64CD\u4F5C\u7528\u6237
|
||||||
log_submission=\u63D0\u4EA4\u65B9\u5F0F
|
log_submission=\u8BF7\u6C42\u65B9\u6CD5
|
||||||
log_ip=\u64CD\u4F5C\u8005IP
|
log_ip=\u64CD\u4F5C\u8005IP
|
||||||
log_exception_info=\u5F02\u5E38\u4FE1\u606F
|
log_exception_info=\u5F02\u5E38\u4FE1\u606F
|
||||||
system_log=Log Management
|
system_log=Log Management
|
||||||
@@ -1262,7 +1260,6 @@ certificate_error=\u516C\u94A5\u3001\u79C1\u94A5\u6587\u4EF6\u683C\u5F0F\u9519\u
|
|||||||
public_file_error=\u516C\u94A5\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF
|
public_file_error=\u516C\u94A5\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF
|
||||||
keyframe_pic_required=\u5C1A\u672A\u9009\u62E9\u5173\u952E\u5E27\u56FE\u7247
|
keyframe_pic_required=\u5C1A\u672A\u9009\u62E9\u5173\u952E\u5E27\u56FE\u7247
|
||||||
private_file_error=\u79C1\u94A5\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF
|
private_file_error=\u79C1\u94A5\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF
|
||||||
keyframe_pic_required=\u5C1A\u672A\u9009\u62E9\u5173\u952E\u5E27\u56FE\u7247
|
|
||||||
ipv4_range_tip=IPv4 Range
|
ipv4_range_tip=IPv4 Range
|
||||||
ipv4_subnet_tip=IPv4/Subnet Mask
|
ipv4_subnet_tip=IPv4/Subnet Mask
|
||||||
ipv6_range_tip=IPv6 Range
|
ipv6_range_tip=IPv6 Range
|
||||||
@@ -1285,3 +1282,6 @@ has_invisible_char=%s\u5305\u542B\u4E0D\u53EF\u89C1\u5B57\u7B26
|
|||||||
not_multiple=%s\u4E0D\u652F\u6301\u591A\u4E2A\u5173\u952E\u5B57
|
not_multiple=%s\u4E0D\u652F\u6301\u591A\u4E2A\u5173\u952E\u5B57
|
||||||
template_error=\u5BFC\u5165\u6A21\u677F\u9519\u8BEF.\u8BF7\u9009\u62E9\u4E0E\u7CFB\u7EDF\u8BED\u8A00\u4E00\u81F4\uFF0C\u5E76\u4E14\u914D\u7F6E\u7C7B\u578B\u4E00\u81F4\u7684\u6A21\u677F\u5BFC\u5165.
|
template_error=\u5BFC\u5165\u6A21\u677F\u9519\u8BEF.\u8BF7\u9009\u62E9\u4E0E\u7CFB\u7EDF\u8BED\u8A00\u4E00\u81F4\uFF0C\u5E76\u4E14\u914D\u7F6E\u7C7B\u578B\u4E00\u81F4\u7684\u6A21\u677F\u5BFC\u5165.
|
||||||
asn_no=ASN
|
asn_no=ASN
|
||||||
|
query=Query
|
||||||
|
cfg_operation_log=\u914D\u7F6E\u64E6\u6B27\u6D32\u54E6\u65E5\u5FD7
|
||||||
|
function_name=\u64CD\u4F5C\u6A21\u5757
|
||||||
150
src/main/webapp/WEB-INF/views/sys/cfgOperationLogList.jsp
Normal file
150
src/main/webapp/WEB-INF/views/sys/cfgOperationLogList.jsp
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||||
|
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>配置审计日志</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function page(n, s) {
|
||||||
|
$("#pageNo").val(n);
|
||||||
|
$("#pageSize").val(s);
|
||||||
|
$("#searchForm").submit();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<%-- <ul class="nav nav-tabs">
|
||||||
|
<li class="active"><a href="${ctx}/sys/log/">日志列表</a></li>
|
||||||
|
</ul> --%>
|
||||||
|
<div class="page-content">
|
||||||
|
<h3 class="page-title">
|
||||||
|
<spring:message code="cfg_operation_log"></spring:message>
|
||||||
|
</h3>
|
||||||
|
<h5 class="page-header"></h5>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="portlet">
|
||||||
|
<div class="portlet-body">
|
||||||
|
<div class="row">
|
||||||
|
<form:form id="searchForm" action="${ctx}/sys/log/cfgOperationLogList" method="post"
|
||||||
|
class="breadcrumb form-search" style="background-color:#fff">
|
||||||
|
<input id="pageNo" name="pageNo" type="hidden"
|
||||||
|
value="${page.pageNo}" />
|
||||||
|
<input id="pageSize" name="pageSize" type="hidden"
|
||||||
|
value="${page.pageSize}" />
|
||||||
|
<div class="col-md-12 ">
|
||||||
|
<div class="pull-left">
|
||||||
|
<label><spring:message code="function_name" />:</label>
|
||||||
|
<select name="functionName" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||||
|
<option value=""><spring:message code="select"></spring:message></option>
|
||||||
|
<c:forEach items="${fns:getDictList('SYS_SERVICE_FUNCTION')}" var="dict">
|
||||||
|
<option value="${dict.itemValue }" <c:if test="${sysLog.functionName eq dict.itemValue}">selected</c:if>>
|
||||||
|
<spring:message code="${dict.itemValue }"></spring:message>
|
||||||
|
</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="pull-left">
|
||||||
|
<label><spring:message code="user" />:</label> <input
|
||||||
|
id="createBy" name="createBy" type="text" maxlength="50"
|
||||||
|
class="form-control" value="${sysLog.createBy}" />
|
||||||
|
</div>
|
||||||
|
<div class="pull-left">
|
||||||
|
<label><spring:message code="operation" />:</label>
|
||||||
|
<select name="operation" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
|
||||||
|
<option value=""><spring:message code="select"></spring:message></option>
|
||||||
|
<option value="query" <c:if test="${sysLog.operation eq 'query'}">selected</c:if>><spring:message code="query"></spring:message></option>
|
||||||
|
<option value="add" <c:if test="${sysLog.operation eq 'add'}">selected</c:if>><spring:message code="add"></spring:message></option>
|
||||||
|
<option value="edit" <c:if test="${sysLog.operation eq 'edit'}">selected</c:if>><spring:message code="edit"></spring:message></option>
|
||||||
|
<option value="delete" <c:if test="${sysLog.operation eq 'delete'}">selected</c:if>><spring:message code="delete"></spring:message></option>
|
||||||
|
<option value="examine" <c:if test="${sysLog.operation eq 'examine'}">selected</c:if>><spring:message code="examine"></spring:message></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="pull-left">
|
||||||
|
<label><spring:message code="log_date" />:</label> <input
|
||||||
|
id="beginDate" name="beginDate" type="text"
|
||||||
|
readonly="readonly" maxlength="20"
|
||||||
|
class="form-control Wdate"
|
||||||
|
value="<fmt:formatDate value="${sysLog.beginDate}" pattern="yyyy-MM-dd"/>"
|
||||||
|
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
|
||||||
|
</div>
|
||||||
|
<div class="pull-left">
|
||||||
|
<label><spring:message code="" /> </label> <input
|
||||||
|
id="endDate" name="endDate" type="text" readonly="readonly"
|
||||||
|
maxlength="20" class="form-control Wdate"
|
||||||
|
value="<fmt:formatDate value="${sysLog.endDate}" pattern="yyyy-MM-dd"/>"
|
||||||
|
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});" />
|
||||||
|
</div>
|
||||||
|
<div class="pull-left">
|
||||||
|
<label> </label>
|
||||||
|
<%-- <label for="exception"><input id="exception"
|
||||||
|
name="exception" type="checkbox"
|
||||||
|
${sysLog.exception eq '1'?' checked':''} value="1" /><spring:message code="log_exception" /></label> --%>
|
||||||
|
<button type="submit" class="btn blue form-control"><i class="fa fa-search"></i><spring:message code="search" /></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
<sys:message content="${message}" />
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="contentTable1"
|
||||||
|
class="table table-striped table-bordered table-condensed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><spring:message code="function_name" /></th>
|
||||||
|
<th><spring:message code="opearation" /></th>
|
||||||
|
<th><spring:message code="log_submission" /></th>
|
||||||
|
<th><spring:message code="log_ip" /></th>
|
||||||
|
<th><spring:message code="log_user" /></th>
|
||||||
|
<th><spring:message code="operate_time" /></th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%
|
||||||
|
request.setAttribute("strEnter", "\n");
|
||||||
|
request.setAttribute("strTab", "\t");
|
||||||
|
%>
|
||||||
|
<c:forEach items="${page.list}" var="log">
|
||||||
|
<tr>
|
||||||
|
<td><spring:message code="${log.functionName}"></spring:message></td>
|
||||||
|
<td><strong>
|
||||||
|
<spring:message code="${log.operation}"></spring:message>
|
||||||
|
<c:if test="${not empty log.auditState }">
|
||||||
|
-
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${log.auditState eq '0'}"><spring:message code="created"></spring:message></c:when>
|
||||||
|
<c:when test="${log.auditState eq '1'}"><spring:message code="approved"></spring:message></c:when>
|
||||||
|
<c:when test="${log.auditState eq '2'}"><spring:message code="unapproved"></spring:message></c:when>
|
||||||
|
<c:when test="${log.auditState eq '3'}"><spring:message code="cancel_approved"/></c:when>
|
||||||
|
</c:choose>
|
||||||
|
</c:if>
|
||||||
|
</strong></td>
|
||||||
|
<td>
|
||||||
|
${log.method}
|
||||||
|
</td>
|
||||||
|
<td>${log.remoteAddr}</td>
|
||||||
|
<td>${log.createBy}</td>
|
||||||
|
<td><fmt:formatDate value="${log.createDate}"
|
||||||
|
type="both" /></td>
|
||||||
|
</tr>
|
||||||
|
<c:if test="${not empty log.exception}">
|
||||||
|
<tr>
|
||||||
|
<td colspan="8"
|
||||||
|
style="word-wrap: break-word; word-break: break-all;">
|
||||||
|
<%-- 用户代理: ${log.userAgent}<br/> --%> <%-- 提交参数: ${fns:escapeHtml(log.params)} <br/> --%>
|
||||||
|
<spring:message code="log_exception_info" />:<br />
|
||||||
|
${fn:replace(fn:replace(fns:escapeHtml(log.exception), strEnter, '<br/>'), strTab, ' ')}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="page">${page}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user