From faf2cc75a49a90d5e92ec28aab2e58912a7fc781 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期一, 01 四月 2019 16:14:13 +0800
Subject: [PATCH] 3335 拍卖行修改

---
 System/Auction/AuctionModel.cs |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/System/Auction/AuctionModel.cs b/System/Auction/AuctionModel.cs
index 45d92e8..de62fc7 100644
--- a/System/Auction/AuctionModel.cs
+++ b/System/Auction/AuctionModel.cs
@@ -10,13 +10,6 @@
 
 namespace Snxxz.UI
 {
-    public class AddAuctionItemInfoClass
-    {
-        public string ItemGUID;//鐗╁搧GUID
-        public int ItemID;//鐗╁搧ID
-        public bool Bool;
-    }
-
     public class QueryRemainingClass
     {
         public bool UpBool;
@@ -33,10 +26,9 @@
         List<string> m_MyBiddingItemGuids = new List<string>();//鎷嶅崠琛岀帺瀹剁珵浠蜂腑鐨勭墿鍝佷俊鎭� 
         List<string> m_MyFocusAuctionItemGuids = new List<string>();//鎷嶅崠琛屽叧娉ㄤ腑鐨勬媿鍝佽鎯�
         List<string> m_AuctionRecords = new List<string>();//鎷嶅崠琛岀帺瀹舵媿鍗栬褰�
+        List<FocusAuctionItem> m_FocusItems = new List<FocusAuctionItem>();//鍏虫敞鐨勬媿鍝佺殑涓婃灦鎻愰啋锛堝脊妗嗘樉绀猴級
 
         List<int> m_MyFocusItemIds = new List<int>();//鍏虫敞鐨勭墿鍝両D
-
-        public Dictionary<int, AddAuctionItemInfoClass> AddAuctionItemInfoDic = new Dictionary<int, AddAuctionItemInfoClass>();//鍏虫敞鐨勬媿鍝佺殑涓婃灦鎻愰啋锛堝脊妗嗘樉绀猴級
 
         public QueryRemainingClass QueryRemaining = new QueryRemainingClass();
 
@@ -45,6 +37,7 @@
 
         public bool isLocationQuery { get; set; }
         public string locationGuid { get; set; }
+        public bool isServerPrepare { get; private set; }
 
         public event Action myAuctionRefresh;
         public event Action serverAuctionRefresh;//鍏ㄦ湇鎷嶅搧鏁版嵁璇锋眰
@@ -55,7 +48,7 @@
         public event Action myFocusAuctionRefresh;//鎷嶅崠琛屽叧娉ㄤ腑鐨勬媿鍝佷俊鎭彉鏇达紙淇℃伅姣忔閲嶇疆锛�
         public event Action auctionItemRefresh;//鎷嶅崠琛屾暟鎹埛鏂�(浠呯敤浜庢暟鎹埛鏂�)
         public event Action onAuctionRemove;//鎷嶅崠琛岀墿鍝佹竻闄�
-        public event Action AddAuctionItemInfoUpdate;
+        public event Action onFocusAuctionRefresh;
 
         AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
 
@@ -68,20 +61,24 @@
         public void OnBeforePlayerDataInitialize()
         {
             isLocationQuery = false;
+            isServerPrepare = false;
+
             m_MyAuctionItemGuids.Clear();
             m_FairyAuctionItemGuids.Clear();
             m_AuctionRecords.Clear();
-            AddAuctionItemInfoDic.Clear();
             m_MyBiddingItemGuids.Clear();
             m_MyFocusAuctionItemGuids.Clear();
             m_MyFocusItemIds.Clear();
+
             PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
         }
 
         public void OnPlayerLoginOk()
         {
-            RefreshRedpoint();
             PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
+
+            isServerPrepare = true;
+            RefreshRedpoint();
         }
 
 
@@ -105,6 +102,7 @@
             {
                 m_ServerAuctionItemGuids.Clear();
                 m_AuctionItems.Clear();
+                m_FocusItems.Clear();
             }
         }
 
@@ -224,6 +222,17 @@
             return false;
         }
 
+        public bool TryGetFocusAuctionPop(out FocusAuctionItem item)
+        {
+            item = default(FocusAuctionItem);
+            if (m_FocusItems.Count > 0)
+            {
+                item = m_FocusItems[0];
+                return true;
+            }
+            return false;
+        }
+
         public List<string> GetServerAuctionItems()
         {
             List<string> guids = new List<string>();
@@ -324,6 +333,14 @@
             return m_MyFocusItemIds.Contains(id);
         }
 
+        public void RemoveFocusItemPop()
+        {
+            if (m_FocusItems.Count > 0)
+            {
+                m_FocusItems.RemoveAt(0);
+            }
+        }
+
         public void ReceivePackage(HB501_tagGCAuctionItemInfo package)// 鎷嶅崠琛屾媿鍗栦腑鐨勭墿鍝佷俊鎭�
         {
             List<string> fullServiceAuctionList = new List<string>();
@@ -365,6 +382,11 @@
             }
             else if (package.QueryDir == 3)//瀹氫綅鏌ヨ
             {
+                if (WindowCenter.Instance.IsOpen<AuctionHouseWin>())
+                {
+                    return;
+                }
+                m_ServerAuctionItemGuids.Clear();
                 m_ServerAuctionItemGuids.AddRange(fullServiceAuctionList);
                 auctionHelpModel.SelectedGenreNow = 0;
                 isLocationQuery = true;
@@ -448,25 +470,31 @@
 
         public void ReceivePackage(HB504_tagGCAddAuctionItemInfo package)//鎷嶅崠琛屾柊涓婃灦鎷嶅搧(鐜╁鏈夊叧娉ㄧ殑鎷嶅搧 )
         {
+            if (!isServerPrepare)
+            {
+                return;
+            }
             for (int i = 0; i < package.AddCount; i++)
             {
                 var data = package.AddAuctionItemList[i];
-                AddAuctionItemInfoClass addAuctionItemInfo = new AddAuctionItemInfoClass();
-                addAuctionItemInfo.ItemGUID = UIHelper.ServerStringTrim(data.ItemGUID);
-                addAuctionItemInfo.ItemID = (int)data.ItemID;
-                addAuctionItemInfo.Bool = true;
-                if (AddAuctionItemInfoDic.ContainsKey(addAuctionItemInfo.ItemID))
+                var guid = UIHelper.ServerStringTrim(data.ItemGUID);
+                if (m_FocusItems.FindIndex((x) =>
                 {
-                    AddAuctionItemInfoDic[addAuctionItemInfo.ItemID] = addAuctionItemInfo;
-                }
-                else
+                    return x.itemId == data.ItemID || x.itemGuid.Equals(guid);
+                }) != -1)
                 {
-                    AddAuctionItemInfoDic.Add(addAuctionItemInfo.ItemID, addAuctionItemInfo);
+                    continue;
                 }
+                var focusItem = new FocusAuctionItem()
+                {
+                    itemGuid = guid,
+                    itemId = (int)data.ItemID,
+                };
+                m_FocusItems.Add(focusItem);
             }
-            if (AddAuctionItemInfoUpdate != null)
+            if (onFocusAuctionRefresh != null)
             {
-                AddAuctionItemInfoUpdate();
+                onFocusAuctionRefresh();
             }
         }
 
@@ -869,6 +897,11 @@
         }
     }
 
+    public struct FocusAuctionItem
+    {
+        public string itemGuid;//鐗╁搧GUID
+        public int itemId;//鐗╁搧ID
+    }
 }
 
 

--
Gitblit v1.8.0