/* 此处为数据对应库 US.friend 集合,里面包含了好友分组,好友,群,群成员,最近联系人。 US.friend.allclass 数组 是所有的好友分组,结构参见好友分组实体U.MD.F.T.friendGroupEntity US.friend.friends 数组 是所有的好友,结构参见好友实体U.MD.F.T.friendEntity US.friend.group 数组 是所有的群,结构参见群实体U.MD.F.T.groupEntity US.friend.groupusers 数组 是所有的群好友,结构参见群成员实体U.MD.F.T.groupUserEntity US.friend.recentcontacts 数组 是所有的在线好友,结构为U.MD.F.T.recentContactsEntity 从数据库中取出的数据都要放到此全局变量中,当新建好友,新建分组等时,需要用下面的结构生成新的实体。 */ Namespace.register("U.MD.F.T"); //好友数据源操作命名空间 /** * 好友实体 * * @param {array} 好友信息 ----------[0] 好友签名 ----------[1] 好友用户id ----------[2] 好友原图 ----------[3] 好友小图 ----------[4] 好友别名 ----------[5] 好友用户名 ----------[6] 好友id ----------[7] 好友备注 ----------[8] 好友分组id ----------[9] 是否在线 */ U.MD.F.T.friendEntity = function (signature, userid, userimagehead, thumbnailheadimage, nickname, name, friendid, descript, groupid, islogin) { this.UserIndividualitysignature = signature; this.UserId = userid; this.UserImageHead = userimagehead; this.UserThumbnailImageHead = thumbnailheadimage; this.UserNickName = nickname; this.UserName = name; this.FriendsID = friendid; this.FriendsDescript = descript; this.FriendsGroupID = groupid; this.IsLogin = islogin; } /** * 最近联系人 * * @param {array} 在线好友信息 ----------[0] 好友用户id ----------[1] 好友用户名 ----------[2] 好友大图 ----------[3] 好友昵称 ----------[4] 好友小图 ----------[5] 最后聊天时间 ----------[6] 好友备注 ----------[7] 好友签名 ----------[8] 是否在线 */ U.MD.F.T.recentContactsEntity = function (userid, username, userimagehead, usernickname, userthumbnailimagehead, sendtime, descript, signature, islogin) { this.UserId = userid; this.UserName = username; this.UserImageHead = userimagehead; this.UserNickName = usernickname; this.UserThumbnailImageHead = userthumbnailimagehead; this.maxMessageSendTime = sendtime; this.FriendsDescript = descript; this.UserIndividualitysignature = signature; this.IsLogin = islogin; } /** * 好友分组实体 * * @param {array} 好友分组信息 ----------[0] 分组描述 ----------[1] 分组分组id ----------[2] 分组名 */ U.MD.F.T.friendGroupEntity = function (groupid, groupname, descript) { this.FriendsGroupID = groupid; this.FriendsGroupName = groupname; this.FriendsGroupDescript = descript; } /** * 群实体 * * @param {array} 群信息 ----------[0] 群id ----------[1] 群名 ----------[2] 群创建时间 ----------[3] 群创建用户id ----------[4] 群管理用户id ----------[5] 群描述 ----------[6] 群备注 */ U.MD.F.T.groupEntity = function (groupid, name, date, userid, descript, remark) { this.GroupManageID = groupid; this.GroupManageName = name; this.GroupManageCreateDate = date; this.GroupManageCreateUserID = userid; this.GroupManageUserID = userid; this.GroupManageDescript = descript; this.GroupManageRemark = remark; } /** * 群成员实体 * * @param {array} 群信息 ----------[0] 群用户id ----------[1] 群用户头像 ----------[2] 群用户昵称 ----------[3] 群用户名 ----------[4] 群用户小图 ----------[5] 群用户描述 ----------[6] 群id ----------[6] 群用户登录信息 */ U.MD.F.T.groupUserEntity = function (userid, userimagehead, nickname, name, thumbnailimagehead, descript, groupid, islogin) { this.UserId = userid; this.UserImageHead = userimagehead; this.UserNickName = nickname; this.UserName = name; this.UserThumbnailImageHead = thumbnailimagehead; this.GroupUsersDescript = descript; this.GroupManageID = groupid; this.IsLogin = islogin; } /** * 循环所有好友,让在线用户都置顶在最上面。 * */ U.MD.F.T.initFriendInfo = function () { var i, j, _arr = ["friends", "groupusers", "recentcontacts"], _userinfo; //循环US.friend变量,修改里面的好友、群好友、在线联系人的信息为默认信息,同事设置用户是否在线 for (i = 0; i < _arr.length; i++) { //0 好友分组 1好友信息 2群分组 3群用户 4最近联系人 5在线好友 这里只修改有用户信息的 所以修改为1、3、4 // if (i == 1 && i == 3 && i == 4) { for (j = 0; j < US.friend[_arr[i]].length; j++) { _userinfo = US.friend[_arr[i]][j]; //判断用户是否在线,如果在线设置在线属性为在线 if (US.friend.onlinefirendinfo.indexOf(_userinfo.UserId) > -1) { _userinfo.IsLogin = 1; //设置在线 } //如果是好友信息的修改,由于从数据库里面选出来的数据有null值,所以这里把null过滤了 if (i != 1) { U.Json.Change(_userinfo, { "UserIndividualitysignature": _userinfo["UserIndividualitysignature"] || "", "UserNickName": _userinfo.UserName, "FriendsDescript": _userinfo["FriendsDescript"] || _userinfo.UserName }); } //如果是群好友信息的修改,由于从数据库里面选出来的数据有null值,所以这里把null过滤了 else { U.Json.Change(_userinfo, { "UserNickName": _userinfo.UserName, "GroupUsersDescript": _UFE[j]["GroupUsersDescript"] || _userinfo.UserName }); } } //除了最近联系人以外,其他的都要重新排序 if (i != "recentcontacts") { U.Json.Reset(US.friend[_arr[i]], "IsLogin", 1); //设置完在线后,把在线用户发在最前面,这里是根据IsLogin = 1的排序 } } // } }