FriendData.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /*
  2. 此处为数据对应库
  3. US.friend 集合,里面包含了好友分组,好友,群,群成员,最近联系人。
  4. US.friend.allclass 数组 是所有的好友分组,结构参见好友分组实体U.MD.F.T.friendGroupEntity
  5. US.friend.friends 数组 是所有的好友,结构参见好友实体U.MD.F.T.friendEntity
  6. US.friend.group 数组 是所有的群,结构参见群实体U.MD.F.T.groupEntity
  7. US.friend.groupusers 数组 是所有的群好友,结构参见群成员实体U.MD.F.T.groupUserEntity
  8. US.friend.recentcontacts 数组 是所有的在线好友,结构为U.MD.F.T.recentContactsEntity
  9. 从数据库中取出的数据都要放到此全局变量中,当新建好友,新建分组等时,需要用下面的结构生成新的实体。
  10. */
  11. Namespace.register("U.MD.F.T"); //好友数据源操作命名空间
  12. /**
  13. * 好友实体
  14. *
  15. * @param {array} 好友信息
  16. ----------[0] 好友签名
  17. ----------[1] 好友用户id
  18. ----------[2] 好友原图
  19. ----------[3] 好友小图
  20. ----------[4] 好友别名
  21. ----------[5] 好友用户名
  22. ----------[6] 好友id
  23. ----------[7] 好友备注
  24. ----------[8] 好友分组id
  25. ----------[9] 是否在线
  26. */
  27. U.MD.F.T.friendEntity = function (signature, userid, userimagehead, thumbnailheadimage, nickname, name, friendid, descript, groupid, islogin) {
  28. this.UserIndividualitysignature = signature;
  29. this.UserId = userid;
  30. this.UserImageHead = userimagehead;
  31. this.UserThumbnailImageHead = thumbnailheadimage;
  32. this.UserNickName = nickname;
  33. this.UserName = name;
  34. this.FriendsID = friendid;
  35. this.FriendsDescript = descript;
  36. this.FriendsGroupID = groupid;
  37. this.IsLogin = islogin;
  38. }
  39. /**
  40. * 最近联系人
  41. *
  42. * @param {array} 在线好友信息
  43. ----------[0] 好友用户id
  44. ----------[1] 好友用户名
  45. ----------[2] 好友大图
  46. ----------[3] 好友昵称
  47. ----------[4] 好友小图
  48. ----------[5] 最后聊天时间
  49. ----------[6] 好友备注
  50. ----------[7] 好友签名
  51. ----------[8] 是否在线
  52. */
  53. U.MD.F.T.recentContactsEntity = function (userid, username, userimagehead, usernickname, userthumbnailimagehead, sendtime, descript, signature, islogin) {
  54. this.UserId = userid;
  55. this.UserName = username;
  56. this.UserImageHead = userimagehead;
  57. this.UserNickName = usernickname;
  58. this.UserThumbnailImageHead = userthumbnailimagehead;
  59. this.maxMessageSendTime = sendtime;
  60. this.FriendsDescript = descript;
  61. this.UserIndividualitysignature = signature;
  62. this.IsLogin = islogin;
  63. }
  64. /**
  65. * 好友分组实体
  66. *
  67. * @param {array} 好友分组信息
  68. ----------[0] 分组描述
  69. ----------[1] 分组分组id
  70. ----------[2] 分组名
  71. */
  72. U.MD.F.T.friendGroupEntity = function (groupid, groupname, descript) {
  73. this.FriendsGroupID = groupid;
  74. this.FriendsGroupName = groupname;
  75. this.FriendsGroupDescript = descript;
  76. }
  77. /**
  78. * 群实体
  79. *
  80. * @param {array} 群信息
  81. ----------[0] 群id
  82. ----------[1] 群名
  83. ----------[2] 群创建时间
  84. ----------[3] 群创建用户id
  85. ----------[4] 群管理用户id
  86. ----------[5] 群描述
  87. ----------[6] 群备注
  88. */
  89. U.MD.F.T.groupEntity = function (groupid, name, date, userid, descript, remark) {
  90. this.GroupManageID = groupid;
  91. this.GroupManageName = name;
  92. this.GroupManageCreateDate = date;
  93. this.GroupManageCreateUserID = userid;
  94. this.GroupManageUserID = userid;
  95. this.GroupManageDescript = descript;
  96. this.GroupManageRemark = remark;
  97. }
  98. /**
  99. * 群成员实体
  100. *
  101. * @param {array} 群信息
  102. ----------[0] 群用户id
  103. ----------[1] 群用户头像
  104. ----------[2] 群用户昵称
  105. ----------[3] 群用户名
  106. ----------[4] 群用户小图
  107. ----------[5] 群用户描述
  108. ----------[6] 群id
  109. ----------[6] 群用户登录信息
  110. */
  111. U.MD.F.T.groupUserEntity = function (userid, userimagehead, nickname, name, thumbnailimagehead, descript, groupid, islogin) {
  112. this.UserId = userid;
  113. this.UserImageHead = userimagehead;
  114. this.UserNickName = nickname;
  115. this.UserName = name;
  116. this.UserThumbnailImageHead = thumbnailimagehead;
  117. this.GroupUsersDescript = descript;
  118. this.GroupManageID = groupid;
  119. this.IsLogin = islogin;
  120. }
  121. /**
  122. * 循环所有好友,让在线用户都置顶在最上面。
  123. *
  124. */
  125. U.MD.F.T.initFriendInfo = function () {
  126. var i,
  127. j,
  128. _arr = ["friends", "groupusers", "recentcontacts"],
  129. _userinfo;
  130. //循环US.friend变量,修改里面的好友、群好友、在线联系人的信息为默认信息,同事设置用户是否在线
  131. for (i = 0; i < _arr.length; i++) {
  132. //0 好友分组 1好友信息 2群分组 3群用户 4最近联系人 5在线好友 这里只修改有用户信息的 所以修改为1、3、4
  133. // if (i == 1 && i == 3 && i == 4) {
  134. for (j = 0; j < US.friend[_arr[i]].length; j++) {
  135. _userinfo = US.friend[_arr[i]][j];
  136. //判断用户是否在线,如果在线设置在线属性为在线
  137. if (US.friend.onlinefirendinfo.indexOf(_userinfo.UserId) > -1) {
  138. _userinfo.IsLogin = 1; //设置在线
  139. }
  140. //如果是好友信息的修改,由于从数据库里面选出来的数据有null值,所以这里把null过滤了
  141. if (i != 1) {
  142. U.Json.Change(_userinfo, {
  143. "UserIndividualitysignature": _userinfo["UserIndividualitysignature"] || "",
  144. "UserNickName": _userinfo.UserName,
  145. "FriendsDescript": _userinfo["FriendsDescript"] || _userinfo.UserName
  146. });
  147. }
  148. //如果是群好友信息的修改,由于从数据库里面选出来的数据有null值,所以这里把null过滤了
  149. else {
  150. U.Json.Change(_userinfo, {
  151. "UserNickName": _userinfo.UserName,
  152. "GroupUsersDescript": _UFE[j]["GroupUsersDescript"] || _userinfo.UserName
  153. });
  154. }
  155. }
  156. //除了最近联系人以外,其他的都要重新排序
  157. if (i != "recentcontacts") {
  158. U.Json.Reset(US.friend[_arr[i]], "IsLogin", 1); //设置完在线后,把在线用户发在最前面,这里是根据IsLogin = 1的排序
  159. }
  160. }
  161. // }
  162. }