Exemple #1
0
        ///// <summary>
        ///// 奖励配置
        ///// </summary>
        ///// <param name="user"></param>
        //public static UserTakePrize GetUserTake(TreasureInfo prize, string userID)
        //{
        //    UserTakePrize userPrize = new UserTakePrize();
        //    userPrize.CreateDate = DateTime.Now;
        //    userPrize.ID = Guid.NewGuid().ToString();
        //    userPrize.UserID = Convert.ToInt32(userID);
        //    userPrize.MailContent = LanguageManager.GetLang().St12004_YouWheelOfFortune.Substring(0, 9);
        //    userPrize.IsTasked = false;
        //    userPrize.TaskDate = MathUtils.SqlMinDate;
        //    userPrize.ItemPackage = string.Empty;
        //    userPrize.SparePackage = string.Empty;
        //    userPrize.CrystalPackage = string.Empty;
        //    userPrize.OpUserID = 10000;
        //    switch (prize.Type)
        //    {
        //        case RewardType.GameGoin:
        //            userPrize.GameCoin = (int)prize.Num;
        //            userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GameCoin, userPrize.GameCoin) + ",";
        //            break;
        //        case RewardType.Obtion:
        //            userPrize.ObtainNum = (int)prize.Num;
        //            userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ObtionNum, userPrize.ObtainNum) + ",";
        //            break;
        //        case RewardType.ExpNum:
        //            userPrize.ExpNum = (int)prize.Num;
        //            userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ExpNum, userPrize.ExpNum) + ",";
        //            break;
        //        case RewardType.EnergyNum:
        //            userPrize.EnergyNum = (int)prize.Num;
        //            userPrize.MailContent += string.Format(LanguageManager.GetLang().St_EnergyNum, userPrize.EnergyNum) + ",";
        //            break;
        //        case RewardType.Experience:
        //            break;
        //        case RewardType.Gold:
        //            userPrize.Gold = (int)prize.Num;
        //            userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GiftGoldNum, userPrize.Gold) + ",";
        //            break;
        //        case RewardType.Item:
        //            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(prize.ItemID);
        //            if (itemInfo != null)
        //            {
        //                userPrize.ItemPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.ItemLv, (int)prize.Num);
        //                userPrize.MailContent += string.Format("{0}*{1}", itemInfo.ItemName, (int)prize.Num) + ",";
        //            }
        //            break;
        //        case RewardType.CrystalId:
        //            CrystalInfo crystal = new ConfigCacheSet<CrystalInfo>().FindKey(prize.ItemID);
        //            if (crystal != null)
        //            {
        //                userPrize.CrystalPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.ItemLv, (int)prize.Num);
        //                userPrize.MailContent += string.Format("{0}*{1}", crystal.CrystalName, (int)prize.Num) + ",";
        //            }
        //            break;
        //        case RewardType.Spare:
        //            SparePartInfo spare = new ConfigCacheSet<SparePartInfo>().FindKey(prize.ItemID);
        //            if (spare != null)
        //            {
        //                userPrize.SparePackage = string.Format("{0}={1}={2}", prize.ItemID, prize.ItemLv, (int)prize.Num);
        //                userPrize.MailContent += string.Format("{0}*{1}", spare.Name, (int)prize.Num) + ",";
        //            }
        //            break;
        //        case RewardType.Enchant:
        //            EnchantInfo enchantInfo = new ConfigCacheSet<EnchantInfo>().FindKey(prize.ItemID);
        //            if (enchantInfo != null)
        //            {
        //                userPrize.EnchantPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.ItemLv, (int)prize.Num);
        //                userPrize.MailContent += string.Format("{0}*{1}", enchantInfo.EnchantName, (int)prize.Num) + ",";
        //            }
        //            break;
        //        default:
        //            break;
        //    }
        //    userPrize.MailContent = userPrize.MailContent.TrimEnd(',');
        //    return userPrize;
        //}

        /// <summary>
        /// 充值返还
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="goldNum"></param>
        /// <returns></returns>
        public static void ReturnRatioGold(string userID, int goldNum)
        {
            UserDial userDial = new GameDataCacheSet <UserDial>().FindKey(userID);

            if (userDial != null && userDial.ReturnRatio > 0)
            {
                int           giftGold   = MathUtils.RoundCustom(goldNum * userDial.ReturnRatio);
                var           cachePrize = new ShareCacheStruct <UserTakePrize>();
                UserTakePrize userPrize  = new UserTakePrize();
                userPrize.CreateDate     = DateTime.Now;
                userPrize.ID             = Guid.NewGuid().ToString();
                userPrize.UserID         = Convert.ToInt32(userID);
                userPrize.MailContent    = string.Format(LanguageManager.GetLang().St12004_RechargeReturnGoldNum, GetTransformData(userDial.ReturnRatio), giftGold);
                userPrize.IsTasked       = false;
                userPrize.TaskDate       = MathUtils.SqlMinDate;
                userPrize.ItemPackage    = string.Empty;
                userPrize.SparePackage   = string.Empty;
                userPrize.CrystalPackage = string.Empty;
                userPrize.EnchantPackage = string.Empty;
                userPrize.OpUserID       = 10000;
                userPrize.GameCoin       = 0;
                userPrize.ObtainNum      = 0;
                userPrize.ExpNum         = 0;
                userPrize.EnergyNum      = 0;
                userPrize.Gold           = giftGold;
                userDial.ReturnRatio     = 0;
                cachePrize.Add(userPrize);
            }
        }
        /// <summary>
        ///vip活动礼包
        /// </summary>
        public static void GetVipFestival(string userID)
        {
            FestivalInfo info = GetInfo(FestivalType.VIPFestival);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null || fRest.RefreashDate < info.StartDate ||
                    (fRest.RestrainNum < info.RestrainNum && fRest.RefreashDate >= info.StartDate &&
                     fRest.RefreashDate <= info.EndDate))
                {
                    CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                    foreach (PrizeInfo prize in prizeList)
                    {
                        UserTakePrize userTask = PrizeHelper.GetUserTake(prize, userID, info);
                        new ShareCacheStruct <UserTakePrize>().Add(userTask);
                    }
                    if (fRest == null)
                    {
                        fRest              = new FestivalRestrain();
                        fRest.FestivalID   = info.FestivalID;
                        fRest.RefreashDate = DateTime.Now;
                        fRest.RestrainNum  = 1;
                        fRest.UserID       = userID;
                        cacheSet.Add(fRest);
                    }
                    else
                    {
                        fRest.RestrainNum  = MathUtils.Addition(fRest.RestrainNum, 1);
                        fRest.RefreashDate = DateTime.Now;
                    }
                }
            }
        }
Exemple #3
0
        private bool doProcessPrize(UserTakePrize userPrize)
        {
            Base.BaseLog log = new Base.BaseLog();
            if (userPrize == null)
            {
                return(false);
            }
            string userID   = userPrize.UserID.ToString();
            var    gameUser = new PersonalCacheStruct <GameUser>().FindKey(userID);

            if (gameUser == null)
            {
                return(false);
            }

            log.SaveDebugLog(string.Format("玩家{0}领取奖励{1}:{2}", userID, userPrize.ID, userPrize.MailContent));
            userPrize.IsTasked = true;
            userPrize.TaskDate = DateTime.Now;
            //userPrize.Update();

            gameUser.ObtainNum = MathUtils.Addition(gameUser.ObtainNum, userPrize.ObtainNum);
            gameUser.EnergyNum = MathUtils.Addition(gameUser.EnergyNum, userPrize.EnergyNum.ToShort());
            gameUser.GameCoin  = MathUtils.Addition(gameUser.GameCoin, userPrize.GameCoin);
            gameUser.GiftGold  = MathUtils.Addition(gameUser.GiftGold, userPrize.Gold);
            gameUser.ExpNum    = MathUtils.Addition(gameUser.ExpNum, userPrize.ExpNum);
            if (gameUser.UserExtend == null)
            {
                gameUser.UserExtend = new GameUserExtend();
            }
            gameUser.UserExtend.GainBlessing = MathUtils.Addition(gameUser.UserExtend.GainBlessing, userPrize.GainBlessing);
            if (userPrize.VipLv > 0)
            {
                var vipLv = new ShareCacheStruct <VipLvInfo>().FindKey(userPrize.VipLv.ToShort()) ?? new VipLvInfo();
                gameUser.ExtGold = vipLv.PayGold;
            }
            //gameUser.Update();

            PutItemPackage(userPrize.ItemPackage.Split(','), userID);
            PutCrystal(userPrize.CrystalPackage.Split(','), userID);
            PutSparePackage(userPrize.SparePackage.Split(','), userID);
            if (!string.IsNullOrEmpty(userPrize.EnchantPackage))
            {
                PutEnchant(userPrize.EnchantPackage.Split(','), userID);
            }
            var chatService = new TjxChatService();

            chatService.SystemSendWhisper(gameUser, string.Format("{0}", userPrize.MailContent));

            return(true);
        }
        /// <summary>
        /// 累计消费活动奖励(晶石,金币,精力)
        /// </summary>
        private static void FestivalConsumeCount(FestivalInfo info, string userID)
        {
            UserConsume consume = new PersonalCacheStruct <UserConsume>().FindKey(userID);

            if (consume == null)
            {
                return;
            }
            var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
            FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);

            if (fRest != null && fRest.RestrainNum >= 1 && fRest.RefreashDate == info.StartDate)
            {
                return;
            }
            if ((info.FestivalType == FestivalType.SparConsumption && consume.GoldDate >= info.StartDate && consume.GoldNum >= info.RestrainNum) ||
                (info.FestivalType == FestivalType.GameCoin && consume.CoinDate >= info.StartDate && consume.GameCoin >= info.RestrainNum) ||
                (info.FestivalType == FestivalType.Energy && consume.EnergyDate >= info.StartDate && consume.EnergyNum >= info.RestrainNum))
            {
                CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                foreach (PrizeInfo prize in prizeList)
                {
                    UserTakePrize userTask = PrizeHelper.GetUserTake(prize, userID, info);
                    new ShareCacheStruct <UserTakePrize>().Add(userTask);
                }
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    fRest.UserID       = userID;
                    cacheSet.Add(fRest);
                }
                else
                {
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    //fRest.Update();
                }
            }
        }
        /// <summary>
        /// 累计充值活动
        /// </summary>
        public static void FestivalPayCount(FestivalInfo info, GameUser user)
        {
            UserRecharge recharge = new PersonalCacheStruct <UserRecharge>().FindKey(user.UserID);

            if (recharge == null)
            {
                return;
            }
            var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
            FestivalRestrain fRest = cacheSet.FindKey(user.UserID, info.FestivalID);

            if (fRest != null && fRest.RestrainNum >= 1 && fRest.RefreashDate == info.StartDate)
            {
                return;
            }
            if (recharge.FestivalDate >= info.StartDate &&
                recharge.FestivalCount >= info.RestrainNum)
            {
                CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                foreach (PrizeInfo prize in prizeList)
                {
                    UserTakePrize userTask = PrizeHelper.GetUserTake(prize, user.UserID, info);
                    new ShareCacheStruct <UserTakePrize>().Add(userTask);
                }
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    fRest.UserID       = user.UserID;
                    cacheSet.Add(fRest);
                }
                else
                {
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                }
            }
        }
Exemple #6
0
 private void AddUserItem(string userID, int itemID, int itemNum)
 {
     if (itemID > 0 && itemNum > 0)
     {
         UserTakePrize userPrizeLog = new UserTakePrize
         {
             ID          = Guid.NewGuid().ToString(),
             UserID      = userID.ToInt(),
             ItemPackage = string.Format("{0}={1}={2}", itemID, 1, itemNum),
             MailContent = string.Format("GM发送物品"),
             IsTasked    = false,
             TaskDate    = MathUtils.SqlMinDate,
             OpUserID    = 10000,
             CreateDate  = DateTime.Now
         };
         var sender = DataSyncManager.GetDataSender();
         sender.Send(userPrizeLog);
     }
     else
     {
         throw new Exception("无此物品");
     }
 }
        /// <summary>
        /// 获得奖励物品
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="gamecoin"></param>
        /// <param name="item"></param>
        /// <param name="content"></param>
        public static void GainNewCardPackage(string userID, int gamecoin, string item, string content)
        {
            UserTakePrize userPrize = new UserTakePrize();

            userPrize.ID             = Guid.NewGuid().ToString();
            userPrize.UserID         = Convert.ToInt32(userID);
            userPrize.ObtainNum      = 0;
            userPrize.EnergyNum      = 0;
            userPrize.GameCoin       = gamecoin;
            userPrize.Gold           = 0;
            userPrize.ExpNum         = 0;
            userPrize.VipLv          = 0;
            userPrize.GainBlessing   = 0;
            userPrize.ItemPackage    = item;
            userPrize.SparePackage   = string.Empty;
            userPrize.CrystalPackage = string.Empty;
            userPrize.EnchantPackage = string.Empty;
            userPrize.MailContent    = content;
            userPrize.IsTasked       = false;
            userPrize.TaskDate       = MathUtils.SqlMinDate;
            userPrize.OpUserID       = 10000;
            userPrize.CreateDate     = DateTime.Now;
            new ShareCacheStruct <UserTakePrize>().Add(userPrize);
        }
        public static UserTakePrize GetUserTake(PrizeInfo prize, string userID, FestivalInfo info)
        {
            UserTakePrize userPrize = new UserTakePrize();

            userPrize.CreateDate     = DateTime.Now;
            userPrize.ID             = Guid.NewGuid().ToString();
            userPrize.UserID         = Convert.ToInt32(userID);
            userPrize.MailContent    = info.FestivalExtend.KeyWord;
            userPrize.IsTasked       = false;
            userPrize.TaskDate       = MathUtils.SqlMinDate;
            userPrize.ItemPackage    = string.Empty;
            userPrize.SparePackage   = string.Empty;
            userPrize.CrystalPackage = string.Empty;
            userPrize.EnchantPackage = string.Empty;
            userPrize.OpUserID       = 10000;
            switch (prize.Type)
            {
            case RewardType.GameGoin:
                userPrize.GameCoin     = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GameCoin, prize.Num);
                break;

            case RewardType.Obtion:
                userPrize.ObtainNum    = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ObtionNum, prize.Num);
                break;

            case RewardType.ExpNum:
                userPrize.ExpNum       = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ExpNum, prize.Num);
                break;

            case RewardType.EnergyNum:
                userPrize.EnergyNum    = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_EnergyNum, prize.Num);
                break;

            case RewardType.Experience:
                break;

            case RewardType.Gold:
                userPrize.Gold         = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GiftGoldNum, prize.Num);
                break;

            case RewardType.Item:
                userPrize.ItemPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(prize.ItemID);
                if (itemInfo != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", itemInfo.ItemName, prize.Num);
                }
                break;

            case RewardType.CrystalType:
                //List<CrystalInfo> crystalArray2 = new ShareCacheStruct<CrystalInfo>().FindAll(CrystalInfo.Index_CrystalQuality, prize.CrystalType);
                //userPrize.CrystalPackage = string.Format("{0}={1}={2}", itemID, prize.UserLv, itemNum);
                break;

            case RewardType.CrystalId:

                userPrize.CrystalPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(prize.ItemID);
                if (crystal != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", crystal.CrystalName, prize.Num);
                }
                break;

            case RewardType.Spare:
                userPrize.SparePackage = string.Format("{0}={1}={2}", prize.ItemID, prize.Num, prize.Num);
                SparePartInfo spare = new ShareCacheStruct <SparePartInfo>().FindKey(prize.ItemID);
                if (spare != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", spare.Name, prize.Num);
                }
                break;

            case RewardType.Enchant:
                userPrize.EnchantPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(prize.ItemID);
                if (enchantInfo != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", enchantInfo.EnchantName, prize.Num);
                }
                break;

            default:
                break;
            }
            return(userPrize);
        }
        public override void Process(JsonParameter[] paramList)
        {
            JsonParameterList parameters = JsonParameter.Convert(paramList);
            string            op         = parameters["op"];

            string[] UserList       = Convert.ToString(parameters["UserID"]).Split(new char[] { ',' });
            string   itemPackage    = Convert.ToString(parameters["Item"]);
            string   crystalList    = Convert.ToString(parameters["Crystal"]);
            string   sparePackage   = Convert.ToString(parameters["SparePackage"]);
            string   enchantPackage = Convert.ToString(parameters["EnchantPackage"]);

            int obtainNum = 0;

            if (parameters["ObtainNum"].Length > 0)
            {
                obtainNum = Convert.ToInt32(parameters["ObtainNum"]);
            }
            short energyNum = 0;

            if (parameters["EnergyNum"].Length > 0)
            {
                energyNum = Convert.ToInt16(parameters["EnergyNum"]);
            }
            int gameCoin = 0;

            if (parameters["GameCoin"].Length > 0)
            {
                gameCoin = Convert.ToInt32(parameters["GameCoin"]);
            }
            int gold = 0;

            if (parameters["Gold"].Length > 0)
            {
                gold = Convert.ToInt32(parameters["Gold"]);
            }
            int expNum = 0;

            if (parameters["ExpNum"].Length > 0)
            {
                expNum = Convert.ToInt32(parameters["ExpNum"]);
            }
            int vipLv = 0;

            if (parameters["VipLv"].Length > 0)
            {
                vipLv = Convert.ToInt32(parameters["VipLv"]);
            }
            int gainBlessing = 0;

            if (parameters["GainBlessing"].Length > 0)
            {
                gainBlessing = Convert.ToInt32(parameters["GainBlessing"]);
            }
            int honourNum = 0;

            if (parameters["HonourNum"].Length > 0)
            {
                honourNum = Convert.ToInt32(parameters["HonourNum"]);
            }
            string mailContent = Convert.ToString(parameters["MailContent"]);
            int    opUserID    = Convert.ToInt32(parameters["OpUserID"]);
            //var cacheSetUserItem = new GameDataCacheSet<UserItemPackage>();
            var cacheSetItemInfo = new ShareCacheStruct <ItemBaseInfo>();
            var itemArray        = itemPackage.Split(',');

            foreach (string str in UserList)
            {
                try
                {
                    int userID = str.Trim().ToInt();


                    var user = new GameDataCacheSet <GameUser>().FindKey(str);
                    if (user != null)
                    {
                        user.GiftGold  = MathUtils.Addition(user.GiftGold, gold);
                        user.ObtainNum = MathUtils.Addition(user.ObtainNum, obtainNum);
                        user.EnergyNum = MathUtils.Addition(user.EnergyNum, energyNum);
                        user.GameCoin  = MathUtils.Addition(user.GameCoin, gameCoin);
                        user.ExpNum    = MathUtils.Addition(user.ExpNum, expNum);
                        user.HonourNum = MathUtils.Addition(user.HonourNum, honourNum);
                    }


                    foreach (var item in itemArray)
                    {
                        if (item.Split('=').Length == 2)
                        {
                            var itemInfo = cacheSetItemInfo.FindKey(item.Split('=')[0]);
                            if (itemInfo != null)
                            {
                                UserItemHelper.AddUserItem(str, item.Split('=')[0].ToInt(), item.Split('=')[1].ToInt());
                            }
                        }
                    }
                    Guid          newGuid      = Guid.NewGuid();
                    UserTakePrize userPrizeLog = new UserTakePrize
                    {
                        ID             = newGuid.ToString(),
                        UserID         = userID,
                        ObtainNum      = obtainNum,
                        EnergyNum      = energyNum,
                        GameCoin       = gameCoin,
                        Gold           = gold,
                        ExpNum         = expNum,
                        VipLv          = vipLv,
                        GainBlessing   = gainBlessing,
                        ItemPackage    = itemPackage,
                        CrystalPackage = crystalList,
                        SparePackage   = sparePackage,
                        EnchantPackage = enchantPackage,
                        MailContent    = mailContent,
                        IsTasked       = false,
                        TaskDate       = MathUtils.SqlMinDate,
                        OpUserID       = opUserID,
                        CreateDate     = DateTime.Now,
                        HonourNum      = honourNum,
                        Items          = itemPackage,
                    };
                    var cacheSet = new ShareCacheStruct <UserTakePrize>();
                    cacheSet.Add(userPrizeLog);
                    cacheSet.Update();
                    PutCrystal(crystalList.Split(','), str);

                    // 发送系统信件
                    UserMail userMail = new UserMail(newGuid);
                    userMail.UserId   = userID;
                    userMail.MailType = (int)MailType.System;
                    userMail.Title    = LanguageManager.GetLang().St_SystemMailTitle;
                    userMail.Content  = mailContent;
                    userMail.SendDate = DateTime.Now;
                    TjxMailService mailService = new TjxMailService(user);
                    mailService.Send(userMail);
                }
                catch (Exception ex)
                {
                    new BaseLog().SaveLog(ex);
                }
            }
        }
        /// <summary>
        /// 获得奖励
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="prize"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static UserTakePrize GetUserTake(string userID, PrizeInfo prize, string content)
        {
            GameUser user = new PersonalCacheStruct <GameUser>().FindKey(userID);

            if (user == null)
            {
                return(null);
            }
            UserTakePrize userPrize = new UserTakePrize();

            userPrize.CreateDate     = DateTime.Now;
            userPrize.ID             = Guid.NewGuid().ToString();
            userPrize.UserID         = Convert.ToInt32(userID);
            userPrize.MailContent    = content;
            userPrize.IsTasked       = false;
            userPrize.TaskDate       = MathUtils.SqlMinDate;
            userPrize.ItemPackage    = string.Empty;
            userPrize.SparePackage   = string.Empty;
            userPrize.CrystalPackage = string.Empty;
            userPrize.EnchantPackage = string.Empty;
            userPrize.OpUserID       = 10000;
            string prizeContent = string.Empty;

            switch (prize.Type)
            {
            case RewardType.GameGoin:
                userPrize.GameCoin = prize.Num;
                prizeContent       = string.Format(LanguageManager.GetLang().St_GameCoin, prize.Num);
                break;

            case RewardType.Obtion:
                userPrize.ObtainNum = prize.Num;
                prizeContent        = string.Format(LanguageManager.GetLang().St_ObtionNum, prize.Num);
                break;

            case RewardType.ExpNum:
                userPrize.ExpNum = prize.Num;
                prizeContent     = string.Format(LanguageManager.GetLang().St_ExpNum, prize.Num);
                break;

            case RewardType.EnergyNum:
                userPrize.EnergyNum = prize.Num;
                prizeContent        = string.Format(LanguageManager.GetLang().St_EnergyNum, prize.Num);
                break;

            case RewardType.Experience:
                break;

            case RewardType.Gold:
                userPrize.Gold = prize.Num;
                prizeContent   = string.Format(LanguageManager.GetLang().St_GiftGoldNum, prize.Num);
                break;

            case RewardType.Item:
                userPrize.ItemPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(prize.ItemID);
                if (itemInfo != null)
                {
                    prizeContent = string.Format("{0}*{1}", itemInfo.ItemName, prize.Num);
                }
                break;

            case RewardType.CrystalId:

                userPrize.CrystalPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(prize.ItemID);
                if (crystal != null)
                {
                    prizeContent = string.Format("{0}*{1}", crystal.CrystalName, prize.Num);
                }
                break;

            case RewardType.Spare:
                userPrize.SparePackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                SparePartInfo spare = new ShareCacheStruct <SparePartInfo>().FindKey(prize.ItemID);
                if (spare != null)
                {
                    prizeContent = string.Format("{0}*{1}", spare.Name, prize.Num);
                }
                break;

            case RewardType.Enchant:
                userPrize.EnchantPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(prize.ItemID);
                if (enchantInfo != null)
                {
                    prizeContent = string.Format("{0}*{1}", enchantInfo.EnchantName, prize.Num);
                }
                break;

            default:
                break;
            }
            if (!string.IsNullOrEmpty(prizeContent))
            {
                userPrize.MailContent = string.Format(content, user.NickName, prizeContent);
            }
            return(userPrize);
        }