From 46c064be3c73b6e3ce98ededa16d803309493941 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 27 Nov 2025 15:48:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A5=BD=E5=8F=8B=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../third/ThirdFriendController.java | 15 +++++++++++- .../dto/third/friend/ThirdFriendDTO.java | 18 +++++++++++++++ .../service/third/ThirdFriendService.java | 8 +++++++ .../third/impl/ThirdFriendServiceImpl.java | 19 +++++++++++++++ .../vo/third/friend/ThirdFriendVO.java | 23 +++++++++++++++++++ 5 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 im-platform/src/main/java/com/bx/implatform/dto/third/friend/ThirdFriendDTO.java create mode 100644 im-platform/src/main/java/com/bx/implatform/vo/third/friend/ThirdFriendVO.java diff --git a/im-platform/src/main/java/com/bx/implatform/controller/third/ThirdFriendController.java b/im-platform/src/main/java/com/bx/implatform/controller/third/ThirdFriendController.java index 04934f9..83566e5 100644 --- a/im-platform/src/main/java/com/bx/implatform/controller/third/ThirdFriendController.java +++ b/im-platform/src/main/java/com/bx/implatform/controller/third/ThirdFriendController.java @@ -1,9 +1,14 @@ package com.bx.implatform.controller.third; import com.bx.implatform.dto.third.friend.ThirdAddFriendDTO; +import com.bx.implatform.dto.third.friend.ThirdFriendDTO; +import com.bx.implatform.dto.third.sensitive.ThirdSensitiveDTO; import com.bx.implatform.result.Result; import com.bx.implatform.result.ResultUtils; import com.bx.implatform.service.third.ThirdFriendService; +import com.bx.implatform.vo.third.ThirdTableVO; +import com.bx.implatform.vo.third.friend.ThirdFriendVO; +import com.bx.implatform.vo.third.sensitive.ThirdSensitiveVO; import com.bx.implatform.vo.third.user.ThirdLoginVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -15,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Slf4j @RestController @RequestMapping("/third/friend") @@ -26,9 +33,15 @@ public class ThirdFriendController { @PostMapping("/add") @Operation(summary = "添加好友", description = "添加好友") - public Result addFriend(@Valid @RequestBody ThirdAddFriendDTO dto) { + public Result addFriend(@Valid @RequestBody ThirdAddFriendDTO dto) { thirdFriendService.addFriend(dto); return ResultUtils.success(); } + @PostMapping("/list") + @Operation(summary = "好友列表", description = "好友列表") + public Result> list(@Valid @RequestBody ThirdFriendDTO dto) { + return ResultUtils.success(thirdFriendService.list(dto)); + } + } diff --git a/im-platform/src/main/java/com/bx/implatform/dto/third/friend/ThirdFriendDTO.java b/im-platform/src/main/java/com/bx/implatform/dto/third/friend/ThirdFriendDTO.java new file mode 100644 index 0000000..93d8697 --- /dev/null +++ b/im-platform/src/main/java/com/bx/implatform/dto/third/friend/ThirdFriendDTO.java @@ -0,0 +1,18 @@ +package com.bx.implatform.dto.third.friend; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +@Schema(description = "third好友DTO") +public class ThirdFriendDTO { + + @NotNull(message = "用户id不能为空") + @Schema(description = "用户id") + private String userId; + + @Schema(description = "好友昵称") + private String nickName; + +} diff --git a/im-platform/src/main/java/com/bx/implatform/service/third/ThirdFriendService.java b/im-platform/src/main/java/com/bx/implatform/service/third/ThirdFriendService.java index 7f2b366..bcc08ba 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/third/ThirdFriendService.java +++ b/im-platform/src/main/java/com/bx/implatform/service/third/ThirdFriendService.java @@ -1,8 +1,12 @@ package com.bx.implatform.service.third; import com.bx.implatform.dto.third.friend.ThirdAddFriendDTO; +import com.bx.implatform.dto.third.friend.ThirdFriendDTO; +import com.bx.implatform.vo.third.friend.ThirdFriendVO; import jakarta.validation.Valid; +import java.util.List; + public interface ThirdFriendService { /** @@ -10,4 +14,8 @@ public interface ThirdFriendService { */ void addFriend(@Valid ThirdAddFriendDTO dto); + /** + * 好友列表 + */ + List list(@Valid ThirdFriendDTO dto); } diff --git a/im-platform/src/main/java/com/bx/implatform/service/third/impl/ThirdFriendServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/third/impl/ThirdFriendServiceImpl.java index 4d6a430..eaf6922 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/third/impl/ThirdFriendServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/third/impl/ThirdFriendServiceImpl.java @@ -1,15 +1,22 @@ package com.bx.implatform.service.third.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bx.implatform.dto.third.friend.ThirdAddFriendDTO; +import com.bx.implatform.dto.third.friend.ThirdFriendDTO; import com.bx.implatform.entity.Friend; import com.bx.implatform.mapper.FriendMapper; import com.bx.implatform.service.FriendService; import com.bx.implatform.service.third.ThirdFriendService; +import com.bx.implatform.vo.third.friend.ThirdFriendVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.List; + /** * 第三方好友 */ @@ -28,4 +35,16 @@ public class ThirdFriendServiceImpl extends ServiceImpl im friendService.bindFriend(dto.getUserId(), dto.getTargetUserId()); } + /** + * 好友列表 + */ + @Override + public List list(ThirdFriendDTO dto) { + List list = friendService.list(new LambdaQueryWrapper() + .eq(Friend::getUserId, dto.getUserId()) + .like(Friend::getFriendNickName, dto.getNickName()) + ); + if (ObjectUtil.isEmpty(list)) return List.of(); + return BeanUtil.copyToList(list, ThirdFriendVO.class); + } } diff --git a/im-platform/src/main/java/com/bx/implatform/vo/third/friend/ThirdFriendVO.java b/im-platform/src/main/java/com/bx/implatform/vo/third/friend/ThirdFriendVO.java new file mode 100644 index 0000000..235a4b2 --- /dev/null +++ b/im-platform/src/main/java/com/bx/implatform/vo/third/friend/ThirdFriendVO.java @@ -0,0 +1,23 @@ +package com.bx.implatform.vo.third.friend; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "third好友VO") +public class ThirdFriendVO { + @Schema(description = "好友id") + private Long id; + + @Schema(description = "好友昵称") + private String nickName; + + @Schema(description = "好友头像") + private String headImage; + + @Schema(description = "是否开启免打扰") + private Boolean isDnd; + + @Schema(description = "是否已删除") + private Boolean deleted; +}