From 5a1508b5110caedd3af6f4badbe0d45e084a87c1 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 01 四月 2019 17:35:49 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/Auction/AuctionModel.cs | 195 +++++++++++++++++++++++++++++++-----------------
1 files changed, 125 insertions(+), 70 deletions(-)
diff --git a/System/Auction/AuctionModel.cs b/System/Auction/AuctionModel.cs
index e5a611d..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,8 +48,7 @@
public event Action myFocusAuctionRefresh;//鎷嶅崠琛屽叧娉ㄤ腑鐨勬媿鍝佷俊鎭彉鏇达紙淇℃伅姣忔閲嶇疆锛�
public event Action auctionItemRefresh;//鎷嶅崠琛屾暟鎹埛鏂�(浠呯敤浜庢暟鎹埛鏂�)
public event Action onAuctionRemove;//鎷嶅崠琛岀墿鍝佹竻闄�
- public event Action onFairyAuctionRemove;//娓呴櫎浠欑洘鐗╁搧
- public event Action AddAuctionItemInfoUpdate;
+ public event Action onFocusAuctionRefresh;
AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
@@ -69,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();
}
@@ -106,6 +102,7 @@
{
m_ServerAuctionItemGuids.Clear();
m_AuctionItems.Clear();
+ m_FocusItems.Clear();
}
}
@@ -114,9 +111,9 @@
if (PlayerDatas.Instance.baseData.FamilyId == 0)
{
m_FairyAuctionItemGuids.Clear();
- if (onFairyAuctionRemove != null)
+ if (fairyAuctionRefresh != null)
{
- onFairyAuctionRemove();
+ fairyAuctionRefresh();
}
}
}
@@ -225,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>();
@@ -325,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>();
@@ -343,11 +359,8 @@
item.itemId = (int)data.ItemID;
item.itemCount = (int)data.ItemCount;
item.putAwayTime = DateTime.Parse(data.AddTime);
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPrice = data.BidderPrice;
item.customData = data.UserData;
@@ -369,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;
@@ -400,11 +418,8 @@
item.itemId = (int)data.ItemID;
item.itemCount = (int)data.ItemCount;
item.putAwayTime = DateTime.Parse(data.AddTime);
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPrice = data.BidderPrice;
item.customData = data.UserData;
@@ -455,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();
}
}
@@ -496,11 +517,8 @@
item.itemId = (int)data.ItemID;
item.itemCount = (int)data.ItemCount;
item.putAwayTime = DateTime.Parse(data.AddTime);
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPrice = data.BidderPrice;
item.customData = data.UserData;
item.familyPlayers = new List<int>();
@@ -538,11 +556,8 @@
item.itemId = (int)data.ItemID;
item.itemCount = (int)data.ItemCount;
item.putAwayTime = DateTime.Parse(data.AddTime);
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPrice = data.BidderPrice;
item.customData = data.UserData;
@@ -577,6 +592,8 @@
public void ReceivePackage(HB508_tagGCRefreshAuctionItemInfo package)//鎷嶅崠琛屽埛鏂版媿鍝�(鍙繘琛屽埛鏂�)
{
+ var refreshFairyAuction = false;
+
for (int i = 0; i < package.RefreshCount; i++)
{
var data = package.RefreshAuctionItemList[i];
@@ -586,37 +603,43 @@
AuctionItem item;
if (!TryGetAuctionItem(guid, out item))
{
- continue;
+ item = new AuctionItem(guid);
+ PushAuctionItem(item);
}
+
+ var _autionType = item.auctionType;
item.auctionType = data.AuctionType;
item.putAwayTime = DateTime.Parse(data.AddTime);
- item.biddingTime = DateTime.Parse(data.BiddingTime);
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPlayer = (int)data.BidderID;
item.biddingPrice = (int)data.BidderPrice;
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
- if (m_FairyAuctionItemGuids.Contains(guid) && item.auctionType != 1)// 鎷嶅崠琛屼粰鐩熸媿鍗栦腑鐨勭墿鍝佷俊鎭�
+ if (_autionType == 1 && item.auctionType != 1)// 鎷嶅崠琛屼粰鐩熸媿鍗栦腑鐨勭墿鍝佷俊鎭�
{
- m_FairyAuctionItemGuids.Remove(guid);
- if (onFairyAuctionRemove != null)
- {
- onFairyAuctionRemove();
- }
+ refreshFairyAuction = true;
}
- if (auctionItemRefresh != null)
+ }
+
+ if (refreshFairyAuction)
+ {
+ if (fairyAuctionRefresh != null)
{
- auctionItemRefresh();
+ fairyAuctionRefresh();
}
+ }
+
+ if (auctionItemRefresh != null)
+ {
+ auctionItemRefresh();
}
}
public void ReceivePackage(HB509_tagGCClearAuctionItemInfo package)//鎷嶅崠琛屾竻闄ゆ媿鍝�
{
+ var refreshFairyAuction = false;
+
for (int i = 0; i < package.ClearCount; i++)
{
var ItemGUIDList = package.ClearAuctionItemList[i];
@@ -629,10 +652,7 @@
if (m_FairyAuctionItemGuids.Contains(guid))// 娓呴櫎鎷嶅崠琛屼粰鐩熸媿鍗栦腑鐨勭墿鍝佷俊鎭�
{
m_FairyAuctionItemGuids.Remove(guid);
- if (onFairyAuctionRemove != null)
- {
- onFairyAuctionRemove();
- }
+ refreshFairyAuction = true;
}
var index = m_ServerAuctionItemGuids.IndexOf(guid);
if (index != -1)//娓呴櫎鍏ㄦ湇鎷嶅搧鐨勬煇涓�浠剁墿鍝�
@@ -649,6 +669,13 @@
}
RemoveAuctionItem(guid);
+ }
+ if (refreshFairyAuction)
+ {
+ if (fairyAuctionRefresh != null)
+ {
+ fairyAuctionRefresh();
+ }
}
if (onAuctionRemove != null)
{
@@ -675,11 +702,8 @@
item.itemCount = data.ItemCount;
item.familyId = (int)data.FamilyID;
item.putAwayTime = DateTime.Parse(data.AddTime);
- var str = UIHelper.ServerStringTrim(data.BiddingTime);
- if (!str.Equals(string.Empty))
- {
- item.biddingTime = DateTime.Parse(str);
- }
+ var biddingTimeLabel = UIHelper.ServerStringTrim(data.BiddingTime);
+ item.biddingTime = string.IsNullOrEmpty(biddingTimeLabel) ? DateTime.MinValue : DateTime.Parse(biddingTimeLabel);
item.biddingPrice = data.BidderPrice;//绔炴媿鐜╁鍑轰环
item.biddingPlayer = (int)data.BidderID;//绔炴媿鐜╁ID锛屼篃灏辨槸褰撳墠鏈�楂樼珵浠风帺瀹禝D
item.customData = data.UserData;
@@ -693,6 +717,32 @@
{
myBiddingAuctionRefresh();
}
+ }
+
+ public void SendBiddingItem(AuctionItem item, bool immediatly)
+ {
+ if (item == null)
+ {
+ return;
+ }
+ var config = AuctionItemConfig.Get(item.itemId);
+ var cost = immediatly ? config.BuyoutPrice * item.itemCount : AuctionLogicUtil.GetBiddingRequireMoney(item);
+ var label = Language.Get(immediatly ? "PMH_02" : "PMH_01", cost);
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), label, (bool isOk) =>
+ {
+ if (isOk)
+ {
+ var money = PlayerDatas.Instance.baseData.diamond;
+ if (money >= cost)
+ {
+ AuctionInquiry.Instance.SendSellAuctionItem(item.itemGuid, cost);
+ }
+ else
+ {
+ WindowCenter.Instance.Open<RechargeTipWin>();
+ }
+ }
+ });
}
#region 瀹氫綅鏌ヨ
@@ -847,6 +897,11 @@
}
}
+ public struct FocusAuctionItem
+ {
+ public string itemGuid;//鐗╁搧GUID
+ public int itemId;//鐗╁搧ID
+ }
}
--
Gitblit v1.8.0