From 0ceb925bf4977c685d135780df1e0aa31a86251d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Sun, 20 Jan 2019 23:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=AE=B0=E5=BD=95=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/pages/manage/log.html | 4 +- .../erp/controller/ResourceController.java | 6 +- .../jsh/erp/service/CommonQueryManager.java | 93 ++++++++++++++++++- src/main/java/com/jsh/erp/utils/Tools.java | 2 + 4 files changed, 98 insertions(+), 7 deletions(-) diff --git a/erp_web/pages/manage/log.html b/erp_web/pages/manage/log.html index 4cf9117a..ead19bcf 100644 --- a/erp_web/pages/manage/log.html +++ b/erp_web/pages/manage/log.html @@ -122,7 +122,9 @@ {title: '操作IP', field: 'clientip', width: 90, align: "center"}, {title: '操作时间', field: 'createtime', width: 130, align: "center"}, {title: '操作详情', field: 'remark', width: 380}, - {title: '操作状态', field: 'status', width: 70}, + {title: '操作状态',field: 'status',width:70,align:"center",formatter:function(value){ + return value? "失败":"成功"; + }}, {title: '备注', field: 'remark', width: 180} ]], onLoadError: function () { diff --git a/src/main/java/com/jsh/erp/controller/ResourceController.java b/src/main/java/com/jsh/erp/controller/ResourceController.java index 523c3cfa..a1394ae6 100644 --- a/src/main/java/com/jsh/erp/controller/ResourceController.java +++ b/src/main/java/com/jsh/erp/controller/ResourceController.java @@ -74,7 +74,7 @@ public class ResourceController { @RequestParam("info") String beanJson, @RequestParam("id") Long id, HttpServletRequest request) { Map objectMap = new HashMap(); - int update = configResourceManager.update(apiName, beanJson, id); + int update = configResourceManager.update(apiName, beanJson, id, request); if(update > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { @@ -86,7 +86,7 @@ public class ResourceController { public String deleteResource(@PathVariable("apiName") String apiName, @PathVariable Long id, HttpServletRequest request) { Map objectMap = new HashMap(); - int delete = configResourceManager.delete(apiName, id); + int delete = configResourceManager.delete(apiName, id, request); if(delete > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { @@ -98,7 +98,7 @@ public class ResourceController { public String batchDeleteResource(@PathVariable("apiName") String apiName, @RequestParam("ids") String ids, HttpServletRequest request) { Map objectMap = new HashMap(); - int delete = configResourceManager.batchDelete(apiName, ids); + int delete = configResourceManager.batchDelete(apiName, ids, request); if(delete > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { diff --git a/src/main/java/com/jsh/erp/service/CommonQueryManager.java b/src/main/java/com/jsh/erp/service/CommonQueryManager.java index 56d3094b..a5c0b177 100644 --- a/src/main/java/com/jsh/erp/service/CommonQueryManager.java +++ b/src/main/java/com/jsh/erp/service/CommonQueryManager.java @@ -1,5 +1,8 @@ package com.jsh.erp.service; +import com.jsh.erp.datasource.entities.Log; +import com.jsh.erp.datasource.entities.User; +import com.jsh.erp.datasource.mappers.LogMapper; import com.jsh.erp.utils.StringUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -7,9 +10,12 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +import static com.jsh.erp.utils.Tools.getLocalIp; + /** * @author jishenghua 752718920 2018-10-7 15:25:58 */ @@ -19,6 +25,9 @@ public class CommonQueryManager { @Resource private InterfaceContainer container; + @Resource + private LogMapper logMapper; + /** * 查询单条 * @@ -67,6 +76,7 @@ public class CommonQueryManager { @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int insert(String apiName, String beanJson, HttpServletRequest request) { if (StringUtil.isNotEmpty(apiName)) { + insertLog(apiName, "新增", request); return container.getCommonQuery(apiName).insert(beanJson, request); } return 0; @@ -80,8 +90,9 @@ public class CommonQueryManager { * @return */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public int update(String apiName, String beanJson, Long id) { + public int update(String apiName, String beanJson, Long id, HttpServletRequest request) { if (StringUtil.isNotEmpty(apiName)) { + insertLog(apiName, "更新,id:" + id, request); return container.getCommonQuery(apiName).update(beanJson, id); } return 0; @@ -94,8 +105,9 @@ public class CommonQueryManager { * @return */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public int delete(String apiName, Long id) { + public int delete(String apiName, Long id, HttpServletRequest request) { if (StringUtil.isNotEmpty(apiName)) { + insertLog(apiName, "删除,id:" + id, request); return container.getCommonQuery(apiName).delete(id); } return 0; @@ -108,8 +120,9 @@ public class CommonQueryManager { * @return */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public int batchDelete(String apiName, String ids) { + public int batchDelete(String apiName, String ids, HttpServletRequest request) { if (StringUtil.isNotEmpty(apiName)) { + insertLog(apiName, "批量删除,id集:" + ids, request); return container.getCommonQuery(apiName).batchDelete(ids); } return 0; @@ -129,4 +142,78 @@ public class CommonQueryManager { 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); + } + } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/utils/Tools.java b/src/main/java/com/jsh/erp/utils/Tools.java index 31c23cdb..1fba5563 100644 --- a/src/main/java/com/jsh/erp/utils/Tools.java +++ b/src/main/java/com/jsh/erp/utils/Tools.java @@ -1,5 +1,7 @@ package com.jsh.erp.utils; +import com.alibaba.druid.util.StringUtils; + import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.UnsupportedEncodingException;