Commit b1ffbd58 by zhangkb

添加操作日志代码

parent d68ba542
......@@ -10,10 +10,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
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.DriveIndCalResultDef;
import com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import com.keymobile.indicators.utils.LogManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -36,6 +38,12 @@ public class DriveIndCalResultCtrl {
@ApiOperation(value = "对标单元综合计算", notes = "对标单元综合计算")
@PostMapping(value = "/compareUnitListCal")
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);
}
......
......@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
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.BaseIndDefVersionData;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
......@@ -18,6 +19,7 @@ import com.keymobile.indicators.service.hytobacco.BaseIndDefService;
import com.keymobile.indicators.service.hytobacco.BaseIndDefVersionService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefVersionService;
import com.keymobile.indicators.utils.LogManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -58,6 +60,11 @@ public class IndicatorsDefCtrl {
@RequestParam String catalogIdPath,@RequestParam String user,
@RequestParam String isUpdate,@RequestParam String code) throws Exception{
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 = "删除基础指标")
......
package com.keymobile.indicators.constant;
/**
* 数据标准常量定义
*/
public class Constants {
/**
* 日志---操作日志
*/
public static final String LOG_CONTEXT_API = "indicator.operate";
/** collection Name */
/** collection Name */
/**
* 英文分隔符;
*/
public static final String SEP_NOUN = ";";
/**
* 英文分隔符.
*/
public static final String SEP_DOT = ".";
/**
* 分隔符,
*/
public static final String SEP_COMMA = ",";
/**
* 分隔符/
*/
public static final String SEP = "/";
/**
* N
*/
public static final String N = "N";
/**
* Y
*/
public static final String Y = "Y";
/**
* 申请状态-草稿
*/
public static final int APPLY_STATE_DRAFT = 1;
/**
* 申请状态-审核中
*/
public static final int APPLY_STATE_AUDITING = 2;
/**
* 申请状态-已通过
*/
public static final int APPLY_STATE_PASSED = 3;
/**
* 申请状态-已拒绝
*/
public static final int APPLY_STATE_REJECTED = 4;
/**
* 申请状态-部分通过
*/
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_X = 3;
/**
* 数据项数据来源- excel填报-1
*/
public static final int INPUT_EXCEL = 1;
/**
* 数据项数据来源- 在线填报-2
*/
public static final int INPUT_ONLINE = 2;
/**
* 数据项数据来源- 接口填报-3
*/
public static final int INPUT_INTERFACE = 3;
/**
* 对象类型- 组织机构-1
*/
public static final int OBJ_TYPE_ORG = 1;
/**
* 对象类型- 组织机构-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_AUDIT_ROLE = "PROVINCE_AUDIT_ROLE";
/**
* 任务规则-市填报可选角色
*/
public static final String RULE_CITY_ENTER_ROLE = "CITY_ENTER_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_AUDIT_ROLE = "COUNTY_AUDIT_ROLE";
/**
* ruleType=1 省级对标
*/
public static final int RULE_TYPE_PROVINCE = 1;
/**
* ruleType=2 市级对标
*/
public static final int RULE_TYPE_CITY = 2;
/**
* ruleType=3 县级对标
*/
public static final int RULE_TYPE_COUNTY = 3;
}
package com.keymobile.indicators.constant;
/**
* 数据标准常量定义
*/
public class Constants {
/**
* 日志---操作日志
*/
public static final String LOG_CONTEXT_API = "indicator.operate";
public static final String LOG_INDICATOR_UNIT_CAL_API = "indicator.unit.cal";
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_DOT = ".";
/**
* 分隔符,
*/
public static final String SEP_COMMA = ",";
/**
* 分隔符/
*/
public static final String SEP = "/";
/**
* N
*/
public static final String N = "N";
/**
* Y
*/
public static final String Y = "Y";
/**
* 申请状态-草稿
*/
public static final int APPLY_STATE_DRAFT = 1;
/**
* 申请状态-审核中
*/
public static final int APPLY_STATE_AUDITING = 2;
/**
* 申请状态-已通过
*/
public static final int APPLY_STATE_PASSED = 3;
/**
* 申请状态-已拒绝
*/
public static final int APPLY_STATE_REJECTED = 4;
/**
* 申请状态-部分通过
*/
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_X = 3;
/**
* 数据项数据来源- excel填报-1
*/
public static final int INPUT_EXCEL = 1;
/**
* 数据项数据来源- 在线填报-2
*/
public static final int INPUT_ONLINE = 2;
/**
* 数据项数据来源- 接口填报-3
*/
public static final int INPUT_INTERFACE = 3;
/**
* 对象类型- 组织机构-1
*/
public static final int OBJ_TYPE_ORG = 1;
/**
* 对象类型- 组织机构-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_AUDIT_ROLE = "PROVINCE_AUDIT_ROLE";
/**
* 任务规则-市填报可选角色
*/
public static final String RULE_CITY_ENTER_ROLE = "CITY_ENTER_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_AUDIT_ROLE = "COUNTY_AUDIT_ROLE";
/**
* ruleType=1 省级对标
*/
public static final int RULE_TYPE_PROVINCE = 1;
/**
* ruleType=2 市级对标
*/
public static final int RULE_TYPE_CITY = 2;
/**
* ruleType=3 县级对标
*/
public static final int RULE_TYPE_COUNTY = 3;
}
package com.keymobile.indicators.utils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* 日志操作工具.
* @author linxu
* @version 1.0
* @date 2020/3/25 11:00
*/
public class LogManager {
/**
* trace.
* @param context context
* @param e e
* @param message message
*/
public static void logTrace(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isTraceEnabled()) {
logger.trace(message, e);
}
}
/**
* trace.
* @param context context
* @param message message
*/
public static void logTrace(String context, String message) {
logTrace(context, null, message);
}
/**
* debug.
* @param context context
* @param message message
*/
public static void logDebug(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isDebugEnabled()) {
logger.debug(message);
}
}
/**
* log.
* @param context context
* @param message message
*/
public static void logInfo(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isInfoEnabled()) {
logger.info(message);
}
}
/**
* info.
* @param context context
* @param message message
* @param objects objects
*/
public static void logInfo(String context, String message, Object... objects) {
Logger logger = LoggerFactory.getLogger(context);
String ip = getIp();
message = message + "; IP: " + ip;
message = StringUtils.replace(message, "{}", "%s");
message = String.format(message, objects);
if (logger.isInfoEnabled()) {
logger.info(message, getUser(), getSessionId(), ip);
}
}
/**
* warning.
* @param context context
* @param e e
* @param message message
*/
public static void logWarning(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isWarnEnabled()) {
logger.warn(message, e);
}
}
/**
* warning.
* @param context context
* @param message message
*/
public static void logWarning(String context, String message) {
logWarning(context, null, message);
}
/**
* error.
* @param context context
* @param e e
* @param message message
*/
public static void logError(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message, e);
}
}
/**
* error.
* @param context context
* @param message message
*/
public static void logError(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message);
}
}
/**
* 获取sessionId.
* @return sessionId
*/
public static String getSessionId() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
return attrs.getSessionId();
}
return "NO_SESSION";
}
/**
* 获取IP.
* @return ip
*/
public static String getIp() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
return IpUtil.getIpAddr(request);
}
return "";
}
/**
* 获取用户.
* @return user
*/
public static String getUser() {
return SystemUserUtil.getCurrentUser();
}
}
package com.keymobile.indicators.utils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* 日志操作工具.
* @author linxu
* @version 1.0
* @date 2020/3/25 11:00
*/
public class LogManager {
/**
* trace.
* @param context context
* @param e e
* @param message message
*/
public static void logTrace(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isTraceEnabled()) {
logger.trace(message, e);
}
}
/**
* trace.
* @param context context
* @param message message
*/
public static void logTrace(String context, String message) {
logTrace(context, null, message);
}
/**
* debug.
* @param context context
* @param message message
*/
public static void logDebug(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isDebugEnabled()) {
logger.debug(message);
}
}
/**
* log.
* @param context context
* @param message message
*/
public static void logInfo(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isInfoEnabled()) {
logger.info(message);
}
}
/**
* info.
* @param context context
* @param message message
* @param objects objects
*/
public static void logInfo(String context, String message, Object... objects) {
Logger logger = LoggerFactory.getLogger(context);
String ip = getIp();
message = message + "; IP: " + ip;
message = StringUtils.replace(message, "{}", "%s");
message = String.format(message, objects);
if (logger.isInfoEnabled()) {
logger.info(message, getUser(), getSessionId(), ip, getMenuPath(context));
}
}
/**
* warning.
* @param context context
* @param e e
* @param message message
*/
public static void logWarning(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isWarnEnabled()) {
logger.warn(message, e);
}
}
/**
* warning.
* @param context context
* @param message message
*/
public static void logWarning(String context, String message) {
logWarning(context, null, message);
}
/**
* error.
* @param context context
* @param e e
* @param message message
*/
public static void logError(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message, e);
}
}
/**
* error.
* @param context context
* @param message message
*/
public static void logError(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message);
}
}
/**
* 获取sessionId.
* @return sessionId
*/
public static String getSessionId() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
return attrs.getSessionId();
}
return "NO_SESSION";
}
/**
* 获取IP.
* @return ip
*/
public static String getIp() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
return IpUtil.getIpAddr(request);
}
return "";
}
/**
* 获取用户.
* @return user
*/
public static String getUser() {
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"?>
<configuration >
<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.password" source="spring.datasource.password"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
<logger name="indicator.operate">
<appender-ref ref="db" />
</logger>
<root level="INFO">
<appender-ref ref="stdout" />
</root>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration >
<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.password" source="spring.datasource.password"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
<logger name="indicator.operate">
<appender-ref ref="db" />
</logger>
<logger name="indicator.unit.cal">
<appender-ref ref="db" />
</logger>
<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