コード例 #1
0
ファイル: EmailBase.cs プロジェクト: abel/sinan
        /// <summary>
        /// 邮件相关信息
        /// </summary>
        /// <param name="playerid">发件人</param>
        /// <param name="name">发件人名称</param>
        /// <param name="receiveid">接收人</param>
        /// <param name="receivename">接收者名称</param>
        /// <param name="d">邮件内容</param>
        /// <returns></returns>
        public static Variant CreateEmailValue(string playerid, string name, string receiveid, string receivename, Variant d)
        {
            Variant v = new Variant();
            v.Add("SendID", playerid);
            v.Add("SendName", name);
            v.Add("ReceiveID", receiveid);
            v.Add("ReceiveName", receivename);
            v.Add("Content", d.GetValue<object>("mailMess"));
            DateTime dt = DateTime.UtcNow;
            v.Add("UpdateDate", dt);
            //邮件有效天数
            int day = Convert.ToInt32(TipManager.GetMessage(EmailReturn.HameDay));
            v.Add("EndDate", dt.AddDays(day));

            int IsHave = 0;
            if (d.ContainsKey("moneyGoods"))
            {
                Variant money = d.GetVariantOrDefault("moneyGoods");
                if (money.ContainsKey("Coin"))
                {
                    v.Add("Coin", money.GetIntOrDefault("Coin"));
                    IsHave = money.GetIntOrDefault("Coin") > 0 ? 1 : 0;
                }
                else
                {
                    v.Add("Coin", 0);
                }
                if (money.ContainsKey("Score"))
                {
                    v.Add("Score", money.GetIntOrDefault("Score"));
                    IsHave = money.GetIntOrDefault("Score") > 0 ? 1 : 0;
                }
                else
                {
                    v.Add("Score", 0);
                }
            }
            else
            {
                v.Add("Coin", 0);
                v.Add("Score", 0);
            }

            if (d.ContainsKey("goodsList"))
            {
                List<Variant> list = new List<Variant>();
                IList goodsList = d.GetValue<IList>("goodsList");
                foreach (Variant msg in goodsList)
                {
                    GameConfig gc = GameConfigAccess.Instance.FindOneById(msg.GetStringOrDefault("E"));
                    string goodsType = string.Empty;
                    int sort = 0;
                    if (gc != null)
                    {
                        goodsType = gc.Value.GetStringOrDefault("GoodsType");
                        sort = gc.Value.GetIntOrDefault("Sort");
                    }
                    else
                    {
                        if (gc == null)
                        {
                            Goods g = GoodsAccess.Instance.FindOneById(msg.GetStringOrDefault("E"));
                            if (g != null)
                            {
                                goodsType = g.Value.GetStringOrDefault("GoodsType");
                                sort = g.Value.GetIntOrDefault("Sort");
                            }
                            else
                            {
                                if (g == null)
                                {
                                    //查询是否是宠物
                                    Pet pet = PetAccess.Instance.FindOneById(msg.GetStringOrDefault("E"));
                                    if (pet != null)
                                    {
                                        goodsType = "Pet";
                                        sort = pet.Value.GetIntOrDefault("Sort");
                                    }
                                }
                            }
                        }
                    }
                    if (goodsType == string.Empty)
                        continue;

                    Variant gs = new Variant();
                    gs.Add("SoleID", msg.GetStringOrDefault("E"));
                    gs.Add("GoodsID", msg.GetStringOrDefault("G"));
                    gs.Add("Number", msg.GetIntOrDefault("A"));
                    gs.Add("GoodsType", goodsType);
                    gs.Add("Sort", sort);

                    gs.Add("Coin", msg.GetIntOrDefault("Coin"));
                    gs.Add("Score", msg.GetIntOrDefault("Score"));

                    gs.Add("T", msg.GetVariantOrDefault("T"));
                    list.Add(gs);
                }
                v.Add("GoodsList", list);
                if (list.Count > 0)
                {
                    IsHave = 1;
                }
            }
            v.Add("IsHave", IsHave);
            return v;
        }