一、构建数据
1、数据库设计
用户表、分组表、群组表、用户关系表、群组群员(用户)关系表、分组用户关系表
2、后台数据结构
using System; using System.Collections.Generic; namespace LayIM { public class Class1 { } /// <summary> /// 返回结果 /// </summary> public class JsonResultModel { public JsonResultType Code { get; set; } public object Data { get; set; } public string Msg { get; set; } } /// <summary> /// 成功失败 /// </summary> public enum JsonResultType { Success = 0, Failed = 1 } /// <summary> /// 基础信息json 其中FriendGroupEntity代表好友分组信息,GroupEntity代表群组信息,UserEntity就是了 /// </summary> public class BaseListResult { public BaseListResult() { //friend = new List<FriendGroupEntity>(); //group = new List<GroupEntity>(); } /// <summary> /// /// </summary> public IEnumerable<FriendGroupEntity> Friend { get; set; } /// <summary> /// /// </summary> public IEnumerable<GroupEntity> Group { get; set; } /// <summary> /// /// </summary> public UserEntity Mine { get; set; } } /// <summary> /// 群员信息json /// </summary> public class MembersListResult { /// <summary> /// 群主 /// </summary> public UserEntity Owner { get; set; } /// <summary> /// 群成员列表 /// </summary> public IEnumerable<GroupUserEntity> List { get; set; } } #region 用户基础信息 /// <summary> /// 基类 /// </summary> public class BaseEntity { public int Id { get; set; } } /// <summary> /// 基类 /// </summary> public class AvatarEntity : BaseEntity { public string Avatar { get; set; } } /// <summary> /// 用户基础信息(我的和好友的) /// </summary> public class UserEntity : AvatarEntity { public string Status { get; set; } public string UserName { get; set; } public string Sign { get; set; } } #endregion #region 好友分组信息 public class FriendGroupEntity { public string GroupName { get; set; } public string Id { get; set; } public string Online { get; set; } public string List { get; set; } } #endregion #region 群组信息 public class GroupEntity { public string GroupName { get; set; } public string Id { get; set; } public string Avatar { get; set; } } #endregion #region 通过群组获取好友列表 public class GroupUserEntity { public string UserName { get; set; } public string Id { get; set; } public string Avatar { get; set; } public string Sign { get; set; } } #endregion }