protected override void AttachChildControls() { int num = this.Page.Request["RecordId"].ToInt(0); if (num <= 0) { base.GotoResourceNotFound("记录不存在!"); } else { UserAwardRecordsInfo userAwardRecordsInfo = ActivityHelper.GetUserAwardRecordsInfo(num); if (userAwardRecordsInfo == null) { base.GotoResourceNotFound("记录不存在!"); } else if (userAwardRecordsInfo.PrizeType != 3) { base.GotoResourceNotFound("记录不存在!"); } else { this.litMarketPrice = (Literal)this.FindControl("litMarketPrice"); this.litDescript = (Literal)this.FindControl("litDescript"); this.imgPrize = (Image)this.FindControl("imgPrize"); this.goBuy = (HtmlAnchor)this.FindControl("goBuy"); this.litName = (Literal)this.FindControl("litName"); if (userAwardRecordsInfo.Status == 2) { this.goBuy.Visible = false; } else { this.goBuy.HRef = "SubmmitOrder.aspx?from=prize&RecordId=" + num; } GiftInfo giftDetails = GiftHelper.GetGiftDetails(userAwardRecordsInfo.PrizeValue); if (giftDetails != null) { this.litName.Text = giftDetails.Name; if (giftDetails.MarketPrice.HasValue) { this.litMarketPrice.Text = "市场参考价:" + giftDetails.MarketPrice.Value.F2ToString("f2"); } else { this.litMarketPrice.Visible = false; } this.litDescript.Text = giftDetails.LongDescription; this.imgPrize.ImageUrl = giftDetails.ImageUrl; PageTitle.AddSiteNameTitle("奖品详情"); } else { base.GotoResourceNotFound("礼品已被删除!"); } } } }
protected override void OnInit(EventArgs e) { string errorMsg = ""; this.from = this.Page.Request.QueryString["from"].ToNullString().ToLower(); this.productSku = this.Page.Request.QueryString["productSku"].ToNullString(); this.buyAmount = this.Page.Request.QueryString["buyAmount"].ToInt(0); this.shippingModeId = this.Page.Request.QueryString["ShippingModeId"].ToInt(0); this.storeId = this.Page.Request.QueryString["StoreId"].ToInt(0); this.paymentModeId = this.Page.Request.QueryString["paymentModeId"].ToInt(0); this.deliveryTime = this.Page.Request.QueryString["deliveryTime"].ToNullString(); this.hasSupplierProduct = this.Page.Request.QueryString["hasSupplierProduct"].ToInt(0); if (this.deliveryTime != "任意时间" && this.deliveryTime != "工作日" && this.deliveryTime != "节假日") { this.deliveryTime = "任意时间"; } if (this.shippingModeId != 0 && this.shippingModeId != -2) { this.shippingModeId = 0; } if (this.from == "groupbuy") { this.isGroupBuy = true; } else if (this.from == "countdown") { this.isCountDown = true; } else if (this.from == "signbuy") { this.isSignBuy = true; } else if (this.from == "combinationbuy") { this.combinaid = this.Page.Request.QueryString["combinaid"].ToInt(0); } else if (this.from == "presale") { this.ispresale = true; this.presaleid = this.Page.Request.QueryString["presaleid"].ToInt(0); } else if (this.from == "fightgroup") { this.isFightGroup = true; } else if (this.from == "prize") { this.RecordId = this.Page.Request.QueryString["RecordId"].ToInt(0); } else { HttpCookie httpCookie = HiContext.Current.Context.Request.Cookies["ckids"]; if (httpCookie != null && !string.IsNullOrEmpty(httpCookie.Value)) { this.productSku = Globals.UrlDecode(httpCookie.Value); } } if (this.RecordId > 0) { UserAwardRecordsInfo userAwardRecordsInfo = ActivityHelper.GetUserAwardRecordsInfo(this.RecordId); if (userAwardRecordsInfo == null) { base.GotoResourceNotFound("购物车中没有任何商品"); return; } int prizeValue = userAwardRecordsInfo.PrizeValue; this.shoppingCart = ShoppingCartProcessor.GetPrizeShoppingCart(prizeValue); } else { this.shoppingCart = ShoppingCartProcessor.GetShoppingCart(this.from, this.productSku, this.buyAmount, this.combinaid, true, -1, 0); } if (this.shoppingCart == null) { base.GotoResourceNotFound("购物车中没有任何商品"); } else if (this.ispresale && !ProductPreSaleHelper.HasProductPreSaleInfo(this.productSku, this.presaleid)) { base.GotoResourceNotFound("商品不在预售活动中"); } else { if (this.isGroupBuy) { GroupBuyInfo productGroupBuyInfo = TradeHelper.GetProductGroupBuyInfo(this.shoppingCart.LineItems[0].ProductId, this.buyAmount, out errorMsg); if (productGroupBuyInfo == null) { base.GotoResourceNotFound(errorMsg); return; } } if (this.SkinName == null) { this.SkinName = "Skin-OrderShippingPaymentSet.html"; } base.OnInit(e); } }
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(); } } } }