From f0a2fa51ff6906d5bac87c06b0b8b4fb76d3a21d Mon Sep 17 00:00:00 2001 From: zhongzb <972627721@qq.com> Date: Mon, 17 Jul 2023 00:36:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8D=95=E8=81=8A=E7=BE=A4=E8=81=8A?= =?UTF-8?q?=E8=A1=A8=E7=BB=93=E6=9E=84=EF=BC=8C=E6=8E=A5=E5=8F=A3=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/version/2023-07-17.sql | 77 +++++++++++++++ .../chat/controller/ContactController.java | 20 ++++ .../controller/GroupMemberController.java | 20 ++++ .../chat/controller/RoomController.java | 20 ++++ .../mallchat/common/chat/dao/ContactDao.java | 20 ++++ .../common/chat/dao/GroupMemberDao.java | 20 ++++ .../mallchat/common/chat/dao/RoomDao.java | 19 +--- .../common/chat/domain/entity/Contact.java | 83 ++++++++++++++++ .../chat/domain/entity/GroupMember.java | 65 +++++++++++++ .../common/chat/domain/entity/Room.java | 38 +++++--- .../common/chat/mapper/ContactMapper.java | 16 ++++ .../common/chat/mapper/GroupMemberMapper.java | 16 ++++ .../common/chat/mapper/RoomMapper.java | 5 +- .../common/chat/service/IContactService.java | 16 ++++ .../chat/service/IGroupMemberService.java | 16 ++++ .../common/chat/service/IRoomService.java | 4 +- .../user/controller/UserApplyController.java | 20 ++++ .../user/controller/UserFriendController.java | 20 ++++ .../common/user/dao/UserApplyDao.java | 20 ++++ .../common/user/dao/UserFriendDao.java | 20 ++++ .../common/user/domain/entity/User.java | 6 ++ .../common/user/domain/entity/UserApply.java | 83 ++++++++++++++++ .../common/user/domain/entity/UserFriend.java | 59 ++++++++++++ .../common/user/mapper/UserApplyMapper.java | 16 ++++ .../common/user/mapper/UserFriendMapper.java | 16 ++++ .../user/service/IUserApplyService.java | 16 ++++ .../user/service/IUserFriendService.java | 16 ++++ .../resources/mapper/chat/ContactMapper.xml | 5 + .../mapper/chat/GroupMemberMapper.xml | 5 + .../resources/mapper/user/UserApplyMapper.xml | 5 + .../mapper/user/UserFriendMapper.xml | 5 + .../chat/service/adapter/RoomAdapter.java | 1 - .../user/controller/FriendController.java | 94 +++++++++++++++++++ .../vo/request/friend/FriendApplyReq.java | 31 ++++++ .../vo/request/friend/FriendApproveReq.java | 27 ++++++ .../vo/request/friend/FriendCheckReq.java | 30 ++++++ .../vo/request/friend/FriendDeleteReq.java | 27 ++++++ .../vo/response/friend/FriendApplyResp.java | 32 +++++++ .../vo/response/friend/FriendCheckResp.java | 32 +++++++ .../domain/vo/response/friend/FriendResp.java | 24 +++++ .../vo/response/friend/FriendUnreadResp.java | 24 +++++ 41 files changed, 1057 insertions(+), 32 deletions(-) create mode 100644 docs/version/2023-07-17.sql create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/ContactController.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/GroupMemberController.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/RoomController.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/dao/ContactDao.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/dao/GroupMemberDao.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/Contact.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/GroupMember.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/mapper/ContactMapper.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/mapper/GroupMemberMapper.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/IContactService.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/IGroupMemberService.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/controller/UserApplyController.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/controller/UserFriendController.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/dao/UserApplyDao.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/dao/UserFriendDao.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/domain/entity/UserApply.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/domain/entity/UserFriend.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/UserApplyMapper.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/UserFriendMapper.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/service/IUserApplyService.java create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/user/service/IUserFriendService.java create mode 100644 mallchat-common/src/main/resources/mapper/chat/ContactMapper.xml create mode 100644 mallchat-common/src/main/resources/mapper/chat/GroupMemberMapper.xml create mode 100644 mallchat-common/src/main/resources/mapper/user/UserApplyMapper.xml create mode 100644 mallchat-common/src/main/resources/mapper/user/UserFriendMapper.xml create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/controller/FriendController.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/friend/FriendApplyReq.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/friend/FriendApproveReq.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/friend/FriendCheckReq.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/request/friend/FriendDeleteReq.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/response/friend/FriendApplyResp.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/response/friend/FriendCheckResp.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/response/friend/FriendResp.java create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/user/domain/vo/response/friend/FriendUnreadResp.java diff --git a/docs/version/2023-07-17.sql b/docs/version/2023-07-17.sql new file mode 100644 index 0000000..c9c28f4 --- /dev/null +++ b/docs/version/2023-07-17.sql @@ -0,0 +1,77 @@ +###单聊群聊功能 +ALTER TABLE `user` add COLUMN `active_status` INT(11) DEFAULT "2" COMMENT '在线状态 1在线 2离线' AFTER `open_id` ; + +DROP TABLE IF EXISTS `room`; +CREATE TABLE `room` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `name` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '群名称', + `avatar` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '群头像', + `type` int(11) NOT NULL COMMENT '房间类型 1群聊', + `hot_flag` int(11) DEFAULT '0' COMMENT '是否全员展示 0否 1是', + `active_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '群最后消息的更新时间(热点群不需要写扩散,更新这里就行)', + `ext_json` json DEFAULT NULL COMMENT '额外信息(根据不同类型房间有不同存储的东西)', + `create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + `update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_create_time` (`create_time`) USING BTREE, + KEY `idx_update_time` (`update_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='房间表'; + +CREATE TABLE `user_apply` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `uid` bigint(20) NOT NULL COMMENT '申请人uid', + `type` int(11) NOT NULL COMMENT '申请类型 1加好友', + `target_id` bigint(20) NOT NULL COMMENT '接收人uid', + `msg` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请信息', + `status` int(11) NOT NULL COMMENT '申请状态 1待审批 2同意', + `read_status` int(11) NOT NULL COMMENT '阅读状态 1未读 2已读', + `create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + `update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uniq_target_id_uid` (`target_id`,`uid`) USING BTREE, + KEY `idx_target_id` (`target_id`) USING BTREE, + KEY `idx_create_time` (`create_time`) USING BTREE, + KEY `idx_update_time` (`update_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户申请表'; + +CREATE TABLE `user_friend` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `uid` bigint(20) NOT NULL COMMENT 'uid', + `friend_uid` bigint(20) NOT NULL COMMENT '好友uid', + `create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + `update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uniq_uid_friend_uid` (`uid`,`friend_uid`) USING BTREE, + KEY `idx_create_time` (`create_time`) USING BTREE, + KEY `idx_update_time` (`update_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户联系人表'; + +CREATE TABLE `group_member` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `room_id` bigint(20) NOT NULL COMMENT '房间id', + `uid` bigint(20) NOT NULL COMMENT '成员uid', + `type` int(11) NOT NULL COMMENT '成员类型 1群主 2管理员 3普通成员', + `create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + `update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_room_id_type` (`room_id`,`type`) USING BTREE, + KEY `idx_create_time` (`create_time`) USING BTREE, + KEY `idx_update_time` (`update_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='群成员表'; + +CREATE TABLE `contact` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `uid` bigint(20) NOT NULL COMMENT 'uid', + `type` int(11) NOT NULL COMMENT '聊天类型 1单聊 2普通群聊', + `hot_flag` int(11) DEFAULT '0' COMMENT '是否全员展示 0否 1是', + `target_id` bigint(20) NOT NULL COMMENT '聊天对象type=1:uid,type=2:房间id', + `read_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '阅读到的时间', + `active_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '会话内消息最后更新的时间(只有普通会话需要维护,全员会话不需要维护)', + `create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + `update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uniq_uid_target_id_type` (`uid`,`target_id`,`type`) USING BTREE, + KEY `idx_target_id_read_time` (`target_id`,`read_time`) USING BTREE, + KEY `idx_create_time` (`create_time`) USING BTREE, + KEY `idx_update_time` (`update_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话列表'; \ No newline at end of file diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/ContactController.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/ContactController.java new file mode 100644 index 0000000..d530605 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/ContactController.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.chat.controller; + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + *
+ * 会话列表 前端控制器 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Controller +@RequestMapping("/contact") +public class ContactController { + +} + diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/GroupMemberController.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/GroupMemberController.java new file mode 100644 index 0000000..ece7322 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/GroupMemberController.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.chat.controller; + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + *+ * 群成员表 前端控制器 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Controller +@RequestMapping("/groupMember") +public class GroupMemberController { + +} + diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/RoomController.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/RoomController.java new file mode 100644 index 0000000..ef4f012 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/controller/RoomController.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.chat.controller; + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + *+ * 房间表 前端控制器 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Controller +@RequestMapping("/room") +public class RoomController { + +} + diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/dao/ContactDao.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/dao/ContactDao.java new file mode 100644 index 0000000..efd2bf0 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/dao/ContactDao.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.chat.dao; + +import com.abin.mallchat.common.chat.domain.entity.Contact; +import com.abin.mallchat.common.chat.mapper.ContactMapper; +import com.abin.mallchat.common.chat.service.IContactService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *+ * 会话列表 服务实现类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Service +public class ContactDao extends ServiceImpl+ * 群成员表 服务实现类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Service +public class GroupMemberDao extends ServiceImpl- * 会话表 服务实现类 + * 房间表 服务实现类 *
* * @author abin - * @since 2023-03-25 + * @since 2023-07-16 */ @Service -public class RoomDao extends ServiceImpl+ * 会话列表 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("contact") +public class Contact implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * uid + */ + @TableField("uid") + private Long uid; + + /** + * 聊天类型 1单聊 2普通群聊 + */ + @TableField("type") + private Integer type; + + /** + * 是否全员展示 0否 1是 + */ + @TableField("hot_flag") + private Integer hotFlag; + + /** + * 聊天对象type=1:uid,type=2:房间id + */ + @TableField("target_id") + private Long targetId; + + /** + * 阅读到的时间 + */ + @TableField("read_time") + private LocalDateTime readTime; + + /** + * 会话内消息最后更新的时间(只有普通会话需要维护,全员会话不需要维护) + */ + @TableField("active_time") + private LocalDateTime activeTime; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/GroupMember.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/GroupMember.java new file mode 100644 index 0000000..1b8ed4f --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/GroupMember.java @@ -0,0 +1,65 @@ +package com.abin.mallchat.common.chat.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *+ * 群成员表 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("group_member") +public class GroupMember implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 房间id + */ + @TableField("room_id") + private Long roomId; + + /** + * 成员uid + */ + @TableField("uid") + private Long uid; + + /** + * 成员类型 1群主 2管理员 3普通成员 + */ + @TableField("type") + private Integer type; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/Room.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/Room.java index ef74c67..67a6ec2 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/Room.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/Room.java @@ -8,15 +8,15 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; -import java.util.Date; +import java.time.LocalDateTime; /** *- * 会话表 + * 房间表 *
* * @author abin - * @since 2023-03-25 + * @since 2023-07-16 */ @Data @EqualsAndHashCode(callSuper = false) @@ -32,36 +32,52 @@ public class Room implements Serializable { private Long id; /** - * 会话名 + * 群名称 */ @TableField("name") private String name; /** - * 会话类型 1大群聊 2沸点 - * - * @see com.abin.mallchat.common.chat.domain.enums.RoomTypeEnum + * 群头像 + */ + @TableField("avatar") + private String avatar; + + /** + * 房间类型 1群聊 */ @TableField("type") private Integer type; /** - * 最后活跃时间-排序 + * 是否全员展示 0否 1是 + */ + @TableField("hot_flag") + private Integer hotFlag; + + /** + * 群最后消息的更新时间(热点群不需要写扩散,更新这里就行) */ @TableField("active_time") - private Date activeTime; + private LocalDateTime activeTime; + + /** + * 额外信息(根据不同类型房间有不同存储的东西) + */ + @TableField("ext_json") + private String extJson; /** * 创建时间 */ @TableField("create_time") - private Date createTime; + private LocalDateTime createTime; /** * 修改时间 */ @TableField("update_time") - private Date updateTime; + private LocalDateTime updateTime; } diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/mapper/ContactMapper.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/mapper/ContactMapper.java new file mode 100644 index 0000000..5e9aa15 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/mapper/ContactMapper.java @@ -0,0 +1,16 @@ +package com.abin.mallchat.common.chat.mapper; + +import com.abin.mallchat.common.chat.domain.entity.Contact; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *+ * 会话列表 Mapper 接口 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface ContactMapper extends BaseMapper+ * 群成员表 Mapper 接口 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface GroupMemberMapper extends BaseMapper- * 会话表 Mapper 接口 + * 房间表 Mapper 接口 *
* * @author abin - * @since 2023-03-25 + * @since 2023-07-16 */ public interface RoomMapper extends BaseMapper+ * 会话列表 服务类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface IContactService extends IService+ * 群成员表 服务类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface IGroupMemberService extends IService- * 会话表 服务类 + * 房间表 服务类 *
* * @author abin - * @since 2023-03-25 + * @since 2023-07-16 */ public interface IRoomService extends IService+ * 用户申请表 前端控制器 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Controller +@RequestMapping("/userApply") +public class UserApplyController { + +} + diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/user/controller/UserFriendController.java b/mallchat-common/src/main/java/com/abin/mallchat/common/user/controller/UserFriendController.java new file mode 100644 index 0000000..654c5d3 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/user/controller/UserFriendController.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.user.controller; + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + *+ * 用户联系人表 前端控制器 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Controller +@RequestMapping("/userFriend") +public class UserFriendController { + +} + diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/user/dao/UserApplyDao.java b/mallchat-common/src/main/java/com/abin/mallchat/common/user/dao/UserApplyDao.java new file mode 100644 index 0000000..0beacd6 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/user/dao/UserApplyDao.java @@ -0,0 +1,20 @@ +package com.abin.mallchat.common.user.dao; + +import com.abin.mallchat.common.user.domain.entity.UserApply; +import com.abin.mallchat.common.user.mapper.UserApplyMapper; +import com.abin.mallchat.common.user.service.IUserApplyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *+ * 用户申请表 服务实现类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Service +public class UserApplyDao extends ServiceImpl+ * 用户联系人表 服务实现类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Service +public class UserFriendDao extends ServiceImpl+ * 用户申请表 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("user_apply") +public class UserApply implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 申请人uid + */ + @TableField("uid") + private Long uid; + + /** + * 申请类型 1加好友 + */ + @TableField("type") + private Integer type; + + /** + * 接收人uid + */ + @TableField("target_id") + private Long targetId; + + /** + * 申请信息 + */ + @TableField("msg") + private String msg; + + /** + * 申请状态 1待审批 2同意 + */ + @TableField("status") + private Integer status; + + /** + * 阅读状态 1未读 2已读 + */ + @TableField("read_status") + private Integer readStatus; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/user/domain/entity/UserFriend.java b/mallchat-common/src/main/java/com/abin/mallchat/common/user/domain/entity/UserFriend.java new file mode 100644 index 0000000..45a8d28 --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/user/domain/entity/UserFriend.java @@ -0,0 +1,59 @@ +package com.abin.mallchat.common.user.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *+ * 用户联系人表 + *
+ * + * @author abin + * @since 2023-07-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("user_friend") +public class UserFriend implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * uid + */ + @TableField("uid") + private Long uid; + + /** + * 好友uid + */ + @TableField("friend_uid") + private Long friendUid; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + + +} diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/UserApplyMapper.java b/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/UserApplyMapper.java new file mode 100644 index 0000000..18f7f7f --- /dev/null +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/user/mapper/UserApplyMapper.java @@ -0,0 +1,16 @@ +package com.abin.mallchat.common.user.mapper; + +import com.abin.mallchat.common.user.domain.entity.UserApply; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *+ * 用户申请表 Mapper 接口 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface UserApplyMapper extends BaseMapper+ * 用户联系人表 Mapper 接口 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface UserFriendMapper extends BaseMapper+ * 用户申请表 服务类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface IUserApplyService extends IService+ * 用户联系人表 服务类 + *
+ * + * @author abin + * @since 2023-07-16 + */ +public interface IUserFriendService extends IService+ * 好友相关接口 + *
+ * + * @author abin + * @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