Преглед изворни кода

Merge branch 'release_lutong_bug' into sit

lutong пре 2 месеци
родитељ
комит
fb393f41cc

+ 19 - 9
alien-store/src/main/java/shop/alien/store/service/impl/StoreRenovationRequirementServiceImpl.java

@@ -572,15 +572,25 @@ public class StoreRenovationRequirementServiceImpl extends ServiceImpl<StoreReno
                         Boolean hasCommunicated = communicationStatusMap.get(communicationKey);
 
                         if (hasCommunicated == null) {
-                            // 查询是否有消息记录(检查双向消息)
-                            LambdaQueryWrapper<LifeMessage> messageWrapper = new LambdaQueryWrapper<>();
-                            messageWrapper.eq(LifeMessage::getDeleteFlag, 0);
-                            messageWrapper.and(w -> w.and(w1 -> w1.eq(LifeMessage::getSenderId, currentUserPhoneId)
-                                            .eq(LifeMessage::getReceiverId, publishingShopPhoneId))
-                                    .or(w2 -> w2.eq(LifeMessage::getSenderId, publishingShopPhoneId)
-                                            .eq(LifeMessage::getReceiverId, currentUserPhoneId)));
-                            Integer messageCount = lifeMessageMapper.selectCount(messageWrapper);
-                            hasCommunicated = messageCount != null && messageCount > 0;
+                            // 判断互相都发送过消息才算沟通过
+                            // 检查 currentUserPhoneId 是否给 publishingShopPhoneId 发送过消息
+                            LambdaQueryWrapper<LifeMessage> messageWrapper1 = new LambdaQueryWrapper<>();
+                            messageWrapper1.eq(LifeMessage::getDeleteFlag, 0)
+                                    .eq(LifeMessage::getSenderId, currentUserPhoneId)
+                                    .eq(LifeMessage::getReceiverId, publishingShopPhoneId);
+                            Integer messageCount1 = lifeMessageMapper.selectCount(messageWrapper1);
+                            boolean hasSentMessage1 = messageCount1 != null && messageCount1 > 0;
+
+                            // 检查 publishingShopPhoneId 是否给 currentUserPhoneId 发送过消息
+                            LambdaQueryWrapper<LifeMessage> messageWrapper2 = new LambdaQueryWrapper<>();
+                            messageWrapper2.eq(LifeMessage::getDeleteFlag, 0)
+                                    .eq(LifeMessage::getSenderId, publishingShopPhoneId)
+                                    .eq(LifeMessage::getReceiverId, currentUserPhoneId);
+                            Integer messageCount2 = lifeMessageMapper.selectCount(messageWrapper2);
+                            boolean hasSentMessage2 = messageCount2 != null && messageCount2 > 0;
+
+                            // 只有双方都发送过消息才算沟通过
+                            hasCommunicated = hasSentMessage1 && hasSentMessage2;
                             communicationStatusMap.put(communicationKey, hasCommunicated);
                         }