Commit 04d22516 authored by suhuiguang's avatar suhuiguang

1.增加记录操作日志

parent f27e70fb
package com.yeejoin.amos.boot.module.common.api.dao;
import com.yeejoin.amos.boot.module.common.api.dto.ESUserOperateLogDto;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
/**
* @author Administrator
*/
@Repository
public interface ESUserOperateLogDao extends PagingAndSortingRepository<ESUserOperateLogDto, String> {
}
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import java.util.Date;
/**
* @author Administrator
* 用户操作日志
*/
@Data
@Document(indexName = "user_operate_log", shards = 2)
public class ESUserOperateLogDto {
@Id
private String id;
@Field(type = FieldType.Text)
private String methodName;
@Field(type = FieldType.Text)
private String remoteIp;
@Field(type = FieldType.Text)
private String methodLabel;
@Field(type = FieldType.Text)
private String params;
@Field(type = FieldType.Text)
private String result;
@Field(type = FieldType.Keyword)
private String traceId;
@Field(type = FieldType.Keyword)
private String userId;
@Field(type = FieldType.Long)
private Long createDate;
@Field(type = FieldType.Text)
private String serviceIp;
@Field(type = FieldType.Text)
private String serviceName;
@Field(type = FieldType.Long)
private Long requestTimeMills;
@Field(type = FieldType.Keyword)
private String loginId;
@Field(type = FieldType.Text)
private String token;
@Field(type = FieldType.Text)
private String appKey;
@Field(type = FieldType.Text)
private String product;
@Field(type = FieldType.Text)
private String requestDate;
}
package com.yeejoin.amos.boot.module.common.biz.event;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.common.api.dao.ESUserOperateLogDao;
import com.yeejoin.amos.boot.module.common.api.dto.ESUserOperateLogDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.component.event.RestEvent;
import org.typroject.tyboot.component.event.RestEventHandler;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
/**
* @author Administrator
*/
@Component(value = "operateLogRestEventHandler")
@Slf4j
public class OperateLogRestEventHandler extends RestEventHandler {
@Value("${spring.application.name}")
private String applicationName;
private ESUserOperateLogDao esUserOperateLogDao;
public OperateLogRestEventHandler(ESUserOperateLogDao esUserOperateLogDao) {
this.esUserOperateLogDao = esUserOperateLogDao;
}
@Override
@Async
protected void handleEvent(RestEvent restEvent) {
try {
StopWatch watch = new StopWatch();
watch.start();
Date date = new Date();
ESUserOperateLogDto userOperateLogDto = new ESUserOperateLogDto();
userOperateLogDto.setCreateDate(date.getTime());
userOperateLogDto.setTraceId(restEvent.getRequestContextModel().getTraceId());
userOperateLogDto.setRemoteIp(restEvent.getRequestContextModel().getRequestIP());
userOperateLogDto.setMethodName(restEvent.getMethodName());
userOperateLogDto.setMethodLabel(restEvent.getMethodLabel());
userOperateLogDto.setUserId(restEvent.getRequestContextModel().getExcutedUserId());
userOperateLogDto.setParams(JSONObject.toJSONString(restEvent.getParams()));
userOperateLogDto.setResult(JSONObject.toJSONString(restEvent.getSource()));
userOperateLogDto.setServiceIp(InetAddress.getLocalHost().getHostAddress());
userOperateLogDto.setServiceName(applicationName);
userOperateLogDto.setRequestTimeMills(restEvent.getRequestContextModel().getRequestTimeMills());
userOperateLogDto.setAppKey(restEvent.getRequestContextModel().getAppKey());
userOperateLogDto.setToken(restEvent.getRequestContextModel().getToken());
userOperateLogDto.setProduct(restEvent.getRequestContextModel().getProduct());
userOperateLogDto.setLoginId(restEvent.getRequestContextModel().getLoginId());
userOperateLogDto.setRequestDate(DateUtil.formatDateTime(date));
esUserOperateLogDao.save(userOperateLogDto);
watch.stop();
log.info("用户操作日志写入es耗时:{}秒", watch.getTotalTimeSeconds());
} catch (UnknownHostException e) {
log.error(e.getMessage());
}
}
}
......@@ -30,6 +30,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -288,6 +289,7 @@ public class CommonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/saveOrSubmit")
@ApiOperation(httpMethod = "POST", value = "业务发起公共接口", notes = "业务发起公共接口")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> save(@RequestParam(value = "submitType", required = false) String submitType,
@RequestBody Map<String, Object> map) {
ReginParams reginParams = getSelectedOrgInfo();
......@@ -301,6 +303,7 @@ public class CommonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/saveOrUpdateHistory")
@ApiOperation(httpMethod = "POST", value = "历史平台登记业务发起公共接口", notes = "历史平台登记业务发起公共接口")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> saveOrUpdateHistory(@RequestBody Map<String, Object> map) {
return ResponseHelper.buildResponse(commonService.invokeBusinessType(map));
}
......@@ -312,6 +315,7 @@ public class CommonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/updateHistory")
@ApiOperation(httpMethod = "POST", value = "历史平台登记业务使用登记单编辑公共入口", notes = "历史平台登记业务使用登记单编辑公共入口")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> updateHistory(@RequestBody Map<String, Object> map) {
return ResponseHelper.buildResponse(commonService.updateHistory(map));
}
......@@ -392,6 +396,7 @@ public class CommonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/transfer")
@ApiOperation(httpMethod = "POST", value = "公共转办接口", notes = "公共转办接口")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> transfer(@RequestBody Map<String, Object> map) {
Object result = commonService.transfer(map);
return ResponseHelper.buildResponse(result);
......
......@@ -18,6 +18,7 @@ import org.springframework.core.io.Resource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -51,6 +52,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/submit")
@RestEventTrigger(value = "operateLogRestEventHandler")
@ApiOperation(httpMethod = "POST", value = "设备注册和更新信息", notes = "设备注册和更新信息")
public ResponseModel<Object> submit(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.equipmentRegisterSubmit(paramMap));
......@@ -175,6 +177,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@PostMapping("/importPressureVesselData")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "压力容器设备批量导入")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<?> importPressureVesselData(@RequestBody Map<String, Object> paramMap,@RequestPart MultipartFile multipartFile) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.importPressureVesselData(paramMap, multipartFile));
}
......@@ -186,6 +189,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/importData")
@ApiOperation(httpMethod = "POST", value = "气瓶批量导入", notes = "气瓶批量导入")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<?> importPressureData (@RequestPart("file") MultipartFile multipartFile) throws Exception {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.importPressureData(multipartFile));
}
......@@ -196,6 +200,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/savePressureVesselData")
@ApiOperation(httpMethod = "POST", value = "气瓶批量保存", notes = "气瓶批量保存")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<?> savePressureVesselData(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.savePressureVesselData(paramMap));
}
......
......@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -58,6 +59,7 @@ public class JgInstallationByWorkFlowController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/cancel")
@ApiOperation(httpMethod = "POST", value = "安装告知撤销", notes = "安装告知撤销")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<JgInstallationNoticeDto> cancel(@RequestBody Map<String, Object> model) {
JgInstallationNoticeDto installationInfo = BeanUtil.mapToBean(((LinkedHashMap) model.get("installationInfo")), JgInstallationNoticeDto.class, true);
if (Objects.isNull(installationInfo)) {
......@@ -74,6 +76,7 @@ public class JgInstallationByWorkFlowController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/accept")
@RestEventTrigger(value = "operateLogRestEventHandler")
@ApiOperation(httpMethod = "POST", value = "安装告知受理", notes = "安装告知受理")
public ResponseModel<JgInstallationNoticeDto> accept(@RequestBody Map<String, Object> model, String op) {
// TODO 受理安装告知流程
......
......@@ -14,6 +14,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -46,6 +47,7 @@ public class JgInstallationNoticeController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增安装告知", notes = "新增安装告知")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<String> save(@RequestParam String submitType, @RequestBody JSONObject model) {
ReginParams reginParams = getSelectedOrgInfo();
......@@ -61,6 +63,7 @@ public class JgInstallationNoticeController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/update")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新安装告知", notes = "根据sequenceNbr更新安装告知")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<JgInstallationNoticeDto> updateBySequenceNbrJgInstallationNotice(@RequestParam String submitType, @RequestBody Map<String, Object> model, @RequestParam(value = "op", required = false) String op) {
JgInstallationNoticeDto installationInfo = BeanUtil.mapToBean(((LinkedHashMap) model.get("installationInfo")), JgInstallationNoticeDto.class, true);
if (Objects.isNull(installationInfo)) {
......
......@@ -20,6 +20,7 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -44,6 +45,7 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> save(@RequestBody JSONObject map) {
return ResponseHelper.buildResponse(jgUseRegistrationServiceImpl.save(map));
}
......@@ -51,6 +53,7 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/flowExecute")
@ApiOperation(httpMethod = "POST", value = "执行流程", notes = "执行流程")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> flowExecute(@RequestBody JSONObject map) {
jgUseRegistrationServiceImpl.flowExecute(Long.valueOf(String.valueOf(map.get("sequenceNbr"))),
String.valueOf(map.get("instanceId")),
......@@ -66,6 +69,7 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/withdraw")
@ApiOperation(httpMethod = "POST", value = "撤回", notes = "撤回")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> withdraw(@RequestBody JSONObject map) {
jgUseRegistrationServiceImpl.withdraw(String.valueOf(map.get("instanceId")), String.valueOf(map.get("nextTaskId")),
String.valueOf(map.getOrDefault("manageType", "")));
......@@ -231,6 +235,7 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "使用登记单条作废", notes = "使用登记单条作废")
@PutMapping(value = "/cancel/application")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<JgUseRegistration> cancelApplication(@RequestBody JgUseRegistrationDto jgUseRegistration) {
JgUseRegistration result = jgUseRegistrationServiceImpl.cancelApplication(jgUseRegistration.getSequenceNbr(), jgUseRegistration.getCancelReason());
return ResponseHelper.buildResponse(result);
......@@ -261,6 +266,7 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/saveHistoryEquip")
@ApiOperation(httpMethod = "POST", value = "新增历史设备登记", notes = "新增历史设备登记")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Object> saveHistoryEquip(@RequestBody JSONObject map) {
JSONObject firstMap = JSONObject.parseObject(JSONObject.toJSONString(map.get("first")));
JSONObject secondMap = JSONObject.parseObject(JSONObject.toJSONString(map.get("second")));
......
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