少年修仙传客户端代码仓库
client_linchunjie
2018-11-22 b8ddbd67430c1f32e5f1630c6119c6c2349ee521
4941 【前端】【1.3】超值礼包改成人民币购买
2个文件已添加
3个文件已修改
282 ■■■■ 已修改文件
System/OpenServerActivity/OSGiftModel.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerGiftWin.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SuperValueGiftBehaviour.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SuperValueGiftBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipModel.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSGiftModel.cs
@@ -8,10 +8,15 @@
    [XLua.LuaCallCSharp]
    public class OSGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        VipModel vipModel
        {
            get { return ModelCenter.Instance.GetModel<VipModel>(); }
        }
        public override void Init()
        {
            ParseConfig();
            storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
            vipModel.rechargeCountEvent += RechargeCountEvent;
            OpenServerActivityCenter.Instance.Register(6, this);
        }
@@ -36,8 +41,6 @@
        public event Action<int> onStateUpate;
        public event Action onSelectUpdate;
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        public bool IsOpen
        {
@@ -102,7 +105,7 @@
            {
                gifts.Add(new SuperValueGift()
                {
                    giftId = array[i][0],
                    payType = array[i][0],
                    openDays = array[i][1],
                });
            }
@@ -113,7 +116,7 @@
            }
        }
        private void RefreshBuyShopLimitEvent()
        private void RechargeCountEvent(int id)
        {
            UpdateRedpoint();
        }
@@ -133,7 +136,7 @@
        {
            for (int i = 0; i < gifts.Count; i++)
            {
                if (!IsGiftExist(gifts[i].giftId))
                if (!IsGiftExist(gifts[i].payType))
                {
                    continue;
                }
@@ -142,7 +145,7 @@
            return false;
        }
        public bool IsGiftExist(int _id)
        public bool IsGiftExist(int payType)
        {
            if (startSeconds == 0)
            {
@@ -150,7 +153,7 @@
            }
            var gift = gifts.Find((x) =>
            {
                return x.giftId == _id;
                return x.payType == payType;
            });
            if (!gift.Equals(default(SuperValueGift)))
            {
@@ -162,16 +165,35 @@
            return true;
        }
        public bool IsGiftBuy(int _id)
        public bool IsGiftBuy(int payType)
        {
            var _limit = storeModel.GetBuyShopLimit((uint)_id);
            var config = Config.Instance.Get<StoreConfig>(_id);
            if (_limit != null && config != null
                && _limit.BuyCnt >= config.PurchaseNumber[0])
            var rechargeId = GetRechargeId(payType);
            if (rechargeId != 0)
            {
                return true;
                VipModel.RechargeCount rechargeCount;
                if (vipModel.TryGetRechargeCount(rechargeId, out rechargeCount))
                {
                    return rechargeCount.todayCount >= 1;
                }
            }
            return false;
        }
        public int GetRechargeId(int payType)
        {
            var list = vipModel.GetCTGConfigs(VersionConfig.Get().appId);
            if (list != null)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    var config = Config.Instance.Get<CTGConfig>(list[i]);
                    if (config != null && config.PayType == payType)
                    {
                        return config.RecordID;
                    }
                }
            }
            return 0;
        }
        public void SetAreadyOpens()
@@ -179,7 +201,7 @@
            alreadyOpens.Clear();
            for (int i = 0; i < gifts.Count; i++)
            {
                if (IsGiftExist(gifts[i].giftId))
                if (IsGiftExist(gifts[i].payType))
                {
                    alreadyOpens.Add(i);
                }
@@ -190,7 +212,7 @@
        {
            for (int i = 0; i < alreadyOpens.Count; i++)
            {
                if (gifts[i].giftId == jumpGiftId)
                if (gifts[i].payType == jumpGiftId)
                {
                    jumpGiftId = 0;
                    return alreadyOpens[i];
@@ -230,7 +252,7 @@
            for (int i = 0; i < redpoints.Count; i++)
            {
                redpoints[i].state = RedPointState.None;
                if (IsGiftExist(gifts[i].giftId) && !IsGiftBuy(gifts[i].giftId)
                if (IsGiftExist(gifts[i].payType) && !IsGiftBuy(gifts[i].payType)
                    && !GetDayRemind(i))
                {
                    redpoints[i].state = RedPointState.Simple;
@@ -240,7 +262,7 @@
        public struct SuperValueGift
        {
            public int giftId;
            public int payType;
            public int openDays;
        }
    }
System/OpenServerActivity/OpenServerGiftWin.cs
@@ -15,17 +15,14 @@
    public class OpenServerGiftWin : Window
    {
        [SerializeField] RectTransform m_ContainerDisplay;
        [SerializeField] OSGiftBehaviour[] m_OSGifts;
        [SerializeField] SuperValueGiftBehaviour[] m_OSGifts;
        [SerializeField] RectTransform m_ContainerTime;
        [SerializeField] Text m_Overdue;
        [SerializeField] Text m_Timer;
        StoreModel m_Model;
        StoreModel model
        VipModel vipModel
        {
            get
            {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<StoreModel>());
            }
            get { return ModelCenter.Instance.GetModel<VipModel>(); }
        }
        OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
@@ -45,7 +42,6 @@
                giftModel.selectIndex = giftModel.alreadyOpens[0];
            }
            model.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            giftModel.onSelectUpdate += OnSelectUpdate;
            giftModel.jumpGiftId = 0;
@@ -58,7 +54,6 @@
        protected override void OnPreClose()
        {
            model.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent;
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            giftModel.onSelectUpdate -= OnSelectUpdate;
        }
@@ -69,11 +64,6 @@
        #endregion
        private void OnSelectUpdate()
        {
            Display();
        }
        private void RefreshBuyShopLimitEvent()
        {
            Display();
        }
@@ -114,7 +104,8 @@
            {
                if (giftModel.selectIndex == i)
                {
                    m_OSGifts[i].Display(giftModel.gifts[i].giftId);
                    var rechargeId = giftModel.GetRechargeId(giftModel.gifts[i].payType);
                    m_OSGifts[i].Display(rechargeId);
                    _index = i;
                    break;
                }
System/OpenServerActivity/SuperValueGiftBehaviour.cs
New file
@@ -0,0 +1,134 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class SuperValueGiftBehaviour : MonoBehaviour
    {
        [SerializeField] Text m_Cost;
        [SerializeField] RareItem[] m_Items;
        [SerializeField] Button m_Buy;
        [SerializeField] Image m_AreadyBuySign;
        OSGiftModel model
        {
            get { return ModelCenter.Instance.GetModel<OSGiftModel>(); }
        }
        VipModel vipModel
        {
            get { return ModelCenter.Instance.GetModel<VipModel>(); }
        }
        int rechargeId = 0;
        private void Awake()
        {
            m_Buy.onClick.AddListener(Buy);
            for (int i = 0; i < m_Items.Length; i++)
            {
                var _index = i;
                m_Items[i].cellBtn.onClick.AddListener(() =>
                {
                    OnItemClick(_index);
                });
            }
        }
        private void OnEnable()
        {
            vipModel.rechargeCountEvent += RechargeCountEvent;
        }
        private void OnDisable()
        {
            vipModel.rechargeCountEvent -= RechargeCountEvent;
        }
        private void RechargeCountEvent(int id)
        {
            if (id == rechargeId)
            {
                Display(rechargeId);
            }
        }
        private void OnItemClick(int index)
        {
            if (rechargeId != 0)
            {
                List<AwardItem> items;
                if (vipModel.TryGetRechargeItem(rechargeId, out items))
                {
                    if (index < items.Count)
                    {
                        var item = items[index];
                        ItemAttrData attrData = new ItemAttrData(item.item.id, false, (ulong)item.item.count, -1, item.isBind);
                        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(attrData);
                    }
                }
            }
        }
        private void Buy()
        {
            if (rechargeId != 0)
            {
                VipModel.RechargeCount rechargeCount;
                if (vipModel.TryGetRechargeCount(rechargeId, out rechargeCount))
                {
                    if (rechargeCount.totalCount >= 1)
                    {
                        return;
                    }
                }
                vipModel.CTG(rechargeId);
            }
        }
        public void Display(int id)
        {
            rechargeId = id;
            List<AwardItem> items;
            bool hasItem = vipModel.TryGetRechargeItem(id, out items);
            for (int i = 0; i < m_Items.Length; i++)
            {
                if (hasItem && i < items.Count)
                {
                    m_Items[i].gameObject.SetActive(true);
                    var _item = items[i];
                    var _itemModel = new ItemCellModel(_item.item.id, false, (ulong)_item.item.count, _item.isBind);
                    m_Items[i].SetItemRare(_itemModel, i == 0);
                }
                else
                {
                    m_Items[i].gameObject.SetActive(false);
                }
            }
            var config = Config.Instance.Get<CTGConfig>(id);
            if (config != null)
            {
                OrderInfoConfig orderInfoConfig;
                if (vipModel.TryGetOrderInfo(id, out orderInfoConfig))
                {
                    m_Cost.text = Language.Get("SuperValueGiftCost", orderInfoConfig.PayRMBNum);
                }
            }
            VipModel.RechargeCount rechargeCount;
            bool alreadyBuy = false;
            if (vipModel.TryGetRechargeCount(id, out rechargeCount))
            {
                alreadyBuy = rechargeCount.totalCount >= 1;
            }
            m_Buy.gameObject.SetActive(!alreadyBuy);
            m_AreadyBuySign.gameObject.SetActive(alreadyBuy);
        }
    }
}
System/OpenServerActivity/SuperValueGiftBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ef46f898686d46e42b85bc07d1062e36
timeCreated: 1542854810
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Vip/VipModel.cs
@@ -396,29 +396,36 @@
        private void ParseCTGConfig()
        {
            var _configs = Config.Instance.GetAllValues<OrderInfoConfig>();
            var configs = Config.Instance.GetAllValues<OrderInfoConfig>();
            m_RechargeGainItemDict = new Dictionary<int, List<AwardItem>>();
            for (int i = 0; i < _configs.Count; i++)
            for (int i = 0; i < configs.Count; i++)
            {
                if (_configs[i].CTGID == 0)
                List<OrderInfoConfig> list;
                if (!m_OrderInfoDict.TryGetValue(configs[i].AppId, out list))
                {
                    list = new List<OrderInfoConfig>();
                    m_OrderInfoDict.Add(configs[i].AppId, list);
                }
                list.Add(configs[i]);
                if (configs[i].CTGID == 0)
                {
                    continue;
                }
                List<int> _list = null;
                if (!m_CTGConfigDict.TryGetValue(_configs[i].AppId, out _list))
                if (!m_CTGConfigDict.TryGetValue(configs[i].AppId, out _list))
                {
                    _list = new List<int>();
                    m_CTGConfigDict.Add(_configs[i].AppId, _list);
                    m_CTGConfigDict.Add(configs[i].AppId, _list);
                }
                _list.Add(_configs[i].CTGID);
                if (!m_RechargeGainItemDict.ContainsKey(_configs[i].CTGID))
                _list.Add(configs[i].CTGID);
                if (!m_RechargeGainItemDict.ContainsKey(configs[i].CTGID))
                {
                    var ctg = Config.Instance.Get<CTGConfig>(_configs[i].CTGID);
                    var ctg = Config.Instance.Get<CTGConfig>(configs[i].CTGID);
                    var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(ctg.GainItemList);
                    if (_itemArray != null && _itemArray.Length > 0)
                    {
                        var _itemList = new List<AwardItem>();
                        m_RechargeGainItemDict.Add(_configs[i].CTGID, _itemList);
                        m_RechargeGainItemDict.Add(configs[i].CTGID, _itemList);
                        for (int k = 0; k < _itemArray.Length; k++)
                        {
                            AwardItem _item = new AwardItem()
@@ -448,6 +455,11 @@
                return m_CTGConfigDict[_appid];
            }
            return m_CTGConfigDict.Values.Last();
        }
        public bool TryGetRechargeItem(int id, out List<AwardItem> list)
        {
            return m_RechargeGainItemDict.TryGetValue(id, out list);
        }
        private Dictionary<int, List<AwardItem>> m_FirstChargeItemDict = new Dictionary<int, List<AwardItem>>();
@@ -708,6 +720,7 @@
        public Dictionary<int, int> firstRechargeWeapon { get; private set; }
        public Dictionary<int, List<AwardItem>> m_RechargeGainItemDict { get; private set; }
        private Dictionary<int, RechargeCount> m_RechargeCountDict = new Dictionary<int, RechargeCount>();
        Dictionary<string, List<OrderInfoConfig>> m_OrderInfoDict = new Dictionary<string, List<OrderInfoConfig>>();
        public int presentSelectRechargeId { get; private set; }
        public bool beforeRecharge { get; private set; }
        private int beforeVipLv { get; set; }
@@ -720,14 +733,20 @@
        public bool TryGetOrderInfo(int _id, out OrderInfoConfig config)
        {
            config = null;
            var configs = Config.Instance.GetAllValues<OrderInfoConfig>();
            for (int i = 0; i < configs.Count; i++)
            if (_id == 0)
            {
                if (configs[i].AppId.Equals(VersionConfig.Get().appId)
                    && configs[i].CTGID == _id)
                return false;
            }
            List<OrderInfoConfig> list;
            if (m_OrderInfoDict.TryGetValue(VersionConfig.Get().appId, out list))
            {
                for (int i = 0; i < list.Count; i++)
                {
                    config = configs[i];
                    return true;
                    if (list[i].CTGID == _id)
                    {
                        config = list[i];
                        return true;
                    }
                }
            }
            return false;
@@ -767,9 +786,11 @@
            var ctgconfig = Config.Instance.Get<CTGConfig>(config.CTGID);
            if (!VersionConfig.Get().appId.Equals(config.AppId))
            {
#if UNITY_EDITOR
                MessageWin.Inst.ShowFixedTip("Appid不对应...");
#endif
                return;
            }
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Recharge))
            {
                FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Recharge);
                return;
            }