Browse Source

日志模块,增加ip,app,client,operatorName,operatorMobile字段

dev
wxz 4 years ago
parent
commit
9e873d2595
  1. 4
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/controller/LogOperationController.java
  2. 15
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/entity/LogOperationEntity.java
  3. 63
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/bean/log/LogOperationHelper.java
  4. 11
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/bean/log/OperatorInfo.java
  5. 16
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/AuthOperationLogListener.java
  6. 9
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/ProjectOperationLogListener.java
  7. 5
      epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.3__add_log_ope_table.sql
  8. 5
      epmet-admin/epmet-admin-server/src/main/resources/mapper/LogOperationDao.xml
  9. 18
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  10. 6
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/LoginMQMsg.java
  11. 8
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java
  12. 20
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
  13. 67
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  14. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

4
epmet-admin/epmet-admin-server/src/main/java/com/epmet/controller/LogOperationController.java

@ -1,6 +1,7 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.IpUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.LogOperationListFormDTO; import com.epmet.dto.form.LogOperationListFormDTO;
@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -27,7 +29,7 @@ public class LogOperationController {
private LoginUserUtil loginUserUtil; private LoginUserUtil loginUserUtil;
@PostMapping("/list") @PostMapping("/list")
public Result<List<LogOperationResultDTO>> listLogOperations(@RequestBody LogOperationListFormDTO input) { public Result<List<LogOperationResultDTO>> listLogOperations(@RequestBody LogOperationListFormDTO input, HttpServletRequest request) {
ValidatorUtils.validateEntity(input); ValidatorUtils.validateEntity(input);
String condition = input.getCondition(); String condition = input.getCondition();
Integer pageNo = input.getPageNo(); Integer pageNo = input.getPageNo();

15
epmet-admin/epmet-admin-server/src/main/java/com/epmet/entity/LogOperationEntity.java

@ -49,6 +49,12 @@ public class LogOperationEntity extends BaseEpmetEntity {
private String typeDisplay; private String typeDisplay;
private String ip;
private String fromApp;
private String fromClient;
/** /**
* 内容 * 内容
*/ */
@ -63,6 +69,15 @@ public class LogOperationEntity extends BaseEpmetEntity {
* 操作人ID * 操作人ID
*/ */
private String operatorId; private String operatorId;
/**
* 操作人姓名
*/
private String operatorName;
/**
* 操作人手机号
*/
private String operatorMobile;
/** /**
* 操作时间,该时间不是插入数据的时间而是操作发生的真实时间 * 操作时间,该时间不是插入数据的时间而是操作发生的真实时间

63
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/bean/log/LogOperationHelper.java

@ -0,0 +1,63 @@
package com.epmet.mq.listener.bean.log;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
/**
* 操作日志帮助类 单例
*/
public class LogOperationHelper implements ResultDataResolver {
private EpmetUserOpenFeignClient userOpenFeignClient;
private LogOperationHelper() {
}
/**
* @Description 利用类只能加载一次的特性保证类静态变量只能生成一份实现单例
* @return
* @author wxz
* @date 2021.06.09 16:55
*/
private static class SingletonInnerClass {
public static LogOperationHelper instance = new LogOperationHelper();
}
/**
* @Description 获取实例
* @return
* @author wxz
* @date 2021.06.09 16:54
*/
public static LogOperationHelper getInstance() {
return SingletonInnerClass.instance;
}
/**
* @Description 获取操作人信息
* @return
* @author wxz
* @date 2021.06.09 16:57
*/
public OperatorInfo getOperatorInfo(String userId) {
if (userOpenFeignClient == null) {
synchronized (this) {
if (userOpenFeignClient == null) {
userOpenFeignClient = SpringContextUtils.getBean(EpmetUserOpenFeignClient.class);
}
}
}
CustomerStaffDTO form = new CustomerStaffDTO();
form.setUserId(userId);
Result<CustomerStaffDTO> result = userOpenFeignClient.getCustomerStaffInfoByUserId(form);
CustomerStaffDTO staffInfo = getResultDataOrThrowsException(result, ServiceConstant.EPMET_ADMIN_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(),
"调用epmet-user服务获取staff信息发生异常");
return new OperatorInfo(staffInfo.getMobile(), staffInfo.getRealName());
}
}

11
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/bean/log/OperatorInfo.java

@ -0,0 +1,11 @@
package com.epmet.mq.listener.bean.log;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class OperatorInfo {
private String mobile;
private String name;
}

16
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/AuthOperationLogListener.java

@ -3,11 +3,20 @@ package com.epmet.mq.listener.listener;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.epmet.auth.constants.AuthOperationEnum; import com.epmet.auth.constants.AuthOperationEnum;
import com.epmet.commons.rocketmq.messages.LoginMQMsg; import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.utils.IpUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.entity.LogOperationEntity; import com.epmet.entity.LogOperationEntity;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.mq.listener.bean.log.LogOperationHelper;
import com.epmet.mq.listener.bean.log.OperatorInfo;
import com.epmet.service.LogOperationService; import com.epmet.service.LogOperationService;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
@ -48,12 +57,19 @@ public class AuthOperationLogListener implements MessageListenerConcurrently {
logger.info("认证操作日志监听器-收到消息内容:{}", msg); logger.info("认证操作日志监听器-收到消息内容:{}", msg);
LoginMQMsg msgObj = JSON.parseObject(msg, LoginMQMsg.class); LoginMQMsg msgObj = JSON.parseObject(msg, LoginMQMsg.class);
//获取操作人信息
OperatorInfo operatorInfo = LogOperationHelper.getInstance().getOperatorInfo(msgObj.getUserId());
LogOperationEntity logEntity = new LogOperationEntity(); LogOperationEntity logEntity = new LogOperationEntity();
logEntity.setCategory(messageExt.getTopic()); logEntity.setCategory(messageExt.getTopic());
logEntity.setType(tags); logEntity.setType(tags);
logEntity.setTypeDisplay(AuthOperationEnum.getDisplay(tags)); logEntity.setTypeDisplay(AuthOperationEnum.getDisplay(tags));
logEntity.setIp(msgObj.getIp());
logEntity.setFromApp(msgObj.getFromApp());
logEntity.setFromClient(msgObj.getFromClient());
logEntity.setTargetId(""); logEntity.setTargetId("");
logEntity.setOperatorId(msgObj.getUserId()); logEntity.setOperatorId(msgObj.getUserId());
logEntity.setOperatorName(operatorInfo.getName());
logEntity.setOperatorMobile(operatorInfo.getMobile());
logEntity.setOperatingTime(msgObj.getLoginTime()); logEntity.setOperatingTime(msgObj.getLoginTime());
logEntity.setContent("成功登录系统"); logEntity.setContent("成功登录系统");

9
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/ProjectOperationLogListener.java

@ -8,6 +8,8 @@ import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.entity.LogOperationEntity; import com.epmet.entity.LogOperationEntity;
import com.epmet.mq.listener.bean.log.LogOperationHelper;
import com.epmet.mq.listener.bean.log.OperatorInfo;
import com.epmet.service.LogOperationService; import com.epmet.service.LogOperationService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@ -51,12 +53,19 @@ public class ProjectOperationLogListener implements MessageListenerConcurrently
String content = StringUtils.isBlank(msgObj.getOperationBrief()) ? "" : msgObj.getOperationBrief(); String content = StringUtils.isBlank(msgObj.getOperationBrief()) ? "" : msgObj.getOperationBrief();
OperatorInfo operatorInfo = LogOperationHelper.getInstance().getOperatorInfo(msgObj.getOperatorId());
LogOperationEntity logEntity = new LogOperationEntity(); LogOperationEntity logEntity = new LogOperationEntity();
logEntity.setCategory(messageExt.getTopic()); logEntity.setCategory(messageExt.getTopic());
logEntity.setType(msgObj.getOperation()); logEntity.setType(msgObj.getOperation());
logEntity.setTypeDisplay(getOperationTypeDisplay(msgObj.getOperation())); logEntity.setTypeDisplay(getOperationTypeDisplay(msgObj.getOperation()));
logEntity.setTargetId(msgObj.getProjectId()); logEntity.setTargetId(msgObj.getProjectId());
logEntity.setIp(msgObj.getIp());
logEntity.setFromApp(msgObj.getFromApp());
logEntity.setFromClient(msgObj.getFromClient());
logEntity.setOperatorId(msgObj.getOperatorId()); logEntity.setOperatorId(msgObj.getOperatorId());
logEntity.setOperatorMobile(operatorInfo.getMobile());
logEntity.setOperatorName(operatorInfo.getName());
logEntity.setOperatingTime(msgObj.getOperatingTime()); logEntity.setOperatingTime(msgObj.getOperatingTime());
logEntity.setContent(content); logEntity.setContent(content);

5
epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.3__add_log_ope_table.sql

@ -4,8 +4,13 @@ CREATE TABLE `log_operation` (
`TYPE_DISPLAY` varchar(64) NOT NULL COMMENT '操作类型中文展示', `TYPE_DISPLAY` varchar(64) NOT NULL COMMENT '操作类型中文展示',
`CONTENT` varchar(512) NOT NULL COMMENT '内容', `CONTENT` varchar(512) NOT NULL COMMENT '内容',
`CATEGORY` varchar(64) NOT NULL COMMENT '操作类型大类。例如login和logout都属于login大类。项目立项,项目流转,项目结案都属于项目大类', `CATEGORY` varchar(64) NOT NULL COMMENT '操作类型大类。例如login和logout都属于login大类。项目立项,项目流转,项目结案都属于项目大类',
`IP` varchar(15) NOT NULL COMMENT 'IP地址',
`FROM_APP` varchar(10) NOT NULL COMMENT '所用的APP',
`FROM_CLIENT` varchar(10) NOT NULL COMMENT '所用的client',
`TARGET_ID` varchar(64) NOT NULL COMMENT '操作目标ID', `TARGET_ID` varchar(64) NOT NULL COMMENT '操作目标ID',
`OPERATOR_ID` varchar(64) NOT NULL COMMENT '操作人ID', `OPERATOR_ID` varchar(64) NOT NULL COMMENT '操作人ID',
`OPERATOR_NAME` varchar(15) NOT NULL COMMENT '操作者姓名',
`OPERATOR_MOBILE` varchar(11) NOT NULL COMMENT '操作者电话',
`OPERATING_TIME` datetime NOT NULL COMMENT '操作时间,该时间不是插入数据的时间,而是操作发生的真实时间', `OPERATING_TIME` datetime NOT NULL COMMENT '操作时间,该时间不是插入数据的时间,而是操作发生的真实时间',
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁', `REVISION` int(11) NOT NULL COMMENT '乐观锁',

5
epmet-admin/epmet-admin-server/src/main/resources/mapper/LogOperationDao.xml

@ -9,8 +9,13 @@
<result property="typeDisplay" column="TYPE_DISPLAY"/> <result property="typeDisplay" column="TYPE_DISPLAY"/>
<result property="content" column="CONTENT"/> <result property="content" column="CONTENT"/>
<result property="targetId" column="TARGET_ID"/> <result property="targetId" column="TARGET_ID"/>
<result property="ip" column="IP"/>
<result property="fromApp" column="FROM_APP"/>
<result property="fromClient" column="FROM_CLIENT"/>
<result property="category" column="CATEGORY"/> <result property="category" column="CATEGORY"/>
<result property="operatorId" column="OPERATOR_ID"/> <result property="operatorId" column="OPERATOR_ID"/>
<result property="operatorName" column="OPERATOR_NAME"/>
<result property="operatorMobile" column="OPERATOR_MOBILE"/>
<result property="operatingTime" column="OPERATING_TIME"/> <result property="operatingTime" column="OPERATING_TIME"/>
<result property="delFlag" column="DEL_FLAG"/> <result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/> <result property="revision" column="REVISION"/>

18
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
import com.epmet.auth.constants.AuthOperationConstants; import com.epmet.auth.constants.AuthOperationConstants;
import com.epmet.common.token.constant.LoginConstant; import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.rocketmq.messages.LoginMQMsg; import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
@ -32,6 +33,7 @@ import com.epmet.jwt.JwtTokenProperties;
import com.epmet.jwt.JwtTokenUtils; import com.epmet.jwt.JwtTokenUtils;
import com.epmet.redis.CaptchaRedis; import com.epmet.redis.CaptchaRedis;
import com.epmet.service.ThirdLoginService; import com.epmet.service.ThirdLoginService;
import com.sun.deploy.association.utility.AppConstants;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
@ -40,7 +42,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -183,11 +188,11 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
//7.发送登录事件 //7.发送登录事件
try { try {
sendLoginEvent(staffLatestAgencyResultDTO.getStaffId(), formDTO.getAppId()); sendLoginEvent(staffLatestAgencyResultDTO.getStaffId(), formDTO.getAppId(), AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP);
} catch (RenException e) { } catch (RenException e) {
log.error(e.getInternalMsg()); log.error(e.getInternalMsg());
} catch (Exception e) { } catch (Exception e) {
log.error("【工作端workLogin登录】发送登录事件失败,程序继续执行。错误信息"); log.error("【工作端workLogin登录】发送登录事件失败,程序继续执行。");
} }
return userTokenResultDTO; return userTokenResultDTO;
@ -414,7 +419,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
//6.发送登录事件 //6.发送登录事件
try { try {
sendLoginEvent(customerStaff.getUserId(), formDTO.getAppId()); sendLoginEvent(customerStaff.getUserId(), formDTO.getAppId(), AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP);
} catch (RenException e) { } catch (RenException e) {
log.error(e.getInternalMsg()); log.error(e.getInternalMsg());
} catch (Exception e) { } catch (Exception e) {
@ -670,11 +675,16 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
* @author wxz * @author wxz
* @date 2021.06.08 15:27 * @date 2021.06.08 15:27
*/ */
private void sendLoginEvent(String userId, String appId) { private void sendLoginEvent(String userId, String appId, String fromApp, String fromClient) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
LoginMQMsg loginMQMsg = new LoginMQMsg(); LoginMQMsg loginMQMsg = new LoginMQMsg();
loginMQMsg.setUserId(userId); loginMQMsg.setUserId(userId);
loginMQMsg.setLoginTime(new Date()); loginMQMsg.setLoginTime(new Date());
loginMQMsg.setAppId(appId); loginMQMsg.setAppId(appId);
loginMQMsg.setIp(IpUtils.getIpAddr(request));
loginMQMsg.setFromApp(fromApp);
loginMQMsg.setFromClient(fromClient);
SystemMsgFormDTO form = new SystemMsgFormDTO(); SystemMsgFormDTO form = new SystemMsgFormDTO();
form.setMessageType(AuthOperationConstants.LOGIN); form.setMessageType(AuthOperationConstants.LOGIN);

6
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/LoginMQMsg.java

@ -17,4 +17,10 @@ public class LoginMQMsg {
*/ */
private Date loginTime; private Date loginTime;
private String ip;
private String fromApp;
private String fromClient;
} }

8
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java

@ -29,4 +29,12 @@ public class ProjectChangedMQMsg implements Serializable {
*/ */
private String operationBrief; private String operationBrief;
/**
* 操作者ip
*/
private String ip;
private String fromApp;
private String fromClient;
} }

20
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

@ -31,7 +31,9 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.IpUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant; import com.epmet.constant.ProjectConstant;
@ -71,7 +73,10 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -116,6 +121,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired @Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Override @Override
public PageData<ProjectProcessDTO> page(Map<String, Object> params) { public PageData<ProjectProcessDTO> page(Map<String, Object> params) {
@ -387,14 +394,17 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
} }
//生成消息内容,发送mq事件 //生成消息内容,发送mq事件
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(), ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(),
ProjectConstant.OPERATION_TRANSFER, ProjectConstant.OPERATION_TRANSFER,
formDTO.getProjectId(), formDTO.getProjectId(),
staffEntity.getStaffId(), staffEntity.getStaffId(),
new Date(), new Date(),
getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName())); getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");
@ -763,12 +773,16 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(), ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(),
ProjectConstant.OPERATION_TRANSFER, ProjectConstant.OPERATION_TRANSFER,
formDTO.getProjectId(), formDTO.getProjectId(),
staffEntity.getStaffId(), staffEntity.getStaffId(),
new Date(), new Date(),
getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName())); getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");

67
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -29,6 +29,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.*;
import com.epmet.constant.ParameterKeyConstant; import com.epmet.constant.ParameterKeyConstant;
import com.epmet.constant.ProjectConstant; import com.epmet.constant.ProjectConstant;
@ -67,9 +68,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
@ -135,6 +139,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private ResiGroupOpenFeignClient resiGroupOpenFeignClient; private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
@Autowired @Autowired
private ProjectSatisfactionStatisticsDao statisticsDao; private ProjectSatisfactionStatisticsDao statisticsDao;
@Autowired
private LoginUserUtil loginUserUtil;
private final static String ONE_DAY = "<1"; private final static String ONE_DAY = "<1";
@ -550,12 +556,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(),
ProjectConstant.OPERATION_CLOSE, ProjectConstant.OPERATION_CLOSE,
fromDTO.getProjectId(), fromDTO.getProjectId(),
fromDTO.getUserId(), fromDTO.getUserId(),
new Date(), new Date(),
getProjectCloseBrief(fromDTO.getProjectId()) getProjectCloseBrief(fromDTO.getProjectId()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient()
); );
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
@ -727,12 +737,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(),
ProjectConstant.OPERATION_CLOSE, ProjectConstant.OPERATION_CLOSE,
fromDTO.getProjectId(), fromDTO.getProjectId(),
fromDTO.getUserId(), fromDTO.getUserId(),
new Date(), new Date(),
getProjectCloseBrief(fromDTO.getProjectId())); getProjectCloseBrief(fromDTO.getProjectId()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
@ -906,12 +920,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectStaff.getCustomerId(),
ProjectConstant.OPERATION_RETURN, ProjectConstant.OPERATION_RETURN,
fromDTO.getProjectId(), fromDTO.getProjectId(),
fromDTO.getUserId(), fromDTO.getUserId(),
new Date(), new Date(),
getProjectReturnMsgbrief(fromDTO.getProjectId())); getProjectReturnMsgbrief(fromDTO.getProjectId()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) { if (!msgResult) {
@ -1208,12 +1226,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
String mqMsgBrief = String.format("将议题\"%s\"转为项目", formDTO.getIssueDTO().getIssueTitle()); String mqMsgBrief = String.format("将议题\"%s\"转为项目", formDTO.getIssueDTO().getIssueTitle());
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(issueDTO.getCustomerId(), ProjectChangedMQMsg msg = new ProjectChangedMQMsg(issueDTO.getCustomerId(),
ProjectConstant.OPERATION_ISSUE_SHIFT_PROJECT, ProjectConstant.OPERATION_ISSUE_SHIFT_PROJECT,
projectEntity.getId(), projectEntity.getId(),
formDTO.getStaffId(), formDTO.getStaffId(),
new Date(), new Date(),
mqMsgBrief); mqMsgBrief,
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");
@ -1291,9 +1313,17 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle()); String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle());
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES, ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(),
formDTO.getProjectId(), formDTO.getUserId(), new Date(), mqMsgBrief); ProjectConstant.OPERATION_RESPONSES,
formDTO.getProjectId(),
formDTO.getUserId(),
new Date(),
mqMsgBrief,
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");
@ -2061,9 +2091,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_RETURN, HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
fromDTO.getProjectId(), fromDTO.getUserId(), new Date(), getProjectReturnMsgbrief(fromDTO.getProjectId()) ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(),
); ProjectConstant.OPERATION_RETURN,
fromDTO.getProjectId(),
fromDTO.getUserId(),
new Date(),
getProjectReturnMsgbrief(fromDTO.getProjectId()),
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");
@ -2150,9 +2187,17 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle()); String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle());
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES, ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(),
formDTO.getProjectId(), formDTO.getUserId(), new Date(), mqMsgBrief); ProjectConstant.OPERATION_RESPONSES,
formDTO.getProjectId(),
formDTO.getUserId(),
new Date(),
mqMsgBrief,
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");

13
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -10,7 +10,9 @@ import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.IpUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant; import com.epmet.constant.ProjectConstant;
@ -39,7 +41,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -86,6 +91,8 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
private EpmetUserFeignClient epmetUserFeignClient; private EpmetUserFeignClient epmetUserFeignClient;
@Autowired @Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Override @Override
public List<PendProjectListResultDTO> getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { public List<PendProjectListResultDTO> getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
@ -506,12 +513,16 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
} }
//项目实时统计消息 //项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String mqMsgBrief = String.format("创建了\"%s\"的项目", formDTO.getTitle()); String mqMsgBrief = String.format("创建了\"%s\"的项目", formDTO.getTitle());
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CREATED, ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CREATED,
projectEntity.getId(), projectEntity.getId(),
formDTO.getUserId(), formDTO.getUserId(),
new Date(), new Date(),
mqMsgBrief); mqMsgBrief,
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg); boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) { if (!msgResult) {
log.error("项目实时统计消息发送失败"); log.error("项目实时统计消息发送失败");

Loading…
Cancel
Save