FriendProxy.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. using UnityEngine;
  2. using System.Collections;
  3. using Newtonsoft.Json.Linq;
  4. using System.Collections.Generic;
  5. using System;
  6. using System.Linq;
  7. using System.Text;
  8. /// <summary>
  9. /// 好友模块
  10. /// </summary>
  11. [Obsolete("尚未修缮, --gwang")]
  12. public class FriendProxy : ProxyBase<FriendProxy>
  13. {
  14. #region ` 构造函数 `
  15. /// <summary>
  16. /// init
  17. /// </summary>
  18. public FriendProxy() => this.opeCode = OpeCode.ope_friend;
  19. #endregion
  20. #region ` 本地字段 `
  21. /// <summary>
  22. /// 当天的发出邀请加好友的记录
  23. /// </summary>
  24. Dictionary<string, string> mApplied = new Dictionary<string, string>();
  25. /// <summary>
  26. /// 查询其他人的 共享的英雄信息记录
  27. /// </summary>
  28. public Dictionary<string, JObject> mQueryStrengtherSharedHeroDic = new Dictionary<string, JObject>();
  29. /// <summary>
  30. /// 记录个人的发送礼物记录
  31. /// </summary>
  32. public Dictionary<string, int> mSendGiftToMyFriendRecord = new Dictionary<string, int>();
  33. #endregion
  34. /// <summary>
  35. /// 6101 [好友-请求加好友1]
  36. /// 向陌生人发送好友申请
  37. /// </summary>
  38. /// <param name="targetUID">想加的好友UID</param>
  39. /// <param name="callback">成功回调(无返回参数)</param>
  40. public void SendInvitationToStranger(string targetUID, Action<JObject> callback)
  41. {
  42. Post(CmdCode.friend_SendInvitationToStranger, new object[] { targetUID },
  43. resp =>
  44. {
  45. if (!mApplied.ContainsKey(targetUID))
  46. {
  47. mApplied.Add(targetUID, DateTime.Now.tsDay().ToString());
  48. }
  49. callback?.Invoke(resp.result);
  50. });
  51. }
  52. /// <summary>
  53. /// [6102][好友-同意好友请求]
  54. /// </summary>
  55. /// <param name="targetUIDList">想加的好友UID</param>
  56. /// <param name="callback">成功回调处理</param>
  57. public void AgreeToFriends(List<string> targetUIDList, Action<JObject> callback)
  58. {
  59. Post(CmdCode.friend_AgreeToFriends, new object[] { string.Join(",", targetUIDList.ToArray()) }, resp => callback?.Invoke(resp.result));
  60. }
  61. /// <summary>
  62. /// 6103 [好友-拒绝好友请求]
  63. /// </summary>
  64. /// <param name="targetUID">拒绝好友UID</param>
  65. /// <param name="callback">成功回调处理</param>
  66. public void RefusedStranger(string targetUID, Action<JObject> callback)
  67. {
  68. Post(CmdCode.friend_RefusedStranger, new object[] { targetUID }, resp => callback?.Invoke(resp.result));
  69. }
  70. /// <summary>
  71. /// [6104][好友-删除好友]
  72. /// </summary>
  73. /// <param name="targetUID">删除好友UID</param>
  74. /// <param name="callback">成功回调处理</param>
  75. public void DeleteFriends(string targetUID, Action<JObject> callback)
  76. {
  77. Post(CmdCode.friend_DeleteFriends, new object[] { targetUID }, resp => callback?.Invoke(resp.result));
  78. }
  79. /// <summary>
  80. /// [6105 ]好友---请求别人给我发来的好友邀请信息
  81. /// </summary>
  82. /// <param name="callback">成功回调处理</param>
  83. public void QueryOthersInviteMeMessage(Action<JObject> callback)
  84. {
  85. Post(CmdCode.friend_QueryOthersInviteMeMessage, new object[] { }, resp => callback?.Invoke(resp.result));
  86. }
  87. /// <summary>
  88. /// [6106 ][好友-拉取我的好友列表]
  89. /// </summary>
  90. /// <param name="callback">成功回调处理</param>
  91. public void QueryMyFriends(Action<JObject> callback)
  92. {
  93. Post(CmdCode.friend_QueryMyFriends, new object[] { }, resp => callback?.Invoke(resp.result));
  94. }
  95. /// <summary>
  96. /// [6107 ][好友-拉取好友的共享英雄详细信息]
  97. /// </summary>
  98. /// <param name="targetUID">目标英雄ID</param>
  99. /// <param name="callback">成功回调处理</param>
  100. public void QueryFriendSharedHeroInfo(List<string> targetUIDList, Action<JObject> callback)
  101. {
  102. Post(CmdCode.friend_QueryFriendSharedHeroInfo, new object[] { string.Join(",", targetUIDList.ToArray()) },
  103. resp =>
  104. {
  105. if (resp.result["ret"] != null && resp.result["ret"].HasValues)
  106. {
  107. JObject friendList = resp.result["ret"] as JObject;
  108. if (friendList.HasValues)
  109. {
  110. foreach (JProperty st in friendList.Children())
  111. {
  112. if (!mQueryStrengtherSharedHeroDic.ContainsKey(st.Name))
  113. {
  114. mQueryStrengtherSharedHeroDic.Add(st.Name, st.Value as JObject);
  115. }
  116. else
  117. {
  118. mQueryStrengtherSharedHeroDic[st.Name] = st.Value as JObject;
  119. }
  120. }
  121. }
  122. }
  123. callback?.Invoke(resp.result);
  124. });
  125. }
  126. /// <summary>
  127. /// [6108] [好友-发送好友留言]
  128. /// </summary>
  129. /// <param name="targetUID">目标英雄</param>
  130. /// <param name="msg">留言</param>
  131. /// <param name="callback">成功回调处理</param>
  132. public void SendMessageToFriends(string targetUID, string msg, int ts, Action<JObject> callback)
  133. {
  134. Post(CmdCode.friend_SendMessageToFriends, new object[] { targetUID, msg, ts }, resp => callback?.Invoke(resp.result));
  135. }
  136. /// <summary>
  137. /// [6109] [好友-刷新好友留言消息]
  138. /// </summary>
  139. /// <param name="heroUId">操作的英雄UID</param>
  140. /// <param name="ts">最后一条消息的ts</param>
  141. /// <param name="callback">成功回调处理</param>
  142. public void RefreshFriendLeaveMessage(string heroUId, int ts, Action<JObject> callback)
  143. {
  144. Post(CmdCode.friend_RefreshFriendLeaveMessage, new object[] { heroUId, ts }, resp => callback?.Invoke(resp.result));
  145. }
  146. /// <summary>
  147. /// [6110] [好友-搜索好友]
  148. /// </summary>
  149. /// <param name="filter">搜索关键字</param>
  150. /// <param name="pageId">分页</param>
  151. /// <param name="callback">成功回调处理</param>
  152. public void SearchStranger(string filter, int pageId, Action<JObject> callback)
  153. {
  154. Post(CmdCode.friend_SearchStranger, new object[] { filter, pageId },
  155. resp =>
  156. {
  157. if (resp.result["applied"] != null && resp.result["applied"].HasValues)
  158. {
  159. mApplied = (resp.result["applied"] as JObject).ToObject<Dictionary<string, string>>();
  160. }
  161. callback?.Invoke(resp.result);
  162. });
  163. }
  164. /// <summary>
  165. /// [6111] [好友 -- 添加好友 :::系统推荐的 陌生人列表]
  166. /// </summary>
  167. /// <param name="pageId">分页</param>
  168. /// <param name="callback">成功回调处理</param>
  169. public void SystemProvideStrangerList(int pageId, Action<JObject> callback)
  170. {
  171. Post(CmdCode.friend_SystemProvideStrangerList, new object[] { pageId },
  172. resp =>
  173. {
  174. if (resp.result["applied"] != null && resp.result["applied"].HasValues)
  175. {
  176. mApplied = (resp.result["applied"] as JObject).ToObject<Dictionary<string, string>>();
  177. }
  178. callback?.Invoke(resp.result);
  179. });
  180. }
  181. /// <summary>
  182. /// [6113] [好友 -- 拉取 别人给我发送礼物的信息]
  183. /// ;参数: 无
  184. ///;返回值: "ret":{"gwang":[22334,12345],...}
  185. /// </summary>
  186. /// <param name="pageId">分页</param>
  187. /// <param name="callback">成功回调处理</param>
  188. public void QueryOtherFriendSendMeGiftMessages(Action<QueryOtherFriendSendMeGiftMessageRetVo> callback)
  189. {
  190. Post(CmdCode.friend_QueryOtherFriendSendMeGift, new object[] { }, resp => callback?.Invoke(resp.result.ToObject<QueryOtherFriendSendMeGiftMessageRetVo>()));
  191. }
  192. /// <summary>
  193. /// [6114] [好友 -- 收取别人给我发送的礼物 并回赠]
  194. /// [好友-收取好友赠送礼物_并回赠]
  195. ///;参数: 逗号分割的uid和tsday组合(好友记录的uid和ts拼到一起), 是否回赠
  196. ///req={"uid":"wanggangzero.cn","ope":601,"cmd":6114,"paras":["gwang12346"],"sig":"w","msgid":"w","ts":0,"zoneid":1,"clientVer":"1.0.1","tag":null}
  197. /// </summary>
  198. /// <param name="targetUIDList">分页</param>
  199. /// <param name="callback">成功回调处理</param>
  200. [Obsolete("-",true)]
  201. public void ReceiveAndSendGiftToFriend(List<string> targetUIDList, Action<JObject> callback)
  202. {
  203. Post(CmdCode.friend_ReceiveAndSendGiftToFriend, new object[] { string.Join(",", targetUIDList.ToArray()) },
  204. resp =>
  205. {
  206. // UserProxy.Instance.player.ChangeFriendPoint(resp.result["ret"].ToObject<int>());
  207. callback?.Invoke(resp.result);
  208. });
  209. }
  210. /// <summary>
  211. /// [6115] [好友 -- 给我的好友赠送礼物 ]
  212. /// </summary>
  213. /// <param name="targetUIDList">分页</param>
  214. /// <param name="callback">成功回调处理</param>
  215. public void SendGiftToMyFriends(List<string> targetUIDList, Action<JObject> callback)
  216. {
  217. Post(CmdCode.friend_SendGiftToMyFriends, new object[] { string.Join(",", targetUIDList.ToArray()) }, resp => callback?.Invoke(resp.result));
  218. }
  219. /// <summary>
  220. /// [6116] 检查玩家的好友信息是否有未处理的
  221. /// </summary>
  222. /// <param name="targetUIDList"></param>
  223. /// <param name="callback"></param>
  224. public void CheckUnduckMessage(Action<JObject> callback)
  225. {
  226. Post(CmdCode.friend_unduckmsg, new object[] { }, resp => callback?.Invoke(resp.result));
  227. }
  228. /// <summary>
  229. /// [6117] 检查玩家的好友信息是否有未处理的
  230. /// </summary>
  231. /// <param name="targetUIDList"></param>
  232. /// <param name="callback"></param>
  233. public void LookGuildInfo(string friendId, Action<JObject> callback)
  234. {
  235. Post(CmdCode.cmd_user_friend_LookGuildInfo, new object[] { friendId }, resp => callback?.Invoke(resp.result));
  236. }
  237. #region ` 辅助方法 `
  238. /// <summary>
  239. /// 查询好友共享英雄信息
  240. /// </summary>
  241. /// <param name="uid"></param>
  242. /// <returns></returns>
  243. public JObject FindRecordFriendSharedHeroInfo(string uid)
  244. {
  245. if (mQueryStrengtherSharedHeroDic.ContainsKey(uid))
  246. {
  247. return mQueryStrengtherSharedHeroDic[uid];
  248. }
  249. return null;
  250. }
  251. /// <summary>
  252. /// 检查今天是否给某个人发送了好友申请
  253. /// true = 已申请
  254. /// false = 未申请
  255. /// </summary>
  256. /// <param name="mStrengtherUID"></param>
  257. /// <returns></returns>
  258. internal bool CheckHasInviteSomeOne(string mStrengtherUID) => mApplied.ContainsKey(mStrengtherUID);
  259. /// <summary>
  260. /// 检查 我今天是否给某个好友发送礼物了
  261. /// true = 已发送
  262. /// false = 未发送
  263. /// </summary>
  264. /// <param name="mStrengtherUID"></param>
  265. /// <returns></returns>
  266. internal bool CheckTodayHasSendGift(string mStrengtherUID)
  267. {
  268. if (mSendGiftToMyFriendRecord.ContainsKey(mStrengtherUID))
  269. {
  270. if (mSendGiftToMyFriendRecord[mStrengtherUID] == DateTime.Now.tsDay())
  271. {
  272. return true;
  273. }
  274. }
  275. return false;
  276. }
  277. #endregion
  278. }