AuctionProxy.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. using UnityEngine;
  2. using System;
  3. using System.Collections;
  4. using System.Linq;
  5. using Newtonsoft.Json.Linq;
  6. using System.Collections.Generic;
  7. public class AuctionProxy : ProxyBase<AuctionProxy>
  8. {
  9. public AuctionProxy() => this.opeCode = OpeCode.ope_auction;
  10. /// <summary>
  11. /// 获取可以出售道具
  12. /// </summary>
  13. /// <returns></returns>
  14. public List<ItemVo> GetCanSellItem()
  15. {
  16. List<ItemVo> list = new List<ItemVo>();
  17. Dictionary<string, ItemVo> collectItemDic = UserProxy.Instance.player.collectItem.collectItemDic;
  18. foreach (KeyValuePair<string,ItemVo>kv in collectItemDic)
  19. {
  20. if (kv.Value.nMo.canAuction == 1)
  21. {
  22. list.Add(kv.Value);
  23. }
  24. }
  25. return list;
  26. }
  27. /// <summary>
  28. /// 获取全部拍卖信息
  29. /// </summary>
  30. /// <param name="uid"></param>
  31. /// <param name="callback"></param>
  32. public void GetUserAuctionItemsInfo(Action<List<AuctionItemModel>> callback)
  33. {
  34. Post(CmdCode.cmd_Auction_GetUserAuctionItemsInfo, new object[] { }, resp =>
  35. {
  36. List<AuctionItemModel> list = new List<AuctionItemModel>();
  37. if (resp.result["auction"] != null)
  38. {
  39. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  40. foreach (JToken item in arr)
  41. {
  42. AuctionItemModel mo = new AuctionItemModel();
  43. mo.Initlize(item);
  44. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  45. {
  46. continue;
  47. }
  48. list.Add(mo);
  49. }
  50. }
  51. callback?.Invoke(list);
  52. });
  53. }
  54. /// <summary>
  55. ///获取玩家上架拍品信息
  56. /// </summary>
  57. /// <param name="uid"></param>
  58. /// <param name="callback"></param>
  59. public void GetUserUploadAuctionItems(Action<List<AuctionItemModel>> callback)
  60. {
  61. Post(CmdCode.cmd_Auction_GetUserUploadAuctionItems, new object[] { }, resp =>
  62. {
  63. List<AuctionItemModel> list = new List<AuctionItemModel>();
  64. if (resp.result["auction"] != null)
  65. {
  66. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  67. foreach (JToken item in arr)
  68. {
  69. AuctionItemModel mo = new AuctionItemModel();
  70. mo.Initlize(item);
  71. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  72. {
  73. continue;
  74. }
  75. list.Add(mo);
  76. }
  77. }
  78. callback?.Invoke(list);
  79. });
  80. }
  81. /// <summary>
  82. /// 获取玩家竞拍信息
  83. /// </summary>
  84. /// <param name="uid"></param>
  85. /// <param name="callback"></param>
  86. public void GetUserAuctionItems(Action<List<AuctionItemModel>> callback)
  87. {
  88. Post(CmdCode.cmd_Auction_GetUserAuctionItems, new object[] { }, resp =>
  89. {
  90. List<AuctionItemModel> list = new List<AuctionItemModel>();
  91. if (resp.result["auction"] != null)
  92. {
  93. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  94. foreach (JToken item in arr)
  95. {
  96. AuctionItemModel mo = new AuctionItemModel();
  97. mo.Initlize(item);
  98. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  99. {
  100. continue;
  101. }
  102. list.Add(mo);
  103. }
  104. }
  105. callback?.Invoke(list);
  106. });
  107. }
  108. /// <summary>
  109. /// 竞拍
  110. /// </summary>
  111. /// <param name="uid"></param>
  112. /// <param name="callback"></param>
  113. public void UserAuctionBidItem(int uid,int price,Action<List<AuctionItemModel>> callback)
  114. {
  115. Post(CmdCode.cmd_Auction_UserAuctionBidItem, new object[] { uid , price }, resp =>
  116. {
  117. var p = UserProxy.Instance.player;
  118. string res = resp.result["res"].ToString();
  119. p.baseInfo.cash = Convert.ToInt32(resp.result["cash"].ToString());
  120. List<AuctionItemModel> list = new List<AuctionItemModel>();
  121. if (resp.result["auction"] != null)
  122. {
  123. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  124. foreach (JToken item in arr)
  125. {
  126. AuctionItemModel mo = new AuctionItemModel();
  127. mo.Initlize(item);
  128. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  129. {
  130. continue;
  131. }
  132. list.Add(mo);
  133. }
  134. }
  135. callback?.Invoke(list);
  136. });
  137. }
  138. /// <summary>
  139. /// 取消出售
  140. /// </summary>
  141. /// <param name="uid"></param>
  142. /// <param name="callback"></param>
  143. public void CancelAuction(int uid, Action<List<AuctionItemModel>> callback)
  144. {
  145. Post(CmdCode.cmd_Auction_CancelAuction, new object[] { uid }, resp =>
  146. {
  147. List<AuctionItemModel> list = new List<AuctionItemModel>();
  148. if (resp.result["auction"] != null)
  149. {
  150. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  151. foreach (JToken item in arr)
  152. {
  153. AuctionItemModel mo = new AuctionItemModel();
  154. mo.Initlize(item);
  155. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  156. {
  157. continue;
  158. }
  159. list.Add(mo);
  160. }
  161. }
  162. callback?.Invoke(list);
  163. });
  164. }
  165. /// <summary>
  166. /// 上传拍品
  167. /// </summary>
  168. /// <param name="uid"></param>
  169. /// <param name="callback"></param>
  170. public void UploadAuctionItems(int itemId,int num, int bugoutPrice,int userBidPrice,Action callback)
  171. {
  172. Post(CmdCode.cmd_Auction_UploadAuctionItems, new object[] { itemId, num ,bugoutPrice, userBidPrice }, resp =>
  173. {
  174. var p = UserProxy.Instance.player;
  175. p.InitFromStore((JObject)resp.result["store"]);
  176. callback?.Invoke();
  177. });
  178. }
  179. /// <summary>
  180. /// 一口价
  181. /// </summary>
  182. /// <param name="itemId"></param>
  183. /// <param name="num"></param>
  184. /// <param name="bugoutPrice"></param>
  185. /// <param name="callback"></param>
  186. public void BuyoutPrice(int uid, Action<List<AuctionItemModel>> callback)
  187. {
  188. Post(CmdCode.cmd_Auction_BuyoutPrice, new object[] { uid }, resp =>
  189. {
  190. var p = UserProxy.Instance.player;
  191. p.baseInfo.cash = Convert.ToInt32(resp.result["cash"].ToString());
  192. List<AuctionItemModel> list = new List<AuctionItemModel>();
  193. if (resp.result["auction"] != null)
  194. {
  195. JArray arr = JArray.Parse(resp.result["auction"].ToString());
  196. foreach (JToken item in arr)
  197. {
  198. AuctionItemModel mo = new AuctionItemModel();
  199. mo.Initlize(item);
  200. if (mo.result == "完成" || mo.result == "取消出售" || mo.result == "流拍")
  201. {
  202. continue;
  203. }
  204. list.Add(mo);
  205. }
  206. }
  207. callback?.Invoke(list);
  208. });
  209. }
  210. }