lzy 3 weeks ago
parent
commit
d50bb5df33

+ 5 - 3
src/main/java/com/zhentao/groups/MongoDB/controller/GroupMessageController.java

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
 
-@RequestMapping("/group")
+@RequestMapping("/groupMessage")
 @RestController
 public class GroupMessageController {
 
@@ -25,7 +25,7 @@ public class GroupMessageController {
     private MongoTemplate mongoTemplate;
 
 
-    @PostMapping("/groupMessage")
+    @PostMapping("/cunchugroupMessage")
     @NullLogin
     public String groupMessage(@RequestBody Message message)
     {
@@ -35,10 +35,12 @@ public class GroupMessageController {
         groupMessage.setContent(message.getContent());
         groupMessage.setContent_type(message.getContent_type());
         groupMessage.setCreated_at(new Date());
-
         mongoTemplate.save(groupMessage);
 
 
+
+
+
         return "success";
     }
 

+ 39 - 0
src/main/java/com/zhentao/groups/controller/groupsController.java

@@ -0,0 +1,39 @@
+package com.zhentao.groups.controller;
+
+import com.zhentao.groups.dto.AddGroupMembers;
+import com.zhentao.groups.dto.AddGroupsDto;
+import com.zhentao.groups.service.GroupsService;
+import com.zhentao.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("/group")
+@RestController
+public class groupsController {
+
+
+    @Autowired
+    private GroupsService groupsService;
+
+
+//  创建群聊
+    @PostMapping("/addGroup")
+    public Result addGroup(@RequestBody AddGroupsDto addGroupsDto){
+        return groupsService.addGroup(addGroupsDto);
+    }
+
+
+//    添加好友
+    @PostMapping("/AddGroupMembers")
+    public Result AddGroupMembers(@RequestBody AddGroupMembers addGroupMembers){
+        return groupsService.AddGroupMembers(addGroupMembers);
+    }
+
+
+
+
+
+}

+ 22 - 0
src/main/java/com/zhentao/groups/dto/AddGroupMembers.java

@@ -0,0 +1,22 @@
+package com.zhentao.groups.dto;
+
+import com.zhentao.groups.pojo.GroupMembers;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AddGroupMembers  implements Serializable {
+
+//  群id
+    private Long groupId;
+
+    private List<GroupMembers> data;
+
+
+}

+ 39 - 0
src/main/java/com/zhentao/groups/dto/AddGroupsDto.java

@@ -0,0 +1,39 @@
+package com.zhentao.groups.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AddGroupsDto {
+    /**
+     * 群名称
+     */
+    private String name;
+
+    /**
+     * 创建者ID
+     */
+    private Long creatorId;
+
+    /**
+     * 群头像
+     */
+    private String avatar;
+
+    /**
+     * 群公告
+     */
+    private String announcement;
+
+    /**
+     * 群描述
+     */
+    private String description;
+
+}

+ 2 - 0
src/main/java/com/zhentao/groups/mapper/GroupMembersMapper.java

@@ -2,6 +2,7 @@ package com.zhentao.groups.mapper;
 
 import com.zhentao.groups.pojo.GroupMembers;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
 * @author lzy
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 * @createDate 2025-06-04 16:00:48
 * @Entity com.zhentao.groups.pojo.GroupMembers
 */
+@Mapper
 public interface GroupMembersMapper extends BaseMapper<GroupMembers> {
 
 }

+ 4 - 2
src/main/java/com/zhentao/groups/mapper/GroupsMapper.java

@@ -1,7 +1,8 @@
 package com.zhentao.groups.mapper;
 
-import com.zhentao.groups.pojo.Groups;
+import com.zhentao.groups.pojo.Groupss;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
 * @author lzy
@@ -9,7 +10,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 * @createDate 2025-06-04 16:00:48
 * @Entity com.zhentao.groups.pojo.Groups
 */
-public interface GroupsMapper extends BaseMapper<Groups> {
+@Mapper
+public interface GroupsMapper extends BaseMapper<Groupss> {
 
 }
 

+ 8 - 1
src/main/java/com/zhentao/groups/pojo/GroupMembers.java

@@ -1,11 +1,14 @@
 package com.zhentao.groups.pojo;
 
+import com.alibaba.fastjson.annotation.JSONField;
 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 java.io.Serializable;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 /**
@@ -18,17 +21,20 @@ public class GroupMembers implements Serializable {
     /**
      * 
      */
-    @TableId(type = IdType.AUTO)
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    @TableId
     private Long id;
 
     /**
      * 群ID
      */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long groupId;
 
     /**
      * 用户ID
      */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long userId;
 
     /**
@@ -49,6 +55,7 @@ public class GroupMembers implements Serializable {
     /**
      * 最后确认的消息ID
      */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long lastAckMsgId;
 
     @TableField(exist = false)

+ 8 - 5
src/main/java/com/zhentao/groups/pojo/Groups.java → src/main/java/com/zhentao/groups/pojo/Groupss.java

@@ -1,25 +1,27 @@
 package com.zhentao.groups.pojo;
 
-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 java.io.Serializable;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 /**
  * 群组表
  * @TableName groups
  */
-@TableName(value ="groups")
+@TableName(value ="groupss")
 @Data
-public class Groups implements Serializable {
+public class Groupss implements Serializable {
     /**
      * id
 
      */
-    @TableId(type = IdType.AUTO)
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    @TableId
     private Long groupId;
 
     /**
@@ -30,6 +32,7 @@ public class Groups implements Serializable {
     /**
      * 创建者ID
      */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long creatorId;
 
     /**
@@ -81,7 +84,7 @@ public class Groups implements Serializable {
         if (getClass() != that.getClass()) {
             return false;
         }
-        Groups other = (Groups) that;
+        Groupss other = (Groupss) that;
         return (this.getGroupId() == null ? other.getGroupId() == null : this.getGroupId().equals(other.getGroupId()))
             && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
             && (this.getCreatorId() == null ? other.getCreatorId() == null : this.getCreatorId().equals(other.getCreatorId()))

+ 12 - 2
src/main/java/com/zhentao/groups/service/GroupsService.java

@@ -1,13 +1,23 @@
 package com.zhentao.groups.service;
 
-import com.zhentao.groups.pojo.Groups;
+import com.zhentao.groups.dto.AddGroupMembers;
+import com.zhentao.groups.dto.AddGroupsDto;
+import com.zhentao.groups.pojo.Groupss;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.vo.Result;
 
 /**
 * @author lzy
 * @description 针对表【groups(群组表)】的数据库操作Service
 * @createDate 2025-06-04 16:00:48
 */
-public interface GroupsService extends IService<Groups> {
+public interface GroupsService extends IService<Groupss> {
+
+//    创建群聊
+    Result addGroup(AddGroupsDto addGroupsDto);
+
+
+//        添加人数
+    Result AddGroupMembers(AddGroupMembers addGroupMembers);
 
 }

+ 115 - 2
src/main/java/com/zhentao/groups/service/impl/GroupsServiceImpl.java

@@ -1,10 +1,27 @@
 package com.zhentao.groups.service.impl;
 
+import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhentao.groups.pojo.Groups;
+import com.zhentao.groups.dto.AddGroupMembers;
+import com.zhentao.groups.dto.AddGroupsDto;
+import com.zhentao.groups.mapper.GroupMembersMapper;
+import com.zhentao.groups.pojo.GroupMembers;
+import com.zhentao.groups.pojo.Groupss;
+import com.zhentao.groups.service.GroupMembersService;
 import com.zhentao.groups.service.GroupsService;
 import com.zhentao.groups.mapper.GroupsMapper;
+import com.zhentao.user.domain.UserShouye;
+import com.zhentao.user.mapper.UserShouyeMapper;
+import com.zhentao.user.service.UserShouyeService;
+import com.zhentao.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
 * @author lzy
@@ -12,11 +29,107 @@ import org.springframework.stereotype.Service;
 * @createDate 2025-06-04 16:00:48
 */
 @Service
-public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groups>
+public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groupss>
     implements GroupsService{
 
+    @Autowired
+    private GroupMembersMapper groupMembersMapper;
+    @Autowired
+    private RedisTemplate<String,String> redisTemplate;
+
+    @Autowired
+    private UserShouyeMapper userShouyeMapper;
+
+//  创建群
+    @Override
+    public Result addGroup(AddGroupsDto addGroupsDto) {
+        Groupss groups=new Groupss();
+        groups.setGroupId(IdUtil.getSnowflake().nextId());
+        groups.setName(addGroupsDto.getName());
+        groups.setCreatorId(addGroupsDto.getCreatorId());
+        groups.setAvatar(addGroupsDto.getAvatar());
+        groups.setAnnouncement(addGroupsDto.getAnnouncement());
+        groups.setDescription(addGroupsDto.getDescription());
+        groups.setMaxMembers(200);
+        groups.setStatus(1);
+        groups.setCreatedAt(new Date());
+        groups.setUpdatedAt(new Date());
+        int insert1 = this.baseMapper.insert(groups);
+
+        GroupMembers groupMembers=new GroupMembers();
+        groupMembers.setId(IdUtil.getSnowflake().nextId());
+        groupMembers.setGroupId(groups.getGroupId());
+        groupMembers.setUserId(groups.getCreatorId());
+        groupMembers.setNickname(groups.getName());
+        groupMembers.setRole(2);
+        groupMembers.setJoinTime(new Date());
+        int insert = groupMembersMapper.insert(groupMembers);
+
+        UserShouye userShouye=new UserShouye();
+        userShouye.setId(IdUtil.getSnowflake().nextId());
+        userShouye.setUid1(addGroupsDto.getCreatorId());
+        userShouye.setUid2(null);
+        userShouye.setGid(groups.getGroupId());
+        userShouye.setStatus(0);
+        userShouye.setSort(null);
+        int insert2 = userShouyeMapper.insert(userShouye);
+
+        if (insert1!=0 && insert!=0 && insert2!=0){
+            return Result.OK(null,"创建成功");
+        }
+        return Result.ERR(null,"创建失败");
+    }
+
+
+    @Autowired
+    private GroupMembersService groupMembersService;
+    @Autowired
+    private UserShouyeService userShouyeService;
+    @Autowired
+    private GroupsMapper groupsMapper;
+//    添加人数
+    @Override
+    public Result AddGroupMembers(AddGroupMembers addGroupMembers) {
+
+        List<GroupMembers> data = new ArrayList<>();
+        Groupss groupss = groupsMapper.selectById(addGroupMembers.getGroupId());
+        System.err.println(groupss);
+        List<UserShouye> userShouyes =new ArrayList<>();
+
+        for (GroupMembers groupMembers:addGroupMembers.getData()){
+
+
+            GroupMembers groupMembers1=new GroupMembers();
+            groupMembers1.setId(IdUtil.getSnowflake().nextId());
+            groupMembers1.setGroupId(groupss.getGroupId());
+            groupMembers1.setUserId(groupMembers.getUserId());
+            groupMembers1.setNickname(groupss.getName());
+            groupMembers1.setRole(0);
+            groupMembers1.setJoinTime(new Date());
+            data.add(groupMembers1);
+
+            UserShouye userShouye=new UserShouye();
+            userShouye.setId(IdUtil.getSnowflake().nextId());
+            userShouye.setUid1(groupMembers.getUserId());
+            userShouye.setUid2(null);
+            userShouye.setGid(groupss.getGroupId());
+            userShouye.setStatus(0);
+            userShouye.setSort(null);
+            userShouyes.add(userShouye);
+        }
+        boolean b1 = groupMembersService.saveBatch(data);
+        boolean b = userShouyeService.saveBatch(userShouyes);
+        if (b1!=false && b!=false){
+            return Result.OK(null,"添加成功");
+        }
+
+        return Result.ERR(null,"添加失败");
+    }
+
+
 }
 
 
 
 
+

+ 5 - 4
src/main/java/com/zhentao/intercepoter/Userinterceptor.java

@@ -18,9 +18,9 @@ public class Userinterceptor implements HandlerInterceptor {
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         String requestURI = request.getRequestURI();
-//        if (requestURI.startsWith("/user/login")||requestURI.startsWith("/user/register")){
-//            return true;
-//        }
+        if (requestURI.startsWith("/user/login")||requestURI.startsWith("/user/register")){
+            return true;
+        }
         String token = request.getHeader("token");
         HandlerMethod handlerMethod = (HandlerMethod) handler;
         NullLogin annotation = handlerMethod.getMethod().getAnnotation(NullLogin.class);
@@ -35,7 +35,8 @@ public class Userinterceptor implements HandlerInterceptor {
         String userIdFromToken = TokenUtils.getUserIdFromToken(token);
         System.err.println("解析后的ID:"+userIdFromToken);
         String s = redisTemplate.opsForValue().get(userIdFromToken);
-        if (s!=null){
+
+        if (s!=null && s.equals(token)){
             return true;
         }else {
             System.err.println("Token错误");

+ 1 - 0
src/main/java/com/zhentao/user/controller/UserController.java

@@ -46,6 +46,7 @@ public class UserController {
     @PostMapping("/UserPassLogin")
     @NullLogin
     public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) {
+
         return userLoginService.UserPassLogin(userPassDto);
     }
 

+ 2 - 0
src/main/java/com/zhentao/user/mapper/UserLoginMapper.java

@@ -2,6 +2,7 @@ package com.zhentao.user.mapper;
 
 import com.zhentao.user.domain.UserLogin;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
 * @author 86183
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 * @createDate 2025-06-03 18:38:51
 * @Entity com.zhentao.user.domain.UserLogin
 */
+@Mapper
 public interface UserLoginMapper extends BaseMapper<UserLogin> {
 
 }

+ 3 - 0
src/main/java/com/zhentao/user/service/impl/UserLoginServiceImpl.java

@@ -209,6 +209,9 @@ public class UserLoginServiceImpl extends ServiceImpl<UserLoginMapper, UserLogin
                 }
                 // 生成JWT令牌
                 String jwtToken = TokenUtils.generateToken(one.getId()+"");
+                stringRedisTemplate.opsForValue().set(one.getId().toString(),jwtToken);
+                System.err.println(jwtToken);
+                System.err.println(stringRedisTemplate.opsForValue().get(one.getId().toString()));
                 // 返回登录成功结果和JWT令牌
                 return Result.OK("登录成功",jwtToken);
             }else {

+ 1 - 1
src/main/resources/mapper/GroupsMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zhentao.groups.mapper.GroupsMapper">
 
-    <resultMap id="BaseResultMap" type="com.zhentao.groups.pojo.Groups">
+    <resultMap id="BaseResultMap" type="com.zhentao.groups.pojo.Groupss">
             <id property="groupId" column="group_id" jdbcType="BIGINT"/>
             <result property="name" column="name" jdbcType="VARCHAR"/>
             <result property="creatorId" column="creator_id" jdbcType="BIGINT"/>