Selaa lähdekoodia

消息、通知、交易

qrs 1 viikko sitten
vanhempi
commit
18ccdbf43c

+ 15 - 4
alien-store/src/main/java/shop/alien/store/controller/LifeMessageController.java

@@ -69,11 +69,22 @@ public class LifeMessageController {
         return R.data(lifeMessageService.getMessageListByReceiverId(receiverId, senderId));
     }
 
-    @ApiOperation("消息已读")
+    @ApiOperation("是否是陌生人")
     @ApiOperationSupport(order = 5)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "receiverId", value = "当前登录人", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "senderId", value = "聊天对方", dataType = "String", paramType = "query")})
+    @GetMapping("/isStranger")
+    public R<String> isStranger(@RequestParam String receiverId, @RequestParam String senderId) throws Exception {
+        log.info("LifeMessageController.isStranger?receiverId={}, senderId={}", receiverId, senderId);
+        return R.data(lifeMessageService.isStranger(receiverId, senderId));
+    }
+
+    @ApiOperation("消息已读")
+    @ApiOperationSupport(order = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "receiverId", value = "当前登录人", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "senderId", value = "聊天对方", dataType = "String", paramType = "query")})
     @GetMapping("/read")
     public R<Boolean> read(@RequestParam String receiverId, @RequestParam String senderId) throws Exception {
         log.info("LifeMessageController.read?receiverId={}, senderId={}", receiverId, senderId);
@@ -82,7 +93,7 @@ public class LifeMessageController {
     }
 
     @ApiOperation("删除消息")
-    @ApiOperationSupport(order = 6)
+    @ApiOperationSupport(order = 7)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "senderId", value = "聊天对方", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "receiverId", value = "当前登录人", dataType = "String", paramType = "query")})
@@ -93,7 +104,7 @@ public class LifeMessageController {
     }
 
     @ApiOperation("未关注人的消息数据")
-    @ApiOperationSupport(order = 7)
+    @ApiOperationSupport(order = 8)
     @ApiImplicitParams({@ApiImplicitParam(name = "receiverId", value = "当前登录人", dataType = "String", paramType = "query")})
     @GetMapping("/getNoFriendMessage")
     public R<LifeMessageVo> getNoFriendMessage(@RequestParam String receiverId) throws Exception {
@@ -102,7 +113,7 @@ public class LifeMessageController {
     }
 
     @ApiOperation("未读消息数量")
-    @ApiOperationSupport(order = 8)
+    @ApiOperationSupport(order = 9)
     @ApiImplicitParams({@ApiImplicitParam(name = "receiverId", value = "当前登录人", dataType = "String", paramType = "query")})
     @GetMapping("/noReadCount")
     public R<Integer> noReadCount(@RequestParam String receiverId) throws Exception {

+ 2 - 0
alien-store/src/main/java/shop/alien/store/service/LifeMessageService.java

@@ -18,6 +18,8 @@ public interface LifeMessageService extends IService<LifeMessage> {
 
     JSONObject getMessageListByReceiverId(String senderId, String receiverId) throws Exception;
 
+    String isStranger(String senderId, String receiverId) throws Exception;
+
     int read(String receiverId, String senderId) throws Exception;
 
     int noReadCount(String receiverId)throws Exception;

+ 48 - 0
alien-store/src/main/java/shop/alien/store/service/impl/LifeMessageServiceImpl.java

@@ -372,6 +372,54 @@ public class LifeMessageServiceImpl extends ServiceImpl<LifeMessageMapper, LifeM
     }
 
     @Override
+    public String isStranger(String senderId, String receiverId) throws Exception {
+        try {
+//            // 查询两个人是否是陌生人(只有一条消息)
+//            QueryWrapper<LifeMessage> wrapper = new QueryWrapper<>();
+//            // 没聊过
+//            wrapper.apply("((sender_id = '" + senderId + "' and receiver_id = '" + receiverId + "') or (sender_id = '" + receiverId + "' and receiver_id = '" + senderId + "'))");
+//            wrapper.orderByDesc("created_time");
+//            lifeMessageMapper.selectList(wrapper);
+//            return lifeMessageMapper.selectCount(wrapper) <= 1;
+
+            // 查询我发送过的消息
+            QueryWrapper<LifeMessage> wrapper = new QueryWrapper<>();
+            //本人发送的数量
+            wrapper.apply("(sender_id = '" + senderId + "' and receiver_id = '" + receiverId + "')");
+//            wrapper.eq("sender_id", senderId);
+//            wrapper.eq("receiver_id", receiverId);
+
+            int senderCount = lifeMessageMapper.selectCount(wrapper);
+            //查询对方发送过的消息
+            QueryWrapper<LifeMessage> wrapper1 = new QueryWrapper<>();
+            wrapper1.apply("(sender_id = '" + receiverId + "' and receiver_id = '" + senderId + "')");
+            int receiverCount = lifeMessageMapper.selectCount(wrapper);
+            if (senderCount == 0){
+                //本条可以发
+                return "1";
+            }
+            senderCount++;
+            // 可以一直唠
+            if (senderCount >= 1 && receiverCount >= 1){
+            // 发送本条消息并可以一直发
+               return "2";
+            }
+            // 本人发过了,等待对方发
+            if (senderCount > 1 && receiverCount==0){
+                // 不允许发送本条消息
+                 return "0";
+            }
+
+            return "0";
+
+        } catch (Exception e) {
+            log.error("LifeMessageServiceImpl.isStranger Error Mgs={}", e.getMessage());
+            throw new Exception(e);
+        }
+    }
+
+
+    @Override
     public int read(String receiverId, String senderId) throws Exception {
         try {
             LambdaUpdateWrapper<LifeMessage> wrapper = new LambdaUpdateWrapper<>();