少年修仙传客户端代码仓库
client_Zxw
2019-03-07 0b1d1ae3c35f7d339c26caea1108d932ec4582a4
6251 子 【开发】【2.0】拍卖行开发单
6个文件已修改
270 ■■■■ 已修改文件
System/Auction/AuctionInquiry.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/AuctionInquiryModel.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/FullServiceAuctionWin.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/FullServiceAuctioncell.cs 159 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/MyAuctionCell.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/MyAuctionWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Auction/AuctionInquiry.cs
@@ -54,7 +54,7 @@
            var auctionIndex = AuctionIndexConfig.Get(indexId);
            if (auctionIndex == null)
            {
                DebugEx.LogError("拍卖索引表没有查到对应的ID");
                DebugEx.LogError("拍卖索引表没有查到对应的ID"+ indexId);
                return;
            }
            QueryAuctionItem queryAuctionItem = new QueryAuctionItem();
System/Auction/AuctionInquiryModel.cs
@@ -49,7 +49,7 @@
        public event Action PlayerAuctionItem;
        public List<AuctionItemClass> FullServiceAuctionList = new List<AuctionItemClass>();//全服拍品列表
        public event Action FullServiceAuctionUpdate;//全服拍品刷新
        public event Action FullServiceAuctionUpdate;//全服拍品数据请求
        public Dictionary<string, AuctionItemClass> FamilyAuctionItemDic = new Dictionary<string, AuctionItemClass>();// 拍卖行仙盟拍卖中的物品信息
@@ -355,6 +355,15 @@
                    FullServiceAuctionList[index].BidderID = (int)RefreshAuctionItem.BidderID;
                    FullServiceAuctionList[index].BidderPrice = (int)RefreshAuctionItem.BidderPrice;
                }
                if (PlayerAuctionItemInfoDic.ContainsKey(RefreshAuctionItem.ItemGUID))//我的拍品刷新
                {
                    var PlayerAuctionItemInfo = PlayerAuctionItemInfoDic[RefreshAuctionItem.ItemGUID];
                    PlayerAuctionItemInfo.TimeStr = RefreshAuctionItem.AddTime;
                    PlayerAuctionItemInfo.Time = DateTime.Parse(RefreshAuctionItem.AddTime);
                    PlayerAuctionItemInfo.BidderID = (int)RefreshAuctionItem.BidderID;
                    PlayerAuctionItemInfo.BidderPrice = (int)RefreshAuctionItem.BidderPrice;
                    PlayerAuctionItemInfoDic[RefreshAuctionItem.ItemGUID] = PlayerAuctionItemInfo;
                }
                if (RefreshAuctionItemUpdate != null)
                {
                    RefreshAuctionItemUpdate();
@@ -386,6 +395,10 @@
                {
                    FullServiceAuctionList.RemoveAt(index);
                }
                if (PlayerAuctionItemInfoDic.ContainsKey(ItemGUIDList.ItemGUID))//我的拍品清除
                {
                    PlayerAuctionItemInfoDic.Remove(ItemGUIDList.ItemGUID);
                }
            }
            if (ClearAuctionUpdate != null)
            {
System/Auction/FullServiceAuctionWin.cs
@@ -26,6 +26,7 @@
        [SerializeField] Button m_TypeTipBtn;
        [SerializeField] Text m_JobTipText;
        [SerializeField] Text m_TypeTipText;
         List<AuctionItemClass> FullServiceAuctionListSort = new List<AuctionItemClass>();//全服拍品列表
        AuctionInquiryModel model { get { return ModelCenter.Instance.GetModel<AuctionInquiryModel>(); } }
        AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
        protected override void BindController()
@@ -50,16 +51,18 @@
            model.ClearAuctionUpdate += ClearAuctionUpdate;//清除
            model.BiddingItemInfoUpdate += BiddingItemInfoUpdate;//竞价物品信息刷新
            Reset();
            CloseTip();
            CloseTip();
            ListSort();
            OnCreateGridLineCell(m_ScrollerController);
            OnCreateGridLineCellJob(m_ScrollerControllerJob);
            OnCreateGridLineCellType(m_ScrollerControllerType);
            OnCreateGridLineCellType(m_ScrollerControllerType);
            OnCreateGridLineCellItem(m_ScrollerControllerItem);
            SetTipText();
        }
        protected override void OnAfterOpen()
        {
        {
        }
        protected override void OnPreClose()
@@ -237,8 +240,19 @@
        private void OnCreateGridLineCellItem(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            ListSort();
            for (int i = 0; i < model.FullServiceAuctionList.Count; i++)
            {
                var FullServiceAuction = model.FullServiceAuctionList[i];
                var index = FullServiceAuctionListSort.FindIndex((x) => { return x.ItemGUID == FullServiceAuction.ItemGUID; });
                if (index == -1)
                {
                    FullServiceAuctionListSort.Add(FullServiceAuction);
                }
            }
            gridCtrl.Refresh();
            for (int i = 0; i <FullServiceAuctionListSort.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, i);
            }
@@ -246,7 +260,10 @@
        }
        private void OnRefreshGridCellItem(ScrollerDataType type, CellView cell)
        {
            int index = cell.index;
            FullServiceAuctioncell fullServiceAuctioncell = cell.GetComponent<FullServiceAuctioncell>();
            AuctionItemClass auctionItemClass = FullServiceAuctionListSort[index];
            fullServiceAuctioncell.GetFullServiceAuctionGUID(auctionItemClass.ItemGUID, index);
        }
        private void Reset()//重置查询
@@ -284,6 +301,68 @@
                }
            }
        }
        private void  ListSort()
        {
            FullServiceAuctionListSort.Clear();
            var sendNumber = AuctionInquiry.Instance.GetSendNumber();
            foreach (var vlaue in model.BiddingItemInfoDic.Values)
            {
                int num = 0;
                if (sendNumber != 0)
                {
                    var auctionItem = AuctionItemConfig.Get(vlaue.ItemID);
                    num = sendNumber / 1000;
                    num -= 1;
                    if (num == 0)
                    {
                        FullServiceAuctionListSort.Add(vlaue);
                    }
                    else if (num == auctionItem.ItemType)
                    {
                        FullServiceAuctionListSort.Add(vlaue);
                    }
                }
            }
            FullServiceAuctionListSort.Sort(Compare);
        }
        int Compare(AuctionItemClass x, AuctionItemClass y)//数组排列
        {
            bool havex = IsHighestPrice(x.ItemGUID);
            bool havey = IsHighestPrice(y.ItemGUID);
            if (havex.CompareTo(havey) != 0)//是否最高价
            {
                return -havex.CompareTo(havey);
            }
            bool havex1 = IsParticipate(x.ItemGUID);
            bool havey1 = IsParticipate(y.ItemGUID);
            if (havex1.CompareTo(havey1) != 0)//是否参与
            {
                return -havex1.CompareTo(havey1);
            }
            return 1;
        }
        private bool IsHighestPrice(string GUID)
        {
            bool isBool = false;
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
            if (model.BiddingItemInfoDic.ContainsKey(GUID))
            {
                var biddingItemInfo = model.BiddingItemInfoDic[GUID];
                isBool = biddingItemInfo.BidderID == playerId;
            }
            return isBool;
        }
        private bool IsParticipate(string GUID)
        {
            bool isBool = false;
            if (model.BiddingItemInfoDic.ContainsKey(GUID))
            {
                isBool = true;
            }
            return isBool;
        }
    }
}
System/Auction/FullServiceAuctioncell.cs
@@ -12,7 +12,7 @@
namespace Snxxz.UI
{
    public class FullServiceAuctioncell : ScrollerUI
    public class FullServiceAuctioncell : MonoBehaviour
    {
        [SerializeField] GameObject m_NeedImage;//需要
        [SerializeField] GameObject m_ParticipateImage;//参与竞价
@@ -37,41 +37,42 @@
        AuctionHelpModel auctionHelpModel { get { return ModelCenter.Instance.GetModel<AuctionHelpModel>(); } }
        private AuctionItemConfig AuctionItem;
        private AuctionItemClass FullServiceAuction;
        public override void Refresh(CellView cell)
        public void GetFullServiceAuctionGUID(string GUID,int index)
        {
            m_NeedImage.SetActive(false);
            m_ParticipateImage.SetActive(false);
            m_BiddingTextObj.SetActive(false);
            m_HighestPriceImage.SetActive(false);
            m_EquipmentScoreObj.SetActive(false);
            var index = cell.index;
            if (index >= model.FullServiceAuctionList.Count)
            var indexList = model.FullServiceAuctionList.FindIndex((x) => { return x.ItemGUID == GUID; });
            if (indexList == -1)
            {
                DebugEx.LogError("超出数据存储范围");
                DebugEx.LogError("未查找到相应的列表数据");
                return;
            }
            var fullServiceAuction = model.FullServiceAuctionList[index];
            if (index == 1)
            {
                var sendNumber = AuctionInquiry.Instance.GetSendNumber();
                if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.DownBool)
                {
                    AuctionInquiry.Instance.SendQueryAuction(string.Empty, sendNumber, 2);
                    auctionHelpModel.Wait = false;
                }
            } else if (index== model.FullServiceAuctionList.Count-2)
            var fullServiceAuction = model.FullServiceAuctionList[indexList];
            if (index <5)
            {
                var sendNumber = AuctionInquiry.Instance.GetSendNumber();
                if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.UpBool)
                {
                    AuctionInquiry.Instance.SendQueryAuction(string.Empty, sendNumber, 1);
                    AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 2);
                    auctionHelpModel.Wait = false;
                }
            }
            else if (index >= model.FullServiceAuctionList.Count - 3)
            {
                var sendNumber = AuctionInquiry.Instance.GetSendNumber();
                if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.DownBool)
                {
                    AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 1);
                    auctionHelpModel.Wait = false;
                }
            }
            FullServiceAuction = fullServiceAuction;
            var playerId = PlayerDatas.Instance.baseData.PlayerID;
            var auctionItem = AuctionItemConfig.Get(fullServiceAuction.ItemID);
            var auctionItem = AuctionItemConfig.Get(fullServiceAuction.ItemID);
            var itemConfig = ItemConfig.Get(fullServiceAuction.ItemID);
            if (itemConfig == null)
            {
@@ -80,7 +81,7 @@
            }
            if (auctionItem == null)
            {
                DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为"+ fullServiceAuction.ItemID);
                DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为" + fullServiceAuction.ItemID);
                return;
            }
            AuctionItem = auctionItem;
@@ -97,14 +98,14 @@
                    m_BiddingTextObj.SetActive(true);
                }
            }
            ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true,
            ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true,
                (ulong)fullServiceAuction.ItemCount, itemConfig.BindType);
            m_ItemCell.Init(cellModel);
            m_ItemName.text = itemConfig.ItemName;
            if (itemConfig.EquipPlace != 0)
            {
                m_EquipmentScoreObj.SetActive(true);
               // m_Score.text
                // m_Score.text
            }
            int needJade = 0;
            if (fullServiceAuction.BidderPrice == 0)
@@ -117,7 +118,7 @@
            }
            m_JadeNumber.text = needJade.ToString();
            m_JadeNumber1.text = auctionItem.BuyoutPrice.ToString();
            m_PriceButton.SetListener(()=> //一口价
            m_PriceButton.SetListener(() => //一口价
            {
                int jade = (int)PlayerDatas.Instance.baseData.diamond;
                string str = "是否花费" + auctionItem.BuyoutPrice + "立即拍下商品?";
@@ -133,7 +134,7 @@
                });
            });
            m_JadeNumber2.text = needJade.ToString();
            m_BiddingButton.SetListener(()=> //竞价
            m_BiddingButton.SetListener(() => //竞价
            {
                int jade = (int)PlayerDatas.Instance.baseData.diamond;
                string str = "是否花费" + needJade + "参与竞价?";
@@ -149,6 +150,118 @@
                });
            });
        }
        //public override void Refresh(CellView cell)
        //{
        //    m_NeedImage.SetActive(false);
        //    m_ParticipateImage.SetActive(false);
        //    m_BiddingTextObj.SetActive(false);
        //    m_HighestPriceImage.SetActive(false);
        //    m_EquipmentScoreObj.SetActive(false);
        //    var index = cell.index;
        //    if (index >= model.FullServiceAuctionList.Count)
        //    {
        //        DebugEx.LogError("超出数据存储范围");
        //        return;
        //    }
        //    var fullServiceAuction = model.FullServiceAuctionList[index];
        //    if (index == 1)
        //    {
        //        var sendNumber = AuctionInquiry.Instance.GetSendNumber();
        //        if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.UpBool)
        //        {
        //            AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 2);
        //            auctionHelpModel.Wait = false;
        //        }
        //    } else if (index== model.FullServiceAuctionList.Count-2)
        //    {
        //        var sendNumber = AuctionInquiry.Instance.GetSendNumber();
        //        if (sendNumber != 0 && auctionHelpModel.Wait && model.QueryRemaining.DownBool)
        //        {
        //            AuctionInquiry.Instance.SendQueryAuction(fullServiceAuction.ItemGUID, sendNumber, 1);
        //            auctionHelpModel.Wait = false;
        //        }
        //    }
        //    FullServiceAuction = fullServiceAuction;
        //    var playerId = PlayerDatas.Instance.baseData.PlayerID;
        //    var auctionItem = AuctionItemConfig.Get(fullServiceAuction.ItemID);
        //    var itemConfig = ItemConfig.Get(fullServiceAuction.ItemID);
        //    if (itemConfig == null)
        //    {
        //        DebugEx.LogError("物品表没有找到该物品,物品ID为" + fullServiceAuction.ItemID);
        //        return;
        //    }
        //    if (auctionItem == null)
        //    {
        //        DebugEx.LogError("拍卖物品表没有找到该物品,物品ID为"+ fullServiceAuction.ItemID);
        //        return;
        //    }
        //    AuctionItem = auctionItem;
        //    if (model.BiddingItemInfoDic.ContainsKey(fullServiceAuction.ItemGUID))//参与了竞价的物品
        //    {
        //        var biddingItemInfo = model.BiddingItemInfoDic[fullServiceAuction.ItemGUID];
        //        m_ParticipateImage.SetActive(true);
        //        if (biddingItemInfo.BidderID == playerId)//判断是否最高竞价
        //        {
        //            m_HighestPriceImage.SetActive(true);
        //        }
        //        else
        //        {
        //            m_BiddingTextObj.SetActive(true);
        //        }
        //    }
        //    ItemCellModel cellModel = new ItemCellModel(fullServiceAuction.ItemID, true,
        //        (ulong)fullServiceAuction.ItemCount, itemConfig.BindType);
        //    m_ItemCell.Init(cellModel);
        //    m_ItemName.text = itemConfig.ItemName;
        //    if (itemConfig.EquipPlace != 0)
        //    {
        //        m_EquipmentScoreObj.SetActive(true);
        //       // m_Score.text
        //    }
        //    int needJade = 0;
        //    if (fullServiceAuction.BidderPrice == 0)
        //    {
        //        needJade = auctionItem.BasePrice;
        //    }
        //    else
        //    {
        //        needJade = fullServiceAuction.BidderPrice + auctionItem.BiddingAdd;
        //    }
        //    m_JadeNumber.text = needJade.ToString();
        //    m_JadeNumber1.text = auctionItem.BuyoutPrice.ToString();
        //    m_PriceButton.SetListener(()=> //一口价
        //    {
        //        int jade = (int)PlayerDatas.Instance.baseData.diamond;
        //        string str = "是否花费" + auctionItem.BuyoutPrice + "立即拍下商品?";
        //        ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) => {
        //            if (jade >= auctionItem.BuyoutPrice)
        //            {
        //                AuctionInquiry.Instance.SendSellAuctionItem(fullServiceAuction.ItemGUID, auctionItem.BuyoutPrice);
        //            }
        //            else
        //            {
        //                WindowCenter.Instance.Open<RechargeTipWin>();
        //            }
        //        });
        //    });
        //    m_JadeNumber2.text = needJade.ToString();
        //    m_BiddingButton.SetListener(()=> //竞价
        //    {
        //        int jade = (int)PlayerDatas.Instance.baseData.diamond;
        //        string str = "是否花费" + needJade + "参与竞价?";
        //        ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), str, (bool isOk) => {
        //            if (jade >= needJade)
        //            {
        //                AuctionInquiry.Instance.SendSellAuctionItem(fullServiceAuction.ItemGUID, needJade);
        //            }
        //            else
        //            {
        //                WindowCenter.Instance.Open<RechargeTipWin>();
        //            }
        //        });
        //    });
        //}
        private void LateUpdate()
        {
            if (AuctionItem != null && FullServiceAuction != null)
System/Auction/MyAuctionCell.cs
@@ -72,6 +72,7 @@
            }
            else
            {
                m_BiddingText.text = "竞价中...";
                if (type == 0)
                {
                    int auctionTaxrate = Mathf.CeilToInt((float)(auctionHelpModel.
System/Auction/MyAuctionWin.cs
@@ -100,7 +100,7 @@
                return -havex.CompareTo(havey);
            }
            bool havex1 = x.BidderPrice != 0;
            bool havey1 = y.FamilyID != 0;
            bool havey1 = y.BidderPrice != 0;
            if (havex1.CompareTo(havey1) != 0)//是否有收益
            {
                return -havex1.CompareTo(havey1);
@@ -112,7 +112,7 @@
                return -havex2.CompareTo(havey2);
            }
            bool havex3 = x.BidderPrice != 0;
            bool havey3 = y.FamilyID != 0;
            bool havey3 = y.BidderPrice != 0;
            if (havex3.CompareTo(havey3) != 0)//是否有收益
            {
                return -havex3.CompareTo(havey3);