Commit b1ffbd58 by zhangkb

添加操作日志代码

parent d68ba542
...@@ -10,10 +10,12 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -10,10 +10,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.indicators.CompareUnitDef; import com.keymobile.indicators.model.entity.indicators.CompareUnitDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService; import com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService; import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import com.keymobile.indicators.utils.LogManager;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -36,6 +38,12 @@ public class DriveIndCalResultCtrl { ...@@ -36,6 +38,12 @@ public class DriveIndCalResultCtrl {
@ApiOperation(value = "对标单元综合计算", notes = "对标单元综合计算") @ApiOperation(value = "对标单元综合计算", notes = "对标单元综合计算")
@PostMapping(value = "/compareUnitListCal") @PostMapping(value = "/compareUnitListCal")
public void compareUnitListCal(@RequestBody List<CompareUnitDef> compareUnitList) { public void compareUnitListCal(@RequestBody List<CompareUnitDef> compareUnitList) {
StringBuilder compUnitDefString = new StringBuilder("");
for(CompareUnitDef compUnitDef : compareUnitList) {
compUnitDefString.append(compUnitDef.getCompareId()).append(";");
}
LogManager.logInfo(Constants.LOG_INDICATOR_UNIT_CAL_API,"执行对标单元id:{},日期:{} 的计算",
compUnitDefString.toString(),compareUnitList.get(0).getDate());
driveIndCalResultService.compareUnitListCal(compareUnitList); driveIndCalResultService.compareUnitListCal(compareUnitList);
} }
......
...@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.indicators.BaseIndDef; import com.keymobile.indicators.model.entity.indicators.BaseIndDef;
import com.keymobile.indicators.model.entity.indicators.BaseIndDefVersionData; import com.keymobile.indicators.model.entity.indicators.BaseIndDefVersionData;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
...@@ -18,6 +19,7 @@ import com.keymobile.indicators.service.hytobacco.BaseIndDefService; ...@@ -18,6 +19,7 @@ import com.keymobile.indicators.service.hytobacco.BaseIndDefService;
import com.keymobile.indicators.service.hytobacco.BaseIndDefVersionService; import com.keymobile.indicators.service.hytobacco.BaseIndDefVersionService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefService; import com.keymobile.indicators.service.hytobacco.DriveIndDefService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefVersionService; import com.keymobile.indicators.service.hytobacco.DriveIndDefVersionService;
import com.keymobile.indicators.utils.LogManager;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -58,6 +60,11 @@ public class IndicatorsDefCtrl { ...@@ -58,6 +60,11 @@ public class IndicatorsDefCtrl {
@RequestParam String catalogIdPath,@RequestParam String user, @RequestParam String catalogIdPath,@RequestParam String user,
@RequestParam String isUpdate,@RequestParam String code) throws Exception{ @RequestParam String isUpdate,@RequestParam String code) throws Exception{
baseIndDefService.saveOrUpdate(baseIndDef, catalogId, catalogIdPath, user, isUpdate, code); baseIndDefService.saveOrUpdate(baseIndDef, catalogId, catalogIdPath, user, isUpdate, code);
if("0".equals(isUpdate)) {
LogManager.logInfo(Constants.LOG_INDICATOR_BASE_INDI_API,"新增基础项:{}",baseIndDef.getIndName());
}else {
LogManager.logInfo(Constants.LOG_INDICATOR_BASE_INDI_API,"修改基础项:{}",baseIndDef.getIndName());
}
} }
@ApiOperation(value = "删除基础指标", notes = "删除基础指标") @ApiOperation(value = "删除基础指标", notes = "删除基础指标")
......
package com.keymobile.indicators.constant; package com.keymobile.indicators.constant;
/** /**
* 数据标准常量定义 * 数据标准常量定义
*/ */
public class Constants { public class Constants {
/** /**
* 日志---操作日志 * 日志---操作日志
*/ */
public static final String LOG_CONTEXT_API = "indicator.operate"; public static final String LOG_CONTEXT_API = "indicator.operate";
/** collection Name */ public static final String LOG_INDICATOR_UNIT_CAL_API = "indicator.unit.cal";
/** collection Name */ public static final String LOG_INDICATOR_BASE_INDI_API = "indicator.base.indi";
/** /** collection Name */
* 英文分隔符;
*/ /** collection Name */
public static final String SEP_NOUN = ";";
/**
/** * 英文分隔符;
* 英文分隔符. */
*/ public static final String SEP_NOUN = ";";
public static final String SEP_DOT = ".";
/** /**
* 分隔符, * 英文分隔符.
*/ */
public static final String SEP_COMMA = ","; public static final String SEP_DOT = ".";
/**
/** * 分隔符,
* 分隔符/ */
*/ public static final String SEP_COMMA = ",";
public static final String SEP = "/";
/**
/** * 分隔符/
* N */
*/ public static final String SEP = "/";
public static final String N = "N";
/**
/** * N
* Y */
*/ public static final String N = "N";
public static final String Y = "Y";
/**
/** * Y
* 申请状态-草稿 */
*/ public static final String Y = "Y";
public static final int APPLY_STATE_DRAFT = 1;
/**
/** * 申请状态-草稿
* 申请状态-审核中 */
*/ public static final int APPLY_STATE_DRAFT = 1;
public static final int APPLY_STATE_AUDITING = 2;
/**
/** * 申请状态-审核中
* 申请状态-已通过 */
*/ public static final int APPLY_STATE_AUDITING = 2;
public static final int APPLY_STATE_PASSED = 3;
/**
/** * 申请状态-已通过
* 申请状态-已拒绝 */
*/ public static final int APPLY_STATE_PASSED = 3;
public static final int APPLY_STATE_REJECTED = 4;
/**
/** * 申请状态-已拒绝
* 申请状态-部分通过 */
*/ public static final int APPLY_STATE_REJECTED = 4;
public static final int APPLY_STATE_PART_PASSED = 5;
/**
* 申请状态-部分通过
*/
/** public static final int APPLY_STATE_PART_PASSED = 5;
* 正常
*/
public static final int DATA_STATE_A = 1;
/** /**
* 停用、废止 * 正常
*/ */
public static final int DATA_STATE_S = 2; public static final int DATA_STATE_A = 1;
/** /**
* 删除 * 停用、废止
*/ */
public static final int DATA_STATE_X = 3; public static final int DATA_STATE_S = 2;
/**
* 删除
/** */
* 数据项数据来源- excel填报-1 public static final int DATA_STATE_X = 3;
*/
public static final int INPUT_EXCEL = 1;
/** /**
* 数据项数据来源- 在线填报-2 * 数据项数据来源- excel填报-1
*/ */
public static final int INPUT_ONLINE = 2; public static final int INPUT_EXCEL = 1;
/**
/** * 数据项数据来源- 在线填报-2
* 数据项数据来源- 接口填报-3 */
*/ public static final int INPUT_ONLINE = 2;
public static final int INPUT_INTERFACE = 3;
/**
/** * 数据项数据来源- 接口填报-3
* 对象类型- 组织机构-1 */
*/ public static final int INPUT_INTERFACE = 3;
public static final int OBJ_TYPE_ORG = 1;
/**
/** * 对象类型- 组织机构-1
* 对象类型- 组织机构-2 */
*/ public static final int OBJ_TYPE_ORG = 1;
public static final int OBJ_TYPE_USER = 2;
/**
* 对象类型- 组织机构-2
/** */
* 任务规则-省级填报可选角色 public static final int OBJ_TYPE_USER = 2;
*/
public static final String RULE_PROVINCE_ENTER_ROLE = "PROVINCE_ENTER_ROLE";
/**
/** * 任务规则-省级填报可选角色
* 任务规则-省级审核角色id */
*/ public static final String RULE_PROVINCE_ENTER_ROLE = "PROVINCE_ENTER_ROLE";
public static final String RULE_PROVINCE_AUDIT_ROLE = "PROVINCE_AUDIT_ROLE";
/**
/** * 任务规则-省级审核角色id
* 任务规则-市填报可选角色 */
*/ public static final String RULE_PROVINCE_AUDIT_ROLE = "PROVINCE_AUDIT_ROLE";
public static final String RULE_CITY_ENTER_ROLE = "CITY_ENTER_ROLE";
/**
/** * 任务规则-市填报可选角色
* 任务规则-市填审核角色id */
*/ public static final String RULE_CITY_ENTER_ROLE = "CITY_ENTER_ROLE";
public static final String RULE_CITY_AUDIT_ROLE = "CITY_AUDIT_ROLE";
/**
/** * 任务规则-市填审核角色id
* 任务规则-县级填报可选角色 */
*/ public static final String RULE_CITY_AUDIT_ROLE = "CITY_AUDIT_ROLE";
public static final String RULE_COUNTY_ENTER_ROLE = "COUNTY_ENTER_ROLE";
/**
/** * 任务规则-县级填报可选角色
* 任务规则-县级审核角色id */
*/ public static final String RULE_COUNTY_ENTER_ROLE = "COUNTY_ENTER_ROLE";
public static final String RULE_COUNTY_AUDIT_ROLE = "COUNTY_AUDIT_ROLE";
/**
/** * 任务规则-县级审核角色id
* ruleType=1 省级对标 */
*/ public static final String RULE_COUNTY_AUDIT_ROLE = "COUNTY_AUDIT_ROLE";
public static final int RULE_TYPE_PROVINCE = 1;
/** /**
* ruleType=2 市级对标 * ruleType=1 省级对标
*/ */
public static final int RULE_TYPE_CITY = 2; public static final int RULE_TYPE_PROVINCE = 1;
/** /**
* ruleType=3 县级对标 * ruleType=2 市级对标
*/ */
public static final int RULE_TYPE_COUNTY = 3; public static final int RULE_TYPE_CITY = 2;
} /**
* ruleType=3 县级对标
*/
public static final int RULE_TYPE_COUNTY = 3;
}
package com.keymobile.indicators.utils; package com.keymobile.indicators.utils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
/** /**
* 日志操作工具. * 日志操作工具.
* @author linxu * @author linxu
* @version 1.0 * @version 1.0
* @date 2020/3/25 11:00 * @date 2020/3/25 11:00
*/ */
public class LogManager { public class LogManager {
/** /**
* trace. * trace.
* @param context context * @param context context
* @param e e * @param e e
* @param message message * @param message message
*/ */
public static void logTrace(String context, Throwable e, String message) { public static void logTrace(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isTraceEnabled()) { if (logger.isTraceEnabled()) {
logger.trace(message, e); logger.trace(message, e);
} }
} }
/** /**
* trace. * trace.
* @param context context * @param context context
* @param message message * @param message message
*/ */
public static void logTrace(String context, String message) { public static void logTrace(String context, String message) {
logTrace(context, null, message); logTrace(context, null, message);
} }
/** /**
* debug. * debug.
* @param context context * @param context context
* @param message message * @param message message
*/ */
public static void logDebug(String context, String message) { public static void logDebug(String context, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(message); logger.debug(message);
} }
} }
/** /**
* log. * log.
* @param context context * @param context context
* @param message message * @param message message
*/ */
public static void logInfo(String context, String message) { public static void logInfo(String context, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
logger.info(message); logger.info(message);
} }
} }
/** /**
* info. * info.
* @param context context * @param context context
* @param message message * @param message message
* @param objects objects * @param objects objects
*/ */
public static void logInfo(String context, String message, Object... objects) { public static void logInfo(String context, String message, Object... objects) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
String ip = getIp(); String ip = getIp();
message = message + "; IP: " + ip; message = message + "; IP: " + ip;
message = StringUtils.replace(message, "{}", "%s"); message = StringUtils.replace(message, "{}", "%s");
message = String.format(message, objects); message = String.format(message, objects);
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
logger.info(message, getUser(), getSessionId(), ip); logger.info(message, getUser(), getSessionId(), ip, getMenuPath(context));
} }
} }
/** /**
* warning. * warning.
* @param context context * @param context context
* @param e e * @param e e
* @param message message * @param message message
*/ */
public static void logWarning(String context, Throwable e, String message) { public static void logWarning(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isWarnEnabled()) { if (logger.isWarnEnabled()) {
logger.warn(message, e); logger.warn(message, e);
} }
} }
/** /**
* warning. * warning.
* @param context context * @param context context
* @param message message * @param message message
*/ */
public static void logWarning(String context, String message) { public static void logWarning(String context, String message) {
logWarning(context, null, message); logWarning(context, null, message);
} }
/** /**
* error. * error.
* @param context context * @param context context
* @param e e * @param e e
* @param message message * @param message message
*/ */
public static void logError(String context, Throwable e, String message) { public static void logError(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) { if (logger.isErrorEnabled()) {
logger.error(message, e); logger.error(message, e);
} }
} }
/** /**
* error. * error.
* @param context context * @param context context
* @param message message * @param message message
*/ */
public static void logError(String context, String message) { public static void logError(String context, String message) {
Logger logger = LoggerFactory.getLogger(context); Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) { if (logger.isErrorEnabled()) {
logger.error(message); logger.error(message);
} }
} }
/** /**
* 获取sessionId. * 获取sessionId.
* @return sessionId * @return sessionId
*/ */
public static String getSessionId() { public static String getSessionId() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes(); RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) { if (attrs != null) {
return attrs.getSessionId(); return attrs.getSessionId();
} }
return "NO_SESSION"; return "NO_SESSION";
} }
/** /**
* 获取IP. * 获取IP.
* @return ip * @return ip
*/ */
public static String getIp() { public static String getIp() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes(); RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) { if (attrs != null) {
HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest(); HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
return IpUtil.getIpAddr(request); return IpUtil.getIpAddr(request);
} }
return ""; return "";
} }
/** /**
* 获取用户. * 获取用户.
* @return user * @return user
*/ */
public static String getUser() { public static String getUser() {
return SystemUserUtil.getCurrentUser(); return SystemUserUtil.getCurrentUser();
} }
} /**
* 获取模块路径
*/
public static String getMenuPath(String context) {
return ModelPathEnum.getModelPath(context);
}
}
package com.keymobile.indicators.utils;
public enum ModelPathEnum {
LOG_CONTEXT_API("indicator.operate","数据填报/数据填报"),
LOG_INDICATOR_UNIT_CAL_API("indicator.unit.cal","数据填报/数据运算"),
LOG_INDICATOR_BASE_INDI_API("indicator.base.indi","规则管理/数据项管理");
private String modelName;
private String modelPath;
private ModelPathEnum(String modelName,String modelPath) {
this.modelName = modelName;
this.modelPath = modelPath;
}
public static String getModelPath(String modelName) {
for(ModelPathEnum path : ModelPathEnum.values()) {
if(modelName.equals(path.getModelName())) {
return path.getModelPath();
}
}
return null;
}
public String getModelName() {
return modelName;
}
public String getModelPath() {
return modelPath;
}
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration > <configuration >
<springProperty scope="context" name="spring.datasource.url" source="spring.datasource.url"/> <springProperty scope="context" name="spring.datasource.url" source="spring.datasource.url"/>
<springProperty scope="context" name="spring.datasource.username" source="spring.datasource.username"/> <springProperty scope="context" name="spring.datasource.username" source="spring.datasource.username"/>
<springProperty scope="context" name="spring.datasource.password" source="spring.datasource.password"/> <springProperty scope="context" name="spring.datasource.password" source="spring.datasource.password"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern> <pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<appender name="db" class="ch.qos.logback.classic.db.DBAppender"> <appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource <connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource"> class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass> <driverClass>com.mysql.jdbc.Driver</driverClass>
<url>${spring.datasource.url}</url> <url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user> <user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password> <password>${spring.datasource.password}</password>
</connectionSource> </connectionSource>
</appender> </appender>
<logger name="indicator.operate"> <logger name="indicator.operate">
<appender-ref ref="db" /> <appender-ref ref="db" />
</logger> </logger>
<root level="INFO"> <logger name="indicator.unit.cal">
<appender-ref ref="stdout" /> <appender-ref ref="db" />
</root> </logger>
</configuration> <logger name="indicator.base.indi">
<appender-ref ref="db" />
</logger>
<root level="INFO">
<appender-ref ref="stdout" />
</root>
</configuration>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment