Ejemplo n.º 1
0
        public ActivityAwardItemInfo GetNewItemInfo(ActivityAwardItemInfo model)
        {
            ActivityAwardItemInfo awardItemInfoById = ActivityHelper.GetAwardItemInfoById(model.AwardId);

            if (model.PrizeType != awardItemInfoById.PrizeType || model.PrizeValue != awardItemInfoById.PrizeValue)
            {
                awardItemInfoById.WinningNum = 0;
            }
            awardItemInfoById.AwardGrade = model.AwardGrade;
            awardItemInfoById.PrizeType  = model.PrizeType;
            awardItemInfoById.HitRate    = model.HitRate;
            awardItemInfoById.AwardNum   = model.AwardNum;
            awardItemInfoById.PrizeValue = model.PrizeValue;
            return(awardItemInfoById);
        }
Ejemplo n.º 2
0
        protected void btnAddActivity_Click(object sender, EventArgs e)
        {
            string sharePic = string.Empty;

            if (this.hidUploadImages.Value.Trim().Length > 0)
            {
                try
                {
                    sharePic = this.UploadImage();
                }
                catch
                {
                    this.ShowMsg("图片上传失败,您选择的不是图片类型的文件,或者网站的虚拟目录没有写入文件的权限", false);
                    return;
                }
            }
            if (!this.calendarEndDate.SelectedDate.HasValue)
            {
                this.ShowMsg("请选择活动结束时间", false);
            }
            else
            {
                DateTime value               = this.calendarEndDate.SelectedDate.Value;
                DateTime?t                   = this.calendarStartDate.Text.ToDateTime();
                int      freeTimes           = default(int);
                int      consumptionIntegral = default(int);
                if ((DateTime?)value < t)
                {
                    this.ShowMsg("活动开始时间不能晚于活动结束时间", false);
                }
                else if (!int.TryParse(this.txtMaxNum.Text, out freeTimes) || freeTimes.ToString() != this.txtMaxNum.Text)
                {
                    this.ShowMsg("可抽奖次数必须是整数", false);
                }
                else if (!int.TryParse(this.txtUsePoints.Text, out consumptionIntegral))
                {
                    this.ShowMsg("每次参与消耗的积分不能为空,且是整数", false);
                }
                else
                {
                    ActivityInfo activityInfo = ActivityHelper.GetActivityInfo(this.activityid);
                    activityInfo.ActivityName = Globals.StripHtmlXmlTags(this.txtActiveName.Text);
                    activityInfo.Description  = this.txtdesc.Text;
                    DateTime value2 = this.calendarEndDate.SelectedDate.Value;
                    if (value2.Second == 0)
                    {
                        value2.AddSeconds(59.0);
                    }
                    activityInfo.EndDate             = value2;
                    activityInfo.ShareDetail         = this.txtKeyword.Text;
                    activityInfo.SharePic            = sharePic;
                    activityInfo.FreeTimes           = freeTimes;
                    activityInfo.ConsumptionIntegral = consumptionIntegral;
                    Database database = DatabaseFactory.CreateDatabase();
                    using (DbConnection dbConnection = database.CreateConnection())
                    {
                        dbConnection.Open();
                        DbTransaction dbTransaction = dbConnection.BeginTransaction();
                        try
                        {
                            if (ActivityHelper.UpdateActivityInfo(activityInfo, dbTransaction))
                            {
                                string value3 = this.hidJson.Value;
                                if (string.IsNullOrEmpty(value3))
                                {
                                    dbTransaction.Rollback();
                                    this.ShowMsg("获得奖项不能为空!", false);
                                }
                                else
                                {
                                    decimal d    = default(decimal);
                                    bool    flag = true;
                                    List <ActivityAwardItemInfo> activityItemList = ActivityHelper.GetActivityItemList(activityInfo.ActivityId);
                                    List <ActivityAwardItemInfo> list             = JsonHelper.ParseFormJson <List <ActivityAwardItemInfo> >(value3);
                                    int[]  array = new int[activityItemList.Count];
                                    int    num   = 0;
                                    string text  = "";
                                    foreach (ActivityAwardItemInfo item in list)
                                    {
                                        if (item.AwardId > 0)
                                        {
                                            text = text + item.AwardId + ",";
                                        }
                                    }
                                    text = text.Remove(text.Length - 1);
                                    ActivityHelper.DeleteEidAwardItem(this.activityid, text, dbTransaction);
                                    foreach (ActivityAwardItemInfo item2 in activityItemList)
                                    {
                                        array[num] = item2.AwardId;
                                        num++;
                                    }
                                    if (list.Any())
                                    {
                                        foreach (ActivityAwardItemInfo item3 in list)
                                        {
                                            if (item3.PrizeType == 2)
                                            {
                                                int couponSurplus = CouponHelper.GetCouponSurplus(item3.PrizeValue);
                                                if (item3.AwardNum > couponSurplus)
                                                {
                                                    dbTransaction.Rollback();
                                                    this.ShowMsg("优惠券奖项数量不能大于总数!", false);
                                                    return;
                                                }
                                            }
                                            d += item3.HitRate;
                                            item3.ActivityId = this.activityid;
                                            bool flag2 = false;
                                            if (array.Contains(item3.AwardId))
                                            {
                                                if (item3.AwardId > 0)
                                                {
                                                    ActivityAwardItemInfo newItemInfo = this.GetNewItemInfo(item3);
                                                    if (!ActivityHelper.UpdateActivityAwardItemInfo(newItemInfo, dbTransaction))
                                                    {
                                                        dbTransaction.Rollback();
                                                        this.ShowMsg("编辑失败!", false);
                                                        return;
                                                    }
                                                }
                                                else if (ActivityHelper.AddActivityAwardItemInfo(item3, dbTransaction) <= 0)
                                                {
                                                    dbTransaction.Rollback();
                                                    this.ShowMsg("编辑失败!", false);
                                                    return;
                                                }
                                                continue;
                                            }
                                            if (item3.AwardId > 0)
                                            {
                                                flag = ActivityHelper.DeleteActivityAwardItemByActivityId(item3.AwardId, dbTransaction);
                                                continue;
                                            }
                                            int num2 = ActivityHelper.AddActivityAwardItemInfo(item3, dbTransaction);
                                            if (num2 > 0)
                                            {
                                                flag = true;
                                                continue;
                                            }
                                            dbTransaction.Rollback();
                                            this.ShowMsg("编辑失败!", false);
                                            return;
                                        }
                                    }
                                    if (d > 100m)
                                    {
                                        dbTransaction.Rollback();
                                        this.ShowMsg("奖项概率总和不能大于100%!", false);
                                    }
                                    else if (flag)
                                    {
                                        dbTransaction.Commit();
                                        this.ShowMsg("编辑成功!", true);
                                        base.Response.Redirect("NewLotteryActivity.aspx?type=" + this.type, true);
                                        base.Response.End();
                                    }
                                    else
                                    {
                                        dbTransaction.Rollback();
                                        this.ShowMsg("编辑失败!", false);
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            dbTransaction.Rollback();
                            Globals.WriteLog("ActivityLog.txt", "Methed:Edit , Id:" + activityInfo.ActivityId + " , Msg:" + ex.Message);
                            this.ShowMsg(ex.Message, false);
                        }
                        finally
                        {
                            dbConnection.Close();
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public static bool UpdateActivityAwardItemInfo(ActivityAwardItemInfo model, DbTransaction dbTran)
 {
     return(new ActivityDao().Update(model, dbTran));
 }
Ejemplo n.º 4
0
 public static bool ManageWinningResult(int UserId, ActivityInfo Info, int AwardGrade, ref int FreeTimes)
 {
     lock (ActivityHelper.oWinning)
     {
         Database    database    = DatabaseFactory.CreateDatabase();
         ActivityDao activityDao = new ActivityDao();
         using (DbConnection dbConnection = database.CreateConnection())
         {
             dbConnection.Open();
             DbTransaction dbTransaction = dbConnection.BeginTransaction();
             try
             {
                 bool flag  = false;
                 bool flag2 = false;
                 ActivityJoinStatisticsInfo activityJoinStatisticsInfo = activityDao.GetCurrUserActivityStatisticsInfo(UserId, Info.ActivityId, dbTransaction);
                 MemberInfo memberInfo = new MemberDao().Get <MemberInfo>(UserId);
                 if (activityJoinStatisticsInfo != null)
                 {
                     if (Info.ResetType == 2)
                     {
                         DateTime lastJoinDate = activityJoinStatisticsInfo.LastJoinDate;
                         if (DateTime.Now.Date == lastJoinDate.Date)
                         {
                             if (activityJoinStatisticsInfo.FreeNum < Info.FreeTimes)
                             {
                                 flag = true;
                                 activityJoinStatisticsInfo.FreeNum++;
                                 FreeTimes = Info.FreeTimes - activityJoinStatisticsInfo.FreeNum;
                             }
                             else
                             {
                                 activityJoinStatisticsInfo.IntegralTotal += Info.ConsumptionIntegral;
                                 activityJoinStatisticsInfo.IntegralNum++;
                                 FreeTimes = 0;
                             }
                         }
                         else
                         {
                             flag = true;
                             activityJoinStatisticsInfo.FreeNum = 1;
                             FreeTimes = Info.FreeTimes - 1;
                         }
                     }
                     else if (activityJoinStatisticsInfo.FreeNum < Info.FreeTimes)
                     {
                         flag = true;
                         activityJoinStatisticsInfo.FreeNum++;
                         FreeTimes = Info.FreeTimes - activityJoinStatisticsInfo.FreeNum;
                     }
                     else
                     {
                         activityJoinStatisticsInfo.IntegralTotal += Info.ConsumptionIntegral;
                         activityJoinStatisticsInfo.IntegralNum++;
                         FreeTimes = 0;
                     }
                 }
                 else
                 {
                     flag2 = true;
                     activityJoinStatisticsInfo            = new ActivityJoinStatisticsInfo();
                     activityJoinStatisticsInfo.ActivityId = Info.ActivityId;
                     activityJoinStatisticsInfo.UserId     = UserId;
                     if (Info.FreeTimes > 0)
                     {
                         flag = true;
                         activityJoinStatisticsInfo.FreeNum       = 1;
                         activityJoinStatisticsInfo.IntegralTotal = 0;
                         activityJoinStatisticsInfo.IntegralNum   = 0;
                         FreeTimes = Info.FreeTimes - 1;
                     }
                     else
                     {
                         activityJoinStatisticsInfo.IntegralTotal = Info.ConsumptionIntegral;
                         activityJoinStatisticsInfo.IntegralNum   = 1;
                         activityJoinStatisticsInfo.FreeNum       = 0;
                         FreeTimes = 0;
                     }
                 }
                 activityJoinStatisticsInfo.JoinNum++;
                 activityJoinStatisticsInfo.LastJoinDate = DateTime.Now;
                 bool                  flag3                 = false;
                 CouponInfo            couponInfo            = null;
                 GiftInfo              giftInfo              = null;
                 ActivityAwardItemInfo activityAwardItemInfo = null;
                 if (AwardGrade > 0)
                 {
                     activityAwardItemInfo = activityDao.GetActivityItem(Info.ActivityId, AwardGrade, dbTransaction);
                     if (activityAwardItemInfo.WinningNum < activityAwardItemInfo.AwardNum)
                     {
                         if (activityAwardItemInfo.PrizeType == 2)
                         {
                             couponInfo = new CouponDao().Get <CouponInfo>(activityAwardItemInfo.PrizeValue);
                             if (couponInfo != null)
                             {
                                 int couponSurplus = new CouponDao().GetCouponSurplus(activityAwardItemInfo.PrizeValue);
                                 if (couponSurplus > 0 && couponInfo.ClosingTime > DateTime.Now)
                                 {
                                     flag3 = true;
                                 }
                             }
                         }
                         else if (activityAwardItemInfo.PrizeType == 3)
                         {
                             giftInfo = new GiftDao().Get <GiftInfo>(activityAwardItemInfo.PrizeValue);
                             if (giftInfo != null)
                             {
                                 flag3 = true;
                             }
                         }
                         else
                         {
                             flag3 = true;
                         }
                     }
                 }
                 else
                 {
                     flag3 = false;
                 }
                 if (!flag)
                 {
                     PointDetailInfo pointDetailInfo = new PointDetailInfo();
                     pointDetailInfo.Increased    = 0;
                     pointDetailInfo.OrderId      = "";
                     pointDetailInfo.Points       = memberInfo.Points - Info.ConsumptionIntegral;
                     pointDetailInfo.Reduced      = Info.ConsumptionIntegral;
                     pointDetailInfo.Remark       = "抽奖消耗积分";
                     pointDetailInfo.SignInSource = 0;
                     pointDetailInfo.TradeDate    = DateTime.Now;
                     if (Info.ActivityType == 1)
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinRotaryTable;
                     }
                     else if (Info.ActivityType == 3)
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinSmashingGoldenEgg;
                     }
                     else
                     {
                         pointDetailInfo.TradeType = PointTradeType.JoinScratchCard;
                     }
                     pointDetailInfo.UserId = UserId;
                     if (new PointDetailDao().Add(pointDetailInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 if (!flag3)
                 {
                     if (flag2)
                     {
                         if (activityDao.Add(activityJoinStatisticsInfo, dbTransaction) <= 0)
                         {
                             dbTransaction.Rollback();
                         }
                     }
                     else if (!activityDao.UpdateActivityStatisticsInfo(activityJoinStatisticsInfo, dbTransaction))
                     {
                         dbTransaction.Rollback();
                     }
                     dbTransaction.Commit();
                     return(false);
                 }
                 activityJoinStatisticsInfo.WinningNum++;
                 if (flag2)
                 {
                     if (activityDao.Add(activityJoinStatisticsInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                     }
                 }
                 else if (!activityDao.UpdateActivityStatisticsInfo(activityJoinStatisticsInfo, dbTransaction))
                 {
                     dbTransaction.Rollback();
                 }
                 activityAwardItemInfo.WinningNum++;
                 if (!activityDao.Update(activityAwardItemInfo, dbTransaction))
                 {
                     dbTransaction.Rollback();
                     return(false);
                 }
                 UserAwardRecordsInfo userAwardRecordsInfo = new UserAwardRecordsInfo();
                 userAwardRecordsInfo.ActivityId = Info.ActivityId;
                 if (activityAwardItemInfo.PrizeType == 2)
                 {
                     userAwardRecordsInfo.AwardName = couponInfo.CouponName;
                     userAwardRecordsInfo.AwardDate = DateTime.Now;
                     userAwardRecordsInfo.Status    = 2;
                     CouponItemInfo couponItemInfo = new CouponItemInfo();
                     couponItemInfo.UserId             = UserId;
                     couponItemInfo.UserName           = memberInfo.UserName;
                     couponItemInfo.CanUseProducts     = couponInfo.CanUseProducts;
                     couponItemInfo.ClosingTime        = couponInfo.ClosingTime;
                     couponItemInfo.CouponId           = couponInfo.CouponId;
                     couponItemInfo.CouponName         = couponInfo.CouponName;
                     couponItemInfo.OrderUseLimit      = couponInfo.OrderUseLimit;
                     couponItemInfo.Price              = couponInfo.Price;
                     couponItemInfo.StartTime          = couponInfo.StartTime;
                     couponItemInfo.UseWithGroup       = couponInfo.UseWithGroup;
                     couponItemInfo.UseWithPanicBuying = couponInfo.UseWithPanicBuying;
                     couponItemInfo.UseWithFireGroup   = couponInfo.UseWithFireGroup;
                     couponItemInfo.GetDate            = DateTime.Now;
                     couponItemInfo.ClaimCode          = Guid.NewGuid().ToString();
                     if (new CouponDao().Add(couponItemInfo, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 else if (activityAwardItemInfo.PrizeType == 3)
                 {
                     userAwardRecordsInfo.AwardDate = null;
                     userAwardRecordsInfo.AwardName = giftInfo.Name;
                     userAwardRecordsInfo.AwardPic  = giftInfo.ThumbnailUrl160;
                     userAwardRecordsInfo.Status    = 1;
                 }
                 else
                 {
                     userAwardRecordsInfo.AwardName = activityAwardItemInfo.PrizeValue + "积分";
                     userAwardRecordsInfo.AwardDate = DateTime.Now;
                     userAwardRecordsInfo.Status    = 2;
                     PointDetailInfo pointDetailInfo2 = new PointDetailInfo();
                     pointDetailInfo2.Increased = activityAwardItemInfo.PrizeValue;
                     pointDetailInfo2.OrderId   = "";
                     if (flag)
                     {
                         pointDetailInfo2.Points = memberInfo.Points + activityAwardItemInfo.PrizeValue;
                     }
                     else
                     {
                         pointDetailInfo2.Points = memberInfo.Points - Info.ConsumptionIntegral + activityAwardItemInfo.PrizeValue;
                     }
                     pointDetailInfo2.Reduced      = 0;
                     pointDetailInfo2.Remark       = "抽奖获得积分";
                     pointDetailInfo2.SignInSource = 0;
                     pointDetailInfo2.TradeDate    = DateTime.Now;
                     if (Info.ActivityType == 1)
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinRotaryTable;
                     }
                     else if (Info.ActivityType == 3)
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinSmashingGoldenEgg;
                     }
                     else
                     {
                         pointDetailInfo2.TradeType = PointTradeType.JoinScratchCard;
                     }
                     pointDetailInfo2.UserId = UserId;
                     if (new PointDetailDao().Add(pointDetailInfo2, dbTransaction) <= 0)
                     {
                         dbTransaction.Rollback();
                         return(false);
                     }
                 }
                 userAwardRecordsInfo.AwardGrade = AwardGrade;
                 userAwardRecordsInfo.AwardId    = activityAwardItemInfo.AwardId;
                 userAwardRecordsInfo.CreateDate = DateTime.Now;
                 userAwardRecordsInfo.PrizeType  = activityAwardItemInfo.PrizeType;
                 userAwardRecordsInfo.PrizeValue = activityAwardItemInfo.PrizeValue;
                 userAwardRecordsInfo.UserId     = UserId;
                 if (activityDao.Add(userAwardRecordsInfo, dbTransaction) <= 0)
                 {
                     dbTransaction.Rollback();
                     return(false);
                 }
                 dbTransaction.Commit();
                 return(true);
             }
             catch (Exception ex)
             {
                 dbTransaction.Rollback();
                 Globals.WriteLog("ActivityLog.txt", "Methed:ManageWinningResult , Id:" + Info.ActivityId + " , Msg:" + ex.Message);
                 return(false);
             }
             finally
             {
                 dbConnection.Close();
             }
         }
     }
 }
Ejemplo n.º 5
0
 public static int AddActivityAwardItemInfo(ActivityAwardItemInfo info, DbTransaction dbTran)
 {
     return((int)new ActivityDao().Add(info, dbTran));
 }