优化日志记录

This commit is contained in:
季圣华
2019-03-03 13:55:02 +08:00
parent 31e8756b8b
commit d89c673f48
3 changed files with 90 additions and 76 deletions

View File

@@ -9,6 +9,7 @@ import com.jsh.erp.datasource.vo.DepotHeadVo4InOutMCount;
import com.jsh.erp.datasource.vo.DepotHeadVo4List; import com.jsh.erp.datasource.vo.DepotHeadVo4List;
import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount; import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount;
import com.jsh.erp.service.depotHead.DepotHeadService; import com.jsh.erp.service.depotHead.DepotHeadService;
import com.jsh.erp.service.log.LogService;
import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.BaseResponseInfo;
import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.ErpInfo;
import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.StringUtil;
@@ -39,6 +40,9 @@ public class DepotHeadController {
@Resource @Resource
private DepotHeadService depotHeadService; private DepotHeadService depotHeadService;
@Resource
private LogService logService;
/** /**
* 批量设置状态-审核或者反审核 * 批量设置状态-审核或者反审核
* @param status * @param status
@@ -441,9 +445,10 @@ public class DepotHeadController {
@RequestMapping(value = "/addDepotHeadAndDetail") @RequestMapping(value = "/addDepotHeadAndDetail")
public Object addDepotHeadAndDetail(@RequestParam("info") String beanJson,@RequestParam("inserted") String inserted, public Object addDepotHeadAndDetail(@RequestParam("info") String beanJson,@RequestParam("inserted") String inserted,
@RequestParam("deleted") String deleted, @RequestParam("deleted") String deleted,
@RequestParam("updated") String updated) throws Exception{ @RequestParam("updated") String updated, HttpServletRequest request) throws Exception{
JSONObject result = ExceptionConstants.standardSuccess(); JSONObject result = ExceptionConstants.standardSuccess();
depotHeadService.addDepotHeadAndDetail(beanJson,inserted,deleted,updated); depotHeadService.addDepotHeadAndDetail(beanJson,inserted,deleted,updated);
logService.insertLog("depotHead", "新增", request);
return result; return result;
} }
/** /**

View File

@@ -4,6 +4,7 @@ import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.datasource.entities.Log; import com.jsh.erp.datasource.entities.Log;
import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.mappers.LogMapper; import com.jsh.erp.datasource.mappers.LogMapper;
import com.jsh.erp.service.log.LogService;
import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.StringUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -27,7 +28,7 @@ public class CommonQueryManager {
private InterfaceContainer container; private InterfaceContainer container;
@Resource @Resource
private LogMapper logMapper; private LogService logService;
/** /**
* 查询单条 * 查询单条
@@ -77,7 +78,7 @@ public class CommonQueryManager {
@Transactional(value = "transactionManager", rollbackFor = Exception.class) @Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int insert(String apiName, String beanJson, HttpServletRequest request) { public int insert(String apiName, String beanJson, HttpServletRequest request) {
if (StringUtil.isNotEmpty(apiName)) { if (StringUtil.isNotEmpty(apiName)) {
insertLog(apiName, "新增", request); logService.insertLog(apiName, "新增", request);
return container.getCommonQuery(apiName).insert(beanJson, request); return container.getCommonQuery(apiName).insert(beanJson, request);
} }
return 0; return 0;
@@ -93,7 +94,7 @@ public class CommonQueryManager {
@Transactional(value = "transactionManager", rollbackFor = Exception.class) @Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int update(String apiName, String beanJson, Long id, HttpServletRequest request) { public int update(String apiName, String beanJson, Long id, HttpServletRequest request) {
if (StringUtil.isNotEmpty(apiName)) { if (StringUtil.isNotEmpty(apiName)) {
insertLog(apiName, "更新,id:" + id, request); logService.insertLog(apiName, "更新,id:" + id, request);
return container.getCommonQuery(apiName).update(beanJson, id); return container.getCommonQuery(apiName).update(beanJson, id);
} }
return 0; return 0;
@@ -108,7 +109,7 @@ public class CommonQueryManager {
@Transactional(value = "transactionManager", rollbackFor = Exception.class) @Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int delete(String apiName, Long id, HttpServletRequest request) { public int delete(String apiName, Long id, HttpServletRequest request) {
if (StringUtil.isNotEmpty(apiName)) { if (StringUtil.isNotEmpty(apiName)) {
insertLog(apiName, "删除,id:" + id, request); logService.insertLog(apiName, "删除,id:" + id, request);
return container.getCommonQuery(apiName).delete(id); return container.getCommonQuery(apiName).delete(id);
} }
return 0; return 0;
@@ -123,7 +124,7 @@ public class CommonQueryManager {
@Transactional(value = "transactionManager", rollbackFor = Exception.class) @Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int batchDelete(String apiName, String ids, HttpServletRequest request) { public int batchDelete(String apiName, String ids, HttpServletRequest request) {
if (StringUtil.isNotEmpty(apiName)) { if (StringUtil.isNotEmpty(apiName)) {
insertLog(apiName, "批量删除,id集:" + ids, request); logService.insertLog(apiName, "批量删除,id集:" + ids, request);
return container.getCommonQuery(apiName).batchDelete(ids); return container.getCommonQuery(apiName).batchDelete(ids);
} }
return 0; return 0;
@@ -143,78 +144,9 @@ public class CommonQueryManager {
return 0; return 0;
} }
/**
* 获取用户id
* @param request
* @return
*/
public Long getUserId(HttpServletRequest request) {
Object userInfo = request.getSession().getAttribute("user");
if(userInfo!=null) {
User user = (User) userInfo;
return user.getId();
} else {
return null;
}
}
public String getModule(String apiName){
String moduleName = null;
switch (apiName) {
case "user":
moduleName = "用户"; break;
case "role":
moduleName = "角色"; break;
case "app":
moduleName = "应用"; break;
case "depot":
moduleName = "仓库"; break;
case "functions":
moduleName = "功能"; break;
case "inOutItem":
moduleName = "收支项目"; break;
case "unit":
moduleName = "计量单位"; break;
case "person":
moduleName = "经手人"; break;
case "userBusiness":
moduleName = "关联关系"; break;
case "systemConfig":
moduleName = "系统配置"; break;
case "materialProperty":
moduleName = "商品属性"; break;
case "account":
moduleName = "账户"; break;
case "supplier":
moduleName = "商家"; break;
case "materialCategory":
moduleName = "商品类型"; break;
case "material":
moduleName = "商品"; break;
case "depotHead":
moduleName = "单据表头"; break;
case "depotItem":
moduleName = "单据明细"; break;
case "accountHead":
moduleName = "财务表头"; break;
case "accountItem":
moduleName = "财务明细"; break;
}
return moduleName;
}
public void insertLog(String apiName, String type, HttpServletRequest request){
Log log = new Log();
log.setUserid(getUserId(request));
log.setOperation(getModule(apiName));
log.setClientip(getLocalIp(request));
log.setCreatetime(new Date());
Byte status = 0;
log.setStatus(status);
log.setContentdetails(type + getModule(apiName));
log.setRemark(type + getModule(apiName));
logMapper.insertSelective(log);
}
} }

View File

@@ -3,6 +3,7 @@ package com.jsh.erp.service.log;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.datasource.entities.Log; import com.jsh.erp.datasource.entities.Log;
import com.jsh.erp.datasource.entities.LogExample; import com.jsh.erp.datasource.entities.LogExample;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.mappers.LogMapper; import com.jsh.erp.datasource.mappers.LogMapper;
import com.jsh.erp.datasource.mappers.LogMapperEx; import com.jsh.erp.datasource.mappers.LogMapperEx;
import com.jsh.erp.datasource.vo.LogVo4List; import com.jsh.erp.datasource.vo.LogVo4List;
@@ -18,8 +19,11 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.List; import java.util.List;
import static com.jsh.erp.utils.Tools.getLocalIp;
@Service @Service
public class LogService { public class LogService {
private Logger logger = LoggerFactory.getLogger(LogService.class); private Logger logger = LoggerFactory.getLogger(LogService.class);
@@ -75,4 +79,77 @@ public class LogService {
return logMapper.deleteByExample(example); return logMapper.deleteByExample(example);
} }
/**
* 获取用户id
* @param request
* @return
*/
public Long getUserId(HttpServletRequest request) {
Object userInfo = request.getSession().getAttribute("user");
if(userInfo!=null) {
User user = (User) userInfo;
return user.getId();
} else {
return null;
}
}
public String getModule(String apiName){
String moduleName = null;
switch (apiName) {
case "user":
moduleName = "用户"; break;
case "role":
moduleName = "角色"; break;
case "app":
moduleName = "应用"; break;
case "depot":
moduleName = "仓库"; break;
case "functions":
moduleName = "功能"; break;
case "inOutItem":
moduleName = "收支项目"; break;
case "unit":
moduleName = "计量单位"; break;
case "person":
moduleName = "经手人"; break;
case "userBusiness":
moduleName = "关联关系"; break;
case "systemConfig":
moduleName = "系统配置"; break;
case "materialProperty":
moduleName = "商品属性"; break;
case "account":
moduleName = "账户"; break;
case "supplier":
moduleName = "商家"; break;
case "materialCategory":
moduleName = "商品类型"; break;
case "material":
moduleName = "商品"; break;
case "depotHead":
moduleName = "单据"; break;
case "depotItem":
moduleName = "单据明细"; break;
case "accountHead":
moduleName = "财务"; break;
case "accountItem":
moduleName = "财务明细"; break;
}
return moduleName;
}
public void insertLog(String apiName, String type, HttpServletRequest request){
Log log = new Log();
log.setUserid(getUserId(request));
log.setOperation(getModule(apiName));
log.setClientip(getLocalIp(request));
log.setCreatetime(new Date());
Byte status = 0;
log.setStatus(status);
log.setContentdetails(type + getModule(apiName));
log.setRemark(type + getModule(apiName));
logMapper.insertSelective(log);
}
} }