Browse Source

项目变动增加日志完成

dev
wxz 4 years ago
parent
commit
2176562b56
  1. 93
      epmet-admin/epmet-admin-client/src/main/java/com/epmet/enums/LogOperationTypeEnum.java
  2. 5
      epmet-admin/epmet-admin-server/pom.xml
  3. 2
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/entity/LogOperationEntity.java
  4. 11
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java
  5. 9
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/AuthOperationLogListener.java
  6. 100
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/ProjectOperationLogListener.java
  7. 5
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/impl/LogOperationServiceImpl.java
  8. 1
      epmet-admin/epmet-admin-server/src/main/resources/mapper/LogOperationDao.xml
  9. 14
      epmet-auth/epmet-auth-client/pom.xml
  10. 9
      epmet-auth/epmet-auth-client/src/main/java/com/epmet/auth/constants/AuthOperationConstants.java
  11. 43
      epmet-auth/epmet-auth-client/src/main/java/com/epmet/auth/constants/AuthOperationEnum.java
  12. 8
      epmet-auth/pom.xml
  13. 3
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  14. 9
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java
  15. 7
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java
  16. 11
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java
  17. 5
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
  18. 2
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
  19. 6
      epmet-module/epmet-message/epmet-message-server/pom.xml
  20. 10
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
  21. 4
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  22. 33
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
  23. 68
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  24. 7
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

93
epmet-admin/epmet-admin-client/src/main/java/com/epmet/enums/LogOperationTypeEnum.java

@ -1,49 +1,44 @@
package com.epmet.enums;
import lombok.Data;
/**
* 操作日志类型枚举
*/
public enum LogOperationTypeEnum {
LOGIN("login", "登录"),
LOGOUT("logout", "退出登录"),
ISSUE_SHIFT_PROJECT("issue_shift_project", "议题转项目"),
CLOSE_PROJECT("close_project", "项目结案"),
PROJECT_TRANSFER("project_transfer", "项目流转"),
PROJECT_RESPONSE("project_response", "响应处理"),
PROJECT_APPROVAL("project_approval", "项目立项");
private String type;
private String typeDisplay;
public String getType() {
return type;
}
public String getTypeDisplay() {
return typeDisplay;
}
LogOperationTypeEnum(String type, String typeDisplay) {
this.type = type;
this.typeDisplay = typeDisplay;
}
public static LogOperationTypeEnum get(String type) {
for (LogOperationTypeEnum t : LogOperationTypeEnum.values()) {
if (t.type.equals(type)) {
return t;
}
}
return null;
}
public static String getDisplay(String type) {
LogOperationTypeEnum object = get(type);
if (object == null) {
return null;
}
return object.typeDisplay;
}
}
//package com.epmet.enums;
//
//import lombok.Data;
//
///**
// * 操作日志类型枚举
// */
//public enum LogOperationTypeEnum {
// LOGIN("login", "登录"),
// LOGOUT("logout", "退出登录");
//
// private String type;
// private String typeDisplay;
//
// public String getType() {
// return type;
// }
//
// public String getTypeDisplay() {
// return typeDisplay;
// }
//
// LogOperationTypeEnum(String type, String typeDisplay) {
// this.type = type;
// this.typeDisplay = typeDisplay;
// }
//
// public static LogOperationTypeEnum get(String type) {
// for (LogOperationTypeEnum t : LogOperationTypeEnum.values()) {
// if (t.type.equals(type)) {
// return t;
// }
// }
// return null;
// }
//
// public static String getDisplay(String type) {
// LogOperationTypeEnum object = get(type);
// if (object == null) {
// return null;
// }
// return object.typeDisplay;
// }
//}

5
epmet-admin/epmet-admin-server/pom.xml

@ -74,6 +74,11 @@
<artifactId>epmet-message-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-auth-client</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
<build>

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

@ -47,6 +47,8 @@ public class LogOperationEntity extends BaseEpmetEntity {
*/
private String type;
private String typeDisplay;
/**
* 内容
*/

11
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java

@ -2,7 +2,9 @@ package com.epmet.mq.listener;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.mq.listener.listener.LoginOperationLogListener;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.mq.listener.listener.AuthOperationLogListener;
import com.epmet.mq.listener.listener.ProjectOperationLogListener;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
@ -28,9 +30,10 @@ public class RocketMQConsumerRegister {
@PostConstruct
public void registerAllListeners() {
try {
//if (!EnvEnum.LOCAL.getCode().equals(env)) {
register(nameServer, ConsomerGroupConstants.LOGIN_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.LOGIN, "*", new LoginOperationLogListener());
//}
if (!EnvEnum.LOCAL.getCode().equals(env)) {
register(nameServer, ConsomerGroupConstants.AUTH_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.AUTH, "*", new AuthOperationLogListener());
register(nameServer, ConsomerGroupConstants.PROJECT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectOperationLogListener());
}
} catch (MQClientException e) {
e.printStackTrace();
}

9
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/LoginOperationLogListener.java → epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/listener/AuthOperationLogListener.java

@ -1,13 +1,13 @@
package com.epmet.mq.listener.listener;
import com.alibaba.fastjson.JSON;
import com.epmet.auth.constants.AuthOperationEnum;
import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.entity.LogOperationEntity;
import com.epmet.enums.LogOperationTypeEnum;
import com.epmet.service.LogOperationService;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
@ -27,7 +27,7 @@ import java.util.concurrent.TimeUnit;
* @return
* @date 2021.06.07 16:12
*/
public class LoginOperationLogListener implements MessageListenerConcurrently {
public class AuthOperationLogListener implements MessageListenerConcurrently {
private Logger logger = LoggerFactory.getLogger(getClass());
@ -45,12 +45,13 @@ public class LoginOperationLogListener implements MessageListenerConcurrently {
private void consumeMessage(MessageExt messageExt) {
String tags = messageExt.getTags();
String msg = new String(messageExt.getBody());
logger.info("操作日志监听器-收到消息内容:{}", msg);
logger.info("认证操作日志监听器-收到消息内容:{}", msg);
LoginMQMsg msgObj = JSON.parseObject(msg, LoginMQMsg.class);
LogOperationEntity logEntity = new LogOperationEntity();
logEntity.setCategory(messageExt.getTopic());
logEntity.setType(tags);
logEntity.setTypeDisplay(AuthOperationEnum.getDisplay(tags));
logEntity.setTargetId("");
logEntity.setOperatorId(msgObj.getUserId());
logEntity.setOperatingTime(msgObj.getLoginTime());
@ -60,7 +61,7 @@ public class LoginOperationLogListener implements MessageListenerConcurrently {
RLock lock = null;
try {
distributedLock = SpringContextUtils.getBean(DistributedLock.class);
lock = distributedLock.getLock(String.format("lock:operation_log:%s:%s", logEntity.getType(), logEntity.getTargetId()),
lock = distributedLock.getLock(String.format("lock:auth_operation_log:%s:%s", logEntity.getType(), logEntity.getOperatorId()),
30L, 30L, TimeUnit.SECONDS);
SpringContextUtils.getBean(LogOperationService.class).log(logEntity);
} catch (RenException e) {

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

@ -0,0 +1,100 @@
package com.epmet.mq.listener.listener;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.entity.LogOperationEntity;
import com.epmet.service.LogOperationService;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;
import org.redisson.api.RLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @author wxz
* @Description 项目操作日志监听器
* @return
* @date 2021.06.08 22.21
*/
public class ProjectOperationLogListener implements MessageListenerConcurrently {
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
try {
msgs.forEach(msg -> consumeMessage(msg));
} catch (Exception e) {
logger.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
private void consumeMessage(MessageExt messageExt) {
//String tags = messageExt.getTags();
String msg = new String(messageExt.getBody());
logger.info("项目变动操作日志监听器-收到消息内容:{}", msg);
ProjectChangedMQMsg msgObj = JSON.parseObject(msg, ProjectChangedMQMsg.class);
String content = StringUtils.isBlank(msgObj.getOperationBrief()) ? "" : msgObj.getOperationBrief();
LogOperationEntity logEntity = new LogOperationEntity();
logEntity.setCategory(messageExt.getTopic());
logEntity.setType(msgObj.getOperation());
logEntity.setTypeDisplay(getOperationTypeDisplay(msgObj.getOperation()));
logEntity.setTargetId(msgObj.getProjectId());
logEntity.setOperatorId(msgObj.getOperatorId());
logEntity.setOperatingTime(msgObj.getOperatingTime());
logEntity.setContent(content);
DistributedLock distributedLock = null;
RLock lock = null;
try {
distributedLock = SpringContextUtils.getBean(DistributedLock.class);
lock = distributedLock.getLock(String.format("lock:project_operation_log:%s:%s", logEntity.getType(), logEntity.getTargetId()),
30L, 30L, TimeUnit.SECONDS);
SpringContextUtils.getBean(LogOperationService.class).log(logEntity);
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【RocketMQ】添加操作日志失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
} catch (Exception e) {
// 不是我们自己抛出的异常,可以让MQ重试
logger.error("【RocketMQ】添加操作日志失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
throw e;
} finally {
distributedLock.unLock(lock);
}
}
private String getOperationTypeDisplay(String type) {
switch (type) {
case "response":
return "项目响应处理";
case "issue_shift_project":
return "议题转项目";
case "close":
return "项目结案";
case "return":
return "项目退回";
case "transfer":
return "项目吹哨";
case "created":
return "项目立项";
default:
return null;
}
}
}

5
epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/impl/LogOperationServiceImpl.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.epmet.auth.constants.AuthOperationEnum;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.feign.ResultDataResolver;
@ -13,10 +14,8 @@ import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.form.CustomerStaffFormDTO;
import com.epmet.dto.region.LogOperationResultDTO;
import com.epmet.entity.LogOperationEntity;
import com.epmet.enums.LogOperationTypeEnum;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.service.LogOperationService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -168,7 +167,7 @@ public class LogOperationServiceImpl implements LogOperationService, ResultDataR
ldto.setOperatorId(l.getOperatorId());
ldto.setTargetId(l.getTargetId());
ldto.setType(l.getType());
ldto.setTypeDisplay(LogOperationTypeEnum.getDisplay(l.getType()));
ldto.setTypeDisplay(l.getTypeDisplay());
ldto.setOperatorMobile(staffMap.get(l.getOperatorId()).getMobile());
ldto.setOperatorName(staffMap.get(l.getOperatorId()).getRealName());
return ldto;

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

@ -6,6 +6,7 @@
<resultMap type="com.epmet.entity.LogOperationEntity" id="logOperationMap">
<result property="id" column="ID"/>
<result property="type" column="TYPE"/>
<result property="typeDisplay" column="TYPE_DISPLAY"/>
<result property="content" column="CONTENT"/>
<result property="targetId" column="TARGET_ID"/>
<result property="category" column="CATEGORY"/>

14
epmet-auth/epmet-auth-client/pom.xml

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>epmet-auth</artifactId>
<groupId>com.epmet</groupId>
<version>2.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>epmet-auth-client</artifactId>
</project>

9
epmet-auth/epmet-auth-client/src/main/java/com/epmet/auth/constants/AuthOperationConstants.java

@ -0,0 +1,9 @@
package com.epmet.auth.constants;
/**
* 认证操作常量
*/
public interface AuthOperationConstants {
String LOGIN = "login";
String LOGOUT = "logout";
}

43
epmet-auth/epmet-auth-client/src/main/java/com/epmet/auth/constants/AuthOperationEnum.java

@ -0,0 +1,43 @@
package com.epmet.auth.constants;
/**
* 认证操作枚举
*/
public enum AuthOperationEnum {
LOGIN(AuthOperationConstants.LOGIN, "登录"),
LOGOUT(AuthOperationConstants.LOGOUT, "退出");
private String operationType;
private String operationDisplay;
AuthOperationEnum(String operationType, String operationDisplay) {
this.operationType = operationType;
this.operationDisplay = operationDisplay;
}
public String getOperationType() {
return operationType;
}
public String getOperationDisplay() {
return operationDisplay;
}
public static AuthOperationEnum get(String operationType) {
for (AuthOperationEnum e : AuthOperationEnum.values()) {
if (e.getOperationType().equals(operationType)) {
return e;
}
}
return null;
}
public static String getDisplay(String operationType) {
AuthOperationEnum obj = get(operationType);
if (obj == null) {
return null;
}
return obj.getOperationDisplay();
}
}

8
epmet-auth/pom.xml

@ -3,6 +3,9 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.70</version>
<modules>
<module>epmet-auth-client</module>
</modules>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>
@ -133,6 +136,11 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-auth-client</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
<build>

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

@ -5,6 +5,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.auth.constants.AuthOperationConstants;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.constant.ServiceConstant;
@ -676,7 +677,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
loginMQMsg.setAppId(appId);
SystemMsgFormDTO form = new SystemMsgFormDTO();
form.setMessageType(SystemMessageType.LOGIN);
form.setMessageType(AuthOperationConstants.LOGIN);
form.setContent(loginMQMsg);
messageOpenFeignClient.sendSystemMsgByMQ(form);
//getResultDataOrThrowsException(result, ServiceConstant.EPMET_MESSAGE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "调用Message服务,发送登录事件到MQ失败");

9
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java

@ -32,8 +32,13 @@ public interface ConsomerGroupConstants {
String GROUP_ACHIEVEMENT_COMPONENTS_GROUP = "group_achievement_components_group";
/**
* 登录操作日志消费组
* 认证操作日志消费组
*/
String LOGIN_OPERATION_LOG_GROUP = "login_operation_log_group";
String AUTH_OPERATION_LOG_GROUP = "auth_operation_log_group";
/**
* 项目操作日志小肥猪
*/
String PROJECT_OPERATION_LOG_GROUP = "project_operation_log_group";
}

7
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java

@ -1,5 +1,8 @@
package com.epmet.commons.rocketmq.constants;
/**
* 话题列表常量其他服务要想发送消息到mq则应当引入epmet-commons-rocketmq模块并且使用此常量
*/
public interface TopicConstants {
/**
* 初始化客户
@ -15,7 +18,7 @@ public interface TopicConstants {
String GROUP_ACHIEVEMENT = "group_achievement";
/**
* 登录
* 认证
*/
String LOGIN = "login";
String AUTH = "auth";
}

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

@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* desc项目变动通知消息实体类
@ -18,4 +19,14 @@ public class ProjectChangedMQMsg implements Serializable {
* 操作类型 议题转项目issue_shift_project, 处理response, 结案close退回return部门流转transfer立项created
*/
private String operation;
// ============> new
private String projectId;
private String operatorId;
private Date operatingTime;
/**
* 操作简介
*/
private String operationBrief;
}

5
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java

@ -20,9 +20,4 @@ public interface SystemMessageType {
*/
String GROUP_ACHIEVEMENT = "group_achievement";
/**
* 登录
*/
String LOGIN = "login";
}

2
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java

@ -37,7 +37,7 @@ public class SendMqMsgUtil {
}
/**
* desc: 发送小组成就消息,计算小组成就
* desc: 发送项目变动事件消息
*
* @param msgContent
* @return boolean

6
epmet-module/epmet-message/epmet-message-server/pom.xml

@ -125,6 +125,12 @@
<artifactId>epmet-commons-rocketmq</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-auth-client</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
<build>

10
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java

@ -1,6 +1,8 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.auth.constants.AuthOperationConstants;
import com.epmet.auth.constants.AuthOperationEnum;
import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -70,8 +72,12 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.GROUP_ACHIEVEMENT:
topic = TopicConstants.GROUP_ACHIEVEMENT;
break;
case SystemMessageType.LOGIN:
topic = TopicConstants.LOGIN;
case AuthOperationConstants.LOGIN:
topic = TopicConstants.AUTH;
break;
case AuthOperationConstants.LOGOUT:
topic = TopicConstants.AUTH;
break;
}
return topic;
}

4
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -125,6 +125,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
private IssueProjectTagDictService issueProjectTagDictService;
@Autowired
private IssueVoteDetailDao issueVoteDetailDao;
@Autowired
private EpmetMessageOpenFeignClient messageOpenFeignClient;
@Value("${openapi.scan.server.url}")
@ -1043,7 +1045,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
}
//8.记录日志
//SendMqMsgUtil.build().openFeignClient(messageOpenFeignClient);
//SendMqMsgUtil.build().openFeignClient(messageOpenFeignClient).sendProjectChangedMqMsg();
}
/**

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

@ -386,8 +386,15 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
logger.error("项目流转,发送手机短信失败" + JSON.toJSONString(result));
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(), ProjectConstant.OPERATION_TRANSFER);
//生成消息内容,发送mq事件
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(),
ProjectConstant.OPERATION_TRANSFER,
formDTO.getProjectId(),
staffEntity.getStaffId(),
new Date(),
getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName()));
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
@ -395,6 +402,21 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
}
/**
* @Description 生成mq消息内容
* @return
* @author wxz
* @date 2021.06.09 09:15
*/
private String getProjectTransferMsgContent( String projectId, String operatorId, String departmentName) {
CustomerStaffDTO form = new CustomerStaffDTO();
form.setUserId(operatorId);
Result<CustomerStaffDTO> processStaff = epmetUserFeignClient.getCustomerStaffInfoByUserId(form);
ProjectEntity projectEntity = projectService.selectById(projectId);
return String.format("将项目\"%s\"吹哨给%s%s处理", projectEntity.getTitle(), departmentName, processStaff.getData().getRealName());
}
/**
* @Description 项目流转给流转工作人员推送消息
* @author sun
@ -741,7 +763,12 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(), ProjectConstant.OPERATION_TRANSFER);
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(staffEntity.getCustomerId(),
ProjectConstant.OPERATION_TRANSFER,
formDTO.getProjectId(),
staffEntity.getStaffId(),
new Date(),
getProjectTransferMsgContent(formDTO.getProjectId(), staffEntity.getStaffId(), processEntity.getDepartmentName()));
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");

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

@ -550,13 +550,30 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CLOSE);
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(),
ProjectConstant.OPERATION_CLOSE,
fromDTO.getProjectId(),
fromDTO.getUserId(),
new Date(),
getProjectCloseBrief(fromDTO.getProjectId())
);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
}
}
/**
* @Description 项目结案消息简介生成
* @return
* @author wxz
* @date 2021.06.09 09:30
*/
private String getProjectCloseBrief(String projectId) {
ProjectEntity project = baseDao.selectById(projectId);
return String.format("将项目\"%s\"结案", project.getTitle());
}
/**
* 项目结案
*
@ -710,7 +727,13 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CLOSE);
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectEntity.getCustomerId(),
ProjectConstant.OPERATION_CLOSE,
fromDTO.getProjectId(),
fromDTO.getUserId(),
new Date(),
getProjectCloseBrief(fromDTO.getProjectId()));
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
@ -883,13 +906,30 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RETURN);
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectStaff.getCustomerId(),
ProjectConstant.OPERATION_RETURN,
fromDTO.getProjectId(),
fromDTO.getUserId(),
new Date(),
getProjectReturnMsgbrief(fromDTO.getProjectId()));
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
}
}
/**
* @Description 项目退回消息内容生成
* @return
* @author wxz
* @date 2021.06.09 09:34
*/
private String getProjectReturnMsgbrief(String projectId) {
ProjectEntity project = baseDao.selectById(projectId);
return String.format("将项目\"%s\"退回", project.getTitle());
}
@Override
public List<ShiftProjectResultDTO> getProjectByIssue(ShiftProjectsFromDTO fromDTO) {
List<ShiftProjectResultDTO> resultList = new ArrayList<>();
@ -1165,8 +1205,15 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
logger.error("项目吹哨,发送手机短信失败" + JSON.toJSONString(result));
}
String mqMsgBrief = String.format("将议题\"%s\"转为项目", formDTO.getIssueDTO().getIssueTitle());
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(issueDTO.getCustomerId(), ProjectConstant.OPERATION_ISSUE_SHIFT_PROJECT);
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(issueDTO.getCustomerId(),
ProjectConstant.OPERATION_ISSUE_SHIFT_PROJECT,
projectEntity.getId(),
formDTO.getStaffId(),
new Date(),
mqMsgBrief);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
@ -1175,7 +1222,6 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return issueProjectResultDTO;
}
@Override
public void response(ProjectResponseFormDTO formDTO) {
//公开回复内容审核
@ -1245,7 +1291,9 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES);
String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle());
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES,
formDTO.getProjectId(), formDTO.getUserId(), new Date(), mqMsgBrief);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
@ -2013,7 +2061,9 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_RETURN);
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_RETURN,
fromDTO.getProjectId(), fromDTO.getUserId(), new Date(), getProjectReturnMsgbrief(fromDTO.getProjectId())
);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
@ -2100,7 +2150,9 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
}
//项目实时统计消息
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES);
String mqMsgBrief = String.format("响应处理了\"%s\"的项目", projectEntity.getTitle());
ProjectChangedMQMsg msg = new ProjectChangedMQMsg(projectStaff.getCustomerId(), ProjectConstant.OPERATION_RESPONSES,
formDTO.getProjectId(), formDTO.getUserId(), new Date(), mqMsgBrief);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(msg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");

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

@ -506,7 +506,12 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
}
//项目实时统计消息
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CREATED);
String mqMsgBrief = String.format("创建了\"%s\"的项目", formDTO.getTitle());
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CREATED,
projectEntity.getId(),
formDTO.getUserId(),
new Date(),
mqMsgBrief);
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");

Loading…
Cancel
Save