feat:单聊群聊表结构,接口定义

This commit is contained in:
zhongzb
2023-07-17 00:36:31 +08:00
parent 703d7ffc81
commit f0a2fa51ff
41 changed files with 1057 additions and 32 deletions

View File

@@ -1,7 +1,6 @@
package com.abin.mallchat.custom.chat.service.adapter;
import cn.hutool.core.bean.BeanUtil;
import com.abin.mallchat.common.chat.domain.entity.Room;
import com.abin.mallchat.custom.chat.domain.vo.response.ChatRoomResp;
import java.util.List;

View File

@@ -0,0 +1,94 @@
package com.abin.mallchat.custom.user.controller;
import com.abin.mallchat.common.common.domain.vo.request.CursorPageBaseReq;
import com.abin.mallchat.common.common.domain.vo.request.PageBaseReq;
import com.abin.mallchat.common.common.domain.vo.response.ApiResult;
import com.abin.mallchat.common.common.domain.vo.response.CursorPageBaseResp;
import com.abin.mallchat.common.common.domain.vo.response.PageBaseResp;
import com.abin.mallchat.common.common.utils.RequestHolder;
import com.abin.mallchat.common.user.service.cache.UserCache;
import com.abin.mallchat.custom.chat.domain.vo.response.ChatMemberResp;
import com.abin.mallchat.custom.chat.service.ChatService;
import com.abin.mallchat.custom.user.domain.vo.request.friend.FriendApplyReq;
import com.abin.mallchat.custom.user.domain.vo.request.friend.FriendApproveReq;
import com.abin.mallchat.custom.user.domain.vo.request.friend.FriendCheckReq;
import com.abin.mallchat.custom.user.domain.vo.request.friend.FriendDeleteReq;
import com.abin.mallchat.custom.user.domain.vo.response.friend.FriendApplyResp;
import com.abin.mallchat.custom.user.domain.vo.response.friend.FriendCheckResp;
import com.abin.mallchat.custom.user.domain.vo.response.friend.FriendUnreadResp;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* <p>
* 好友相关接口
* </p>
*
* @author <a href="https://github.com/zongzibinbin">abin</a>
* @since 2023-07-16
*/
@RestController
@RequestMapping("/capi/user/friend")
@Api(tags = "好友相关接口")
@Slf4j
public class FriendController {
@Autowired
private ChatService chatService;
@Autowired
private UserCache userCache;
@GetMapping("/check")
@ApiOperation("批量判断是否是自己好友")
public ApiResult<FriendCheckResp> check(@Valid FriendCheckReq request) {//todo
return ApiResult.success();
}
@PostMapping("/apply")
@ApiOperation("申请好友")
public ApiResult<Void> apply(@Valid @RequestBody FriendApplyReq request) {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
@DeleteMapping()
@ApiOperation("删除好友")
public ApiResult<Void> delete(@Valid @RequestBody FriendDeleteReq request) {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
@GetMapping("/apply/page")
@ApiOperation("好友申请列表")
public ApiResult<PageBaseResp<FriendApplyResp>> page(@Valid PageBaseReq request) {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
@GetMapping("/apply/unread")
@ApiOperation("申请未读数")
public ApiResult<FriendUnreadResp> unread() {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
@PutMapping("/apply")
@ApiOperation("申请审批")
public ApiResult<Void> applyApprove(@Valid @RequestBody FriendApproveReq request) {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
@PutMapping("/page")
@ApiOperation("联系人列表")
public ApiResult<CursorPageBaseResp<ChatMemberResp>> applyApprove(@Valid CursorPageBaseReq request) {//todo
Long uid = RequestHolder.get().getUid();
return ApiResult.success();
}
}

View File

@@ -0,0 +1,31 @@
package com.abin.mallchat.custom.user.domain.vo.request.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* Description: 申请好友信息
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendApplyReq {
@NotBlank
@ApiModelProperty("申请信息")
private String msg;
@NotBlank
@ApiModelProperty("好友uid")
private Long targetUid;
}

View File

@@ -0,0 +1,27 @@
package com.abin.mallchat.custom.user.domain.vo.request.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* Description: 申请好友信息
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendApproveReq {
@NotNull
@ApiModelProperty("审批动作 2同意")
private Integer approveStatus;
}

View File

@@ -0,0 +1,30 @@
package com.abin.mallchat.custom.user.domain.vo.request.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* Description: 好友校验
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendCheckReq {
@NotEmpty
@Size(max = 50)
@ApiModelProperty("校验好友的uid")
private List<Long> uidList;
}

View File

@@ -0,0 +1,27 @@
package com.abin.mallchat.custom.user.domain.vo.request.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* Description: 申请好友信息
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendDeleteReq {
@NotBlank
@ApiModelProperty("好友uid")
private Long targetUid;
}

View File

@@ -0,0 +1,32 @@
package com.abin.mallchat.custom.user.domain.vo.response.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Description: 好友校验
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendApplyResp {
@ApiModelProperty("申请人uid")
private Long uid;
@ApiModelProperty("申请类型 1加好友")
private Integer type;
@ApiModelProperty("申请信息")
private String msg;
@ApiModelProperty("申请状态 1待审批 2同意")//todo 自己去加枚举
private Integer status;
}

View File

@@ -0,0 +1,32 @@
package com.abin.mallchat.custom.user.domain.vo.response.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* Description: 好友校验
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendCheckResp {
@ApiModelProperty("校验结果")
private List<FriendCheck> checkedList;
@Data
public static class FriendCheck {
private Long uid;
private Boolean isFriend;
}
}

View File

@@ -0,0 +1,24 @@
package com.abin.mallchat.custom.user.domain.vo.response.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Description: 好友校验
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendResp {
@ApiModelProperty("申请列表的未读数")
private Integer unReadCount;
}

View File

@@ -0,0 +1,24 @@
package com.abin.mallchat.custom.user.domain.vo.response.friend;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Description: 好友校验
* Author: <a href="https://github.com/zongzibinbin">abin</a>
* Date: 2023-03-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FriendUnreadResp {
@ApiModelProperty("申请列表的未读数")
private Integer unReadCount;
}