feat:好友列表

This commit is contained in:
dzc committed 2025-11-27 15:48:07 +08:00
1 parent e78f978b0f
commit 46c064be3c
5 files changed
+82 -1

No files matched your search

@@ -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<ThirdLoginVO> 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<ThirdFriendVO>> list(@Valid @RequestBody ThirdFriendDTO dto) {
return ResultUtils.success(thirdFriendService.list(dto));
}
}
@@ -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;
}
@@ -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<ThirdFriendVO> list(@Valid ThirdFriendDTO dto);
}
@@ -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<FriendMapper, Friend> im
friendService.bindFriend(dto.getUserId(), dto.getTargetUserId());
}
/**
* 好友列表
*/
@Override
public List<ThirdFriendVO> list(ThirdFriendDTO dto) {
List<Friend> list = friendService.list(new LambdaQueryWrapper<Friend>()
.eq(Friend::getUserId, dto.getUserId())
.like(Friend::getFriendNickName, dto.getNickName())
);
if (ObjectUtil.isEmpty(list)) return List.of();
return BeanUtil.copyToList(list, ThirdFriendVO.class);
}
}
@@ -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;
}