diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java index 13fcfa4367..1880cb8bac 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java @@ -50,7 +50,7 @@ public class SendMqMsgUtil { systemMsgFormDTO.setMessageType(SystemMessageType.GROUP_ACHIEVEMENT); systemMsgFormDTO.setContent(msgContent); Result sendMsgResult = null; - int retryTime = 1; + int retryTime = 0; do { sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(systemMsgFormDTO); } while ((sendMsgResult == null || !sendMsgResult.success()) && retryTime++ < NumConstant.TWO); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 4b3abfb464..a630569ebb 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -665,11 +665,20 @@ public class ResiGroupServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(ResiGroupEntity::getDelFlag,'0'); - if (StringUtils.isNotBlank(customerId)){ - queryWrapper.lambda().eq(ResiGroupEntity::getCustomerId,customerId); - } - List groupEntities = resiGroupDao.selectList(queryWrapper); - groupEntities.forEach(group->{ - AchievementTypeEnum[] achievementTypeEnum = AchievementTypeEnum.values(); - for (AchievementTypeEnum anEnum : achievementTypeEnum) { - try { - Thread.sleep(2); - } catch (InterruptedException e) { - e.printStackTrace(); - } - calculateAcm(group.getCustomerId(),group.getId(),anEnum.getCode()); + //计算所有类型的 小组人数、话题数、转议题数、小组内问题解决数 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ResiGroupEntity::getDelFlag, '0'); + if (StringUtils.isNotBlank(customerId)) { + queryWrapper.lambda().eq(ResiGroupEntity::getCustomerId, customerId); + } + List groupEntities = resiGroupDao.selectList(queryWrapper); + groupEntities.forEach(group -> { + AchievementTypeEnum[] achievementTypeEnum = AchievementTypeEnum.values(); + for (AchievementTypeEnum anEnum : achievementTypeEnum) { + try { + Thread.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); } - }); + calculateAcm(group.getCustomerId(), group.getId(), anEnum.getCode()); + } + }); return true; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index b4bd5cd4d5..18ccfbc2c8 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -86,6 +86,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronizationAdapter; +import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.util.CollectionUtils; import java.text.DateFormat; @@ -657,11 +659,20 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); msgList.add(wxSubscribeMessageFormDTO); epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); - //发送小组成就消息 - boolean flag = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendGroupAchievementMqMsg(new GroupAchievementMQMsg(resiGroupMemberDTO.getCustomerId(), resiGroupMemberDTO.getResiGroupId(), AchievementTypeEnum.MEMBER.getCode())); - if (!flag) { - logger.error("发送(小组成就)系统消息到message服务失败"); - } + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCommit() { + try { + //发送小组成就消息 + boolean flag = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendGroupAchievementMqMsg(new GroupAchievementMQMsg(resiGroupMemberDTO.getCustomerId(), resiGroupMemberDTO.getResiGroupId(), AchievementTypeEnum.MEMBER.getCode())); + if (!flag) { + logger.error("发送(小组成就)系统消息到message服务失败"); + } + }catch (Exception e){ + logger.error("afterCommit",e); + } + } + }); } /** diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 74e775128d..e497e699c4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -111,6 +111,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronizationAdapter; +import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; @@ -777,10 +779,19 @@ public class ResiTopicServiceImpl extends BaseServiceImpl