//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, July 18, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
//每日礼包
|
namespace vnxbqy.UI
|
{
|
|
// 每日礼包由服务端通知,每周/月礼包取充值表和商城表
|
public class DayPackageWin : Window
|
{
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Button[] m_TimeBtn;
|
|
#region Built-in
|
DayPackageItemClassModel dayPackageItemModel { get { return ModelCenter.Instance.GetModel<DayPackageItemClassModel>(); } }
|
StoreModel storeModel
|
{
|
get { return ModelCenter.Instance.GetModel<StoreModel>(); }
|
}
|
|
VipModel vipModel
|
{
|
get { return ModelCenter.Instance.GetModel<VipModel>(); }
|
}
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
for (int i = 0; i < m_TimeBtn.Length; i++)
|
{
|
int index = i;
|
m_TimeBtn[i].AddListener(() => {
|
dayPackageItemModel.selectIndex = index;
|
});
|
}
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
dayPackageItemModel.onDayGoodsUpdate += onDayGoodsUpdate;
|
scroller.OnRefreshCell += Scroller_OnRefreshCell;
|
storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
|
vipModel.rechargeCountEvent += VipModel_rechargeCountEvent;
|
dayPackageItemModel.selectUpdate += OnSelect;
|
RefreshBuyShopLimitEvent();
|
VipModel_rechargeCountEvent(0);
|
DisPlay();
|
}
|
|
private void VipModel_rechargeCountEvent(int obj)
|
{
|
foreach (var item in dayPackageItemModel.m_WeekRechargeDict)
|
{
|
var info = item.Value;
|
if (info.orderInfo.Length > 3)
|
{
|
VipModel.RechargeCount rechargeCount;
|
if (vipModel.TryGetRechargeCount(vipModel.orderInfoToCTGID[info.orderInfo], out rechargeCount))
|
{
|
dayPackageItemModel.m_WeekRechargeDict[item.Key].getCount = rechargeCount.weekPayCount;
|
}
|
}
|
}
|
|
foreach (var item in dayPackageItemModel.m_MonthRechargeDict)
|
{
|
var info = item.Value;
|
if (info.orderInfo.Length > 3)
|
{
|
VipModel.RechargeCount rechargeCount;
|
if (vipModel.TryGetRechargeCount(vipModel.orderInfoToCTGID[info.orderInfo], out rechargeCount))
|
{
|
dayPackageItemModel.m_MonthRechargeDict[item.Key].getCount = rechargeCount.monthPayCount;
|
}
|
}
|
}
|
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void Scroller_OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
if (type == ScrollerDataType.Header)
|
{
|
var header = cell as DayPackageItemCell;
|
header.Display(cell.index);
|
}
|
}
|
|
private void onDayGoodsUpdate()
|
{
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
if (dayPackageItemModel.redPointStre1.state == RedPointState.Simple)
|
{
|
dayPackageItemModel.IsShowTip();
|
}
|
}
|
|
|
private void DisPlay()
|
{
|
ShowButton();
|
CreateScroller();
|
}
|
|
|
|
protected override void OnPreClose()
|
{
|
dayPackageItemModel.onDayGoodsUpdate -= onDayGoodsUpdate;
|
storeModel.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent;
|
scroller.OnRefreshCell -= Scroller_OnRefreshCell;
|
vipModel.rechargeCountEvent -= VipModel_rechargeCountEvent;
|
dayPackageItemModel.selectUpdate -= OnSelect;
|
}
|
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
|
#endregion
|
|
|
void OnSelect()
|
{
|
ShowButton();
|
CreateScroller();
|
}
|
|
void ShowButton()
|
{
|
for (int i = 0; i < m_TimeBtn.Length; i++)
|
{
|
m_TimeBtn[i].FindComponent("Image", "select").SetActive(dayPackageItemModel.selectIndex == i);
|
}
|
}
|
|
void RefreshBuyShopLimitEvent()
|
{
|
foreach (var item in dayPackageItemModel.m_WeekRechargeDict)
|
{
|
var info = item.Value;
|
if (info.orderInfo.Length < 3)
|
{
|
var shopInfo = storeModel.GetBuyShopLimit((uint)(item.Key - 100000000));
|
if (shopInfo != null)
|
{
|
dayPackageItemModel.m_WeekRechargeDict[item.Key].getCount = shopInfo.BuyCnt;
|
}
|
}
|
}
|
|
foreach (var item in dayPackageItemModel.m_MonthRechargeDict)
|
{
|
var info = item.Value;
|
if (info.orderInfo.Length < 3)
|
{
|
var shopInfo = storeModel.GetBuyShopLimit((uint)(item.Key - 100000000));
|
if (shopInfo != null)
|
{
|
dayPackageItemModel.m_MonthRechargeDict[item.Key].getCount = shopInfo.BuyCnt;
|
}
|
}
|
}
|
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
void CreateScroller()
|
{
|
scroller.Refresh();
|
List<int> showIDs = new List<int>();
|
if (dayPackageItemModel.selectIndex == 0)
|
{
|
showIDs = dayPackageItemModel.recordIDs;
|
}
|
else if (dayPackageItemModel.selectIndex == 1)
|
{
|
showIDs = dayPackageItemModel.weekStoreListSort;
|
}
|
else if (dayPackageItemModel.selectIndex == 2)
|
{
|
showIDs = dayPackageItemModel.monthStoreListSort;
|
}
|
|
for (int i = 0; i < showIDs.Count; i++)
|
{
|
if (i % 3 == 0)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
|
}
|
scroller.Restart();
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
}
|