From 52846896fa9e1b09f8038bf813505dc7a11bebdd Mon Sep 17 00:00:00 2001 From: fanghongchao <601470458@qq.com> Date: Mon, 3 Dec 2018 11:42:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E7=94=A8=E6=88=B7UI?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E5=BC=80=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/UISettingsController.java | 87 ++++++++++++++----- .../omms/adminapi/dto/OpLogSwitchDto.java | 76 ++++++++++++++++ .../omms/adminapi/elasticsearch/CommCode.java | 18 ++++ .../adminapi/elasticsearch/UserOptLog.java | 2 +- .../service/IOplogSwithcInfoService.java | 11 +++ .../impl/OplogSwithcInfoServiceImpl.java | 52 +++++++++++ 6 files changed, 222 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/gzzn/omms/adminapi/dto/OpLogSwitchDto.java create mode 100644 src/main/java/com/gzzn/omms/adminapi/service/IOplogSwithcInfoService.java create mode 100644 src/main/java/com/gzzn/omms/adminapi/service/impl/OplogSwithcInfoServiceImpl.java diff --git a/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java b/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java index f77bb33..c94a681 100644 --- a/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java +++ b/src/main/java/com/gzzn/omms/adminapi/controller/settings/UISettingsController.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiOperation; import java.net.InetSocketAddress; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; import java.util.stream.Collectors; @@ -22,12 +23,14 @@ import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSONObject; import com.gzzn.omms.adminapi.domain.primary.dao.settings.UisettingsDao; import com.gzzn.omms.adminapi.domain.primary.entity.settings.Uisettings; +import com.gzzn.omms.adminapi.dto.OpLogSwitchDto; import com.gzzn.omms.adminapi.dto.ResponseDto; import com.gzzn.omms.adminapi.dto.settings.UisettingsDto; import com.gzzn.omms.adminapi.dto.settings.convert.UisettingsConvert; import com.gzzn.omms.adminapi.elasticsearch.CommCode; import com.gzzn.omms.adminapi.elasticsearch.ElasticsearchUtil; import com.gzzn.omms.adminapi.elasticsearch.UserOptLog; +import com.gzzn.omms.adminapi.service.IOplogSwithcInfoService; import com.gzzn.omms.adminapi.service.IUserService; import com.gzzn.omms.adminapi.utils.CommonUtils; import com.gzzn.omms.adminapi.utils.JsonUtil; @@ -60,7 +63,9 @@ public class UISettingsController { */ @Autowired private IUserService userService; - + @Autowired + private IOplogSwithcInfoService oplogSwithcInfoService; + private List opLogSwitchInfos = null; /** * 根据条件查找当前用户所有UI设置 * @return @@ -127,31 +132,67 @@ public class UISettingsController { uisettings.setUserid(userService.getCurrentUserId()); uisettings = uisettingsDao.save(uisettings); - try { - if (!ElasticsearchUtil.isIndexExist(INDEX_NAME)) { - ElasticsearchUtil.createIndex(INDEX_NAME); - } - - InetSocketAddress remoteAddress = userService.getUserRemoteAddress(); - UserOptLog oplog = new UserOptLog(userService.getCurrentUserId(),userService.getCurrentUserName(), - userService.getCurrentUserRealName(), null==remoteAddress?"未知":remoteAddress.getHostString(), - System.currentTimeMillis()); - oplog.setOpt_type(optType); - oplog.setLog_type(CommCode.LOG_TYPE_UISETTING); - oplog.setSummary("保存用户{"+userService.getCurrentUserName()+"}的UI设置"); - //设置日志类容 jsonarry 历史及最新的 - JSONObject log_content = new JSONObject(); - log_content.put("newData", JsonUtil.getString(uisettings)); - log_content.put("oldData", oldData); - oplog.setLog_content(log_content.toString()); - JSONObject logJson = JSONObject.parseObject(JsonUtil.getString(oplog)); - String id = ElasticsearchUtil.addData(logJson, INDEX_NAME, OPLOG_ES_TYPE); - logger.info("保存用户设置UI操作日志至Elatsticsearch成功:id="+id); - } catch (Exception e) { - logger.error("保存用户设置UI操作日志至Elatsticsearch异常:", e); + if(ifNeedMarkLog(CommCode.OPLOG_LOG_TYPE_LEVEL,CommCode.LOG_TYPE_UISETTING)){ //操作日志开关控制 + try { + if (!ElasticsearchUtil.isIndexExist(INDEX_NAME)) { + ElasticsearchUtil.createIndex(INDEX_NAME); + } + + InetSocketAddress remoteAddress = userService.getUserRemoteAddress(); + UserOptLog oplog = new UserOptLog(userService.getCurrentUserId(),userService.getCurrentUserName(), + userService.getCurrentUserRealName(), null==remoteAddress?"未知":remoteAddress.getHostString(), + System.currentTimeMillis()); + oplog.setOpt_type(optType); + oplog.setLog_type(CommCode.LOG_TYPE_UISETTING); + oplog.setSummary("保存用户{"+userService.getCurrentUserName()+"}的UI设置"); + //设置日志类容 jsonarry 历史及最新的 + JSONObject log_content = new JSONObject(); + log_content.put("newData", JsonUtil.getString(uisettings)); + log_content.put("oldData", oldData); + oplog.setLog_content(log_content.toString()); + JSONObject logJson = JSONObject.parseObject(JsonUtil.getString(oplog)); + String id = ElasticsearchUtil.addData(logJson, INDEX_NAME, OPLOG_ES_TYPE); + logger.info("保存用户设置UI操作日志至Elatsticsearch成功:id="+id); + } catch (Exception e) { + logger.error("保存用户设置UI操作日志至Elatsticsearch异常:", e); + } } return ResponseDto.success(uisettings.getId()); } + + /** + * 初始化日志开关信息 + */ + private void intOpLogSwitchInfos(){ + if(null==this.opLogSwitchInfos || this.opLogSwitchInfos.size()<=0){ + UserOptLog userOptLog = new UserOptLog(); + this.opLogSwitchInfos = oplogSwithcInfoService.getOpLogSwitchByLevleAndName(CommCode.OPLOG_MODEL_LEVEL, userOptLog.getModel_name()); + } + } + /** + * 通过level 和name 查询是否需要进行日志记录 + * @param level + * @param name + * @return true:需要 false:不需要 + */ + private Boolean ifNeedMarkLog(Byte level,String name){ + this.intOpLogSwitchInfos(); + Boolean needMark = true; + for(Object obj:this.opLogSwitchInfos){ + LinkedHashMap linkMap = (LinkedHashMap) obj; + Integer objLevel = (Integer) linkMap.get("level"); + String objName = (String) linkMap.get("name"); + Boolean objIfSwitch = (Boolean) linkMap.get("ifSwitch"); + if(objLevel getOpLogSwitchByLevleAndName(Byte level,String name); +} diff --git a/src/main/java/com/gzzn/omms/adminapi/service/impl/OplogSwithcInfoServiceImpl.java b/src/main/java/com/gzzn/omms/adminapi/service/impl/OplogSwithcInfoServiceImpl.java new file mode 100644 index 0000000..9cdbcc0 --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/service/impl/OplogSwithcInfoServiceImpl.java @@ -0,0 +1,52 @@ +package com.gzzn.omms.adminapi.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import com.gzzn.omms.adminapi.dto.OpLogSwitchDto; +import com.gzzn.omms.adminapi.dto.ResponseDto; +import com.gzzn.omms.adminapi.service.IOplogSwithcInfoService; +import com.gzzn.omms.adminapi.utils.JsonUtil; + +@Service +public class OplogSwithcInfoServiceImpl implements IOplogSwithcInfoService{ + + @Value("${sysApi.getOpLogSwitchByLevleAndNameUrl}") + private String getOpLogSwitchByLevleAndNameUrl; + + @Autowired + private RestTemplate restTemplate; + + @Override + public List getOpLogSwitchByLevleAndName(Byte level,String name) { + String url = getOpLogSwitchByLevleAndNameUrl; + url = url.replace("{level}", level.toString()) + .replace("{name}", name); + ResponseEntity responseEntity = restTemplate + .getForEntity(url, ResponseDto.class); + + if(!responseEntity.getStatusCode().equals(HttpStatus.OK)) + { + throw new RuntimeException("获取公共url信息失败:" + responseEntity.getStatusCode()); + } + + ResponseDto responseDto = responseEntity.getBody(); + + if(responseDto.getIs_success() == false) + { + throw new RuntimeException("获取公共url信息失败::" + responseDto.getErr_code() + ",msg:"+responseDto.getErr_msg()); + } + + String srtJson = JsonUtil.getString(responseDto.getBody()); + List result = JsonUtil.getObject(srtJson, List.class); + + return result; + } + +}