zhentao 2 months ago
parent
commit
03c6a28268

+ 23 - 0
src/main/java/com/zhentao/config/JacksonConfig.java

@@ -0,0 +1,23 @@
+package com.zhentao.config;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
+        ObjectMapper objectMapper = builder.build();
+
+        SimpleModule module = new SimpleModule();
+        module.addSerializer(Long.class, new ToStringSerializer());
+        module.addSerializer(Long.TYPE, new ToStringSerializer());
+        objectMapper.registerModule(module);
+
+        return objectMapper;
+    }
+}

+ 72 - 0
src/main/java/com/zhentao/shouye/domain/Groups.java

@@ -0,0 +1,72 @@
+package com.zhentao.shouye.domain;
+
+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 lombok.Data;
+
+/**
+ * 群组表
+ * @TableName groups
+ */
+@TableName(value ="groupss")
+@Data
+public class Groups implements Serializable {
+    /**
+     * id
+
+     */
+    @TableId(type = IdType.AUTO)
+    private Long groupId;
+
+    /**
+     * 群名称
+     */
+    private String name;
+
+    /**
+     * 创建者ID
+     */
+    private Long creatorId;
+
+    /**
+     * 群头像
+     */
+    private String avatar;
+
+    /**
+     * 群公告
+     */
+    private String announcement;
+
+    /**
+     * 群描述
+     */
+    private String description;
+
+    /**
+     * 最大成员数
+     */
+    private Integer maxMembers;
+
+    /**
+     * 状态(0-解散,1-正常)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updatedAt;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 55 - 0
src/main/java/com/zhentao/shouye/domain/UserShouye.java

@@ -0,0 +1,55 @@
+package com.zhentao.shouye.domain;
+
+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 com.zhentao.user.domain.UserLogin;
+import lombok.Data;
+
+/**
+ * 用户首页表
+ * @TableName user_shouye
+ */
+@TableName(value ="user_shouye")
+@Data
+public class UserShouye implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 用户1
+     */
+    private Long uid1;
+
+    /**
+     * 用户2
+     */
+    private Long uid2;
+
+    /**
+     * 群id
+     */
+    private Long gid;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+    @TableField(exist = false)
+    private UserLogin userLogin;
+    @TableField(exist = false)
+    private Groups groupss;
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 18 - 0
src/main/java/com/zhentao/shouye/mapper/GroupsMapper.java

@@ -0,0 +1,18 @@
+package com.zhentao.shouye.mapper;
+
+import com.zhentao.shouye.domain.Groups;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 86183
+* @description 针对表【groups(群组表)】的数据库操作Mapper
+* @createDate 2025-06-04 19:51:26
+* @Entity com.zhentao.shouye.domain.Groups
+*/
+public interface GroupsMapper extends BaseMapper<Groups> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/zhentao/shouye/mapper/UserShouyeMapper.java

@@ -0,0 +1,18 @@
+package com.zhentao.shouye.mapper;
+
+import com.zhentao.shouye.domain.UserShouye;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 86183
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Mapper
+* @createDate 2025-06-04 19:44:02
+* @Entity com.zhentao.shouye.domain.UserShouye
+*/
+public interface UserShouyeMapper extends BaseMapper<UserShouye> {
+
+}
+
+
+
+

+ 13 - 0
src/main/java/com/zhentao/shouye/service/GroupsService.java

@@ -0,0 +1,13 @@
+package com.zhentao.shouye.service;
+
+import com.zhentao.shouye.domain.Groups;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 86183
+* @description 针对表【groups(群组表)】的数据库操作Service
+* @createDate 2025-06-04 19:51:26
+*/
+public interface GroupsService extends IService<Groups> {
+
+}

+ 15 - 0
src/main/java/com/zhentao/shouye/service/UserShouyeService.java

@@ -0,0 +1,15 @@
+package com.zhentao.shouye.service;
+
+import com.zhentao.shouye.domain.UserShouye;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.shouye.dto.UserShouyeDto;
+import com.zhentao.vo.Result;
+
+/**
+* @author 86183
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Service
+* @createDate 2025-06-04 19:44:02
+*/
+public interface UserShouyeService extends IService<UserShouye> {
+    Result findAll(UserShouyeDto dto);
+}

+ 22 - 0
src/main/java/com/zhentao/shouye/service/impl/GroupsServiceImpl.java

@@ -0,0 +1,22 @@
+package com.zhentao.shouye.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.shouye.domain.Groups;
+import com.zhentao.shouye.service.GroupsService;
+import com.zhentao.shouye.mapper.GroupsMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 86183
+* @description 针对表【groups(群组表)】的数据库操作Service实现
+* @createDate 2025-06-04 19:51:26
+*/
+@Service
+public class GroupsServiceImpl extends ServiceImpl<GroupsMapper, Groups>
+    implements GroupsService{
+
+}
+
+
+
+

+ 72 - 0
src/main/java/com/zhentao/shouye/service/impl/UserShouyeServiceImpl.java

@@ -0,0 +1,72 @@
+package com.zhentao.shouye.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.shouye.domain.Groups;
+import com.zhentao.shouye.domain.UserShouye;
+import com.zhentao.shouye.dto.UserShouyeDto;
+import com.zhentao.shouye.service.GroupsService;
+import com.zhentao.shouye.service.UserShouyeService;
+import com.zhentao.shouye.mapper.UserShouyeMapper;
+import com.zhentao.user.domain.UserLogin;
+import com.zhentao.user.service.UserLoginService;
+import com.zhentao.vo.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.xml.ws.Action;
+import java.util.List;
+
+/**
+* @author 86183
+* @description 针对表【user_shouye(用户首页表)】的数据库操作Service实现
+* @createDate 2025-06-04 19:44:02
+*/
+@Service
+public class UserShouyeServiceImpl extends ServiceImpl<UserShouyeMapper, UserShouye>
+    implements UserShouyeService{
+    @Autowired
+    private UserLoginService userLoginService;
+    @Autowired
+    private GroupsService groupsService;
+    public static boolean isLongNotNull(long value) {
+        // 如果值为0L,认为是“空”,返回false
+        return value != 0;
+    }
+    @Override
+    public Result findAll(UserShouyeDto dto) {
+        System.err.println(dto.getUid1());
+//        将所有正在联系的用户展示
+        QueryWrapper<UserShouye> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("uid1",  dto.getUid1());
+        queryWrapper.eq("status",0);
+        List<UserShouye> list = this.list(queryWrapper);
+//        System.err.println(list);
+//        关联用户  群关联
+//        查出所有的用户信息
+        List<UserLogin> list1 = userLoginService.list();
+        List<Groups> list2 = groupsService.list();
+//        进行关联
+        for (UserShouye u:list) {
+            for (UserLogin l: list1) {
+                if (u.getUid2().equals(l.getId()) && isLongNotNull(u.getUid2())){
+                    u.setUserLogin(l);
+                }
+            }
+        }
+        System.err.println(list);
+        for (UserShouye u:list) {
+            for (Groups g: list2) {
+                if (u.getGid().equals(g.getGroupId()) && isLongNotNull(u.getGid())){
+                    u.setGroupss(g);
+                }
+            }
+        }
+        System.err.println(list);
+        return Result.OK(list,  "查询成功");
+    }
+}
+
+
+
+

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

@@ -46,7 +46,8 @@ public class UserController {
     @PostMapping("/UserPassLogin")
     @PostMapping("/UserPassLogin")
     @NullLogin
     @NullLogin
     public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) {
     public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) {
-        return userLoginService.UserPassLogin(userPassDto);
+        Result result = userLoginService.UserPassLogin(userPassDto);
+        return result;
     }
     }
 
 
 //    忘记密码
 //    忘记密码

+ 9 - 5
src/main/java/com/zhentao/user/domain/UserLogin.java

@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Data;
 import lombok.Data;
 
 
 /**
 /**
@@ -18,7 +22,7 @@ public class UserLogin implements Serializable {
     /**
     /**
      * 用户ID
      * 用户ID
      */
      */
-    @TableId
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long id;
     private Long id;
 
 
     /**
     /**
@@ -122,20 +126,20 @@ public class UserLogin implements Serializable {
     private Date updatedTime;
     private Date updatedTime;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     private String openId;
     private String openId;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     private String sessionKey;
     private String sessionKey;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     private String uniId;
     private String uniId;
 
 
     @TableField(exist = false)
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
-}
+}

+ 2 - 0
src/main/java/com/zhentao/user/dto/UserPassDto.java

@@ -1,10 +1,12 @@
 package com.zhentao.user.dto;
 package com.zhentao.user.dto;
 
 
 import lombok.Data;
 import lombok.Data;
+import lombok.ToString;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
 
 
 @Data
 @Data
+@ToString
 public class UserPassDto {
 public class UserPassDto {
 
 
     @NotBlank(message = "账号不能为空")
     @NotBlank(message = "账号不能为空")

+ 5 - 1
src/main/java/com/zhentao/user/service/impl/UserLoginServiceImpl.java

@@ -18,6 +18,8 @@ import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.DigestUtils;
 import org.springframework.util.DigestUtils;
 
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 
 
@@ -210,8 +212,10 @@ public class UserLoginServiceImpl extends ServiceImpl<UserLoginMapper, UserLogin
                 }
                 }
                 // 生成JWT令牌
                 // 生成JWT令牌
                 String jwtToken = TokenUtils.generateToken(one.getId()+"");
                 String jwtToken = TokenUtils.generateToken(one.getId()+"");
+                Map<String,Object> map = new HashMap<>();
+                map.put("token",jwtToken);
                 // 返回登录成功结果和JWT令牌
                 // 返回登录成功结果和JWT令牌
-                return Result.OK("登录成功",jwtToken);
+                return Result.OK(map,"登录成功");
             }else {
             }else {
                 // 如果获取锁超时,返回错误信息
                 // 如果获取锁超时,返回错误信息
                 return Result.ERR("获取锁超时",null);
                 return Result.ERR("获取锁超时",null);

+ 26 - 0
src/main/resources/mapper/GroupsMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhentao.shouye.mapper.GroupsMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.shouye.domain.Groups">
+            <id property="groupId" column="group_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="creatorId" column="creator_id" jdbcType="BIGINT"/>
+            <result property="avatar" column="avatar" jdbcType="VARCHAR"/>
+            <result property="announcement" column="announcement" jdbcType="VARCHAR"/>
+            <result property="description" column="description" jdbcType="VARCHAR"/>
+            <result property="maxMembers" column="max_members" jdbcType="INTEGER"/>
+            <result property="status" column="status" jdbcType="TINYINT"/>
+            <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+            <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        group_id,name,creator_id,
+        avatar,announcement,description,
+        max_members,status,created_at,
+        updated_at
+    </sql>
+</mapper>

+ 20 - 0
src/main/resources/mapper/UserShouyeMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhentao.shouye.mapper.UserShouyeMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.shouye.domain.UserShouye">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="uid1" column="uid1" jdbcType="BIGINT"/>
+            <result property="uid2" column="uid2" jdbcType="BIGINT"/>
+            <result property="gid" column="gid" jdbcType="BIGINT"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="sort" column="sort" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,uid1,uid2,
+        gid,status,sort
+    </sql>
+</mapper>