Example #1
0
        public static int AddApplication(int publishmentSystemID, int actID, string uniqueID, string realName, string mobile, string email, string address)
        {
            try
            {
                var couponInfoList = DataProviderWX.CouponDAO.GetCouponInfoList(publishmentSystemID, actID);

                var snID     = 0;
                var couponID = 0;
                var cookieSN = WeiXinManager.GetCookieSN();
                snID = DataProviderWX.CouponSNDAO.Hold(publishmentSystemID, actID, cookieSN);

                var newCouponSNInfo = DataProviderWX.CouponSNDAO.GetSNInfo(snID);
                couponID = newCouponSNInfo.CouponID;

                var couponSNInfo = new CouponSNInfo();

                couponSNInfo.PublishmentSystemID = publishmentSystemID;
                couponSNInfo.CookieSN            = cookieSN;
                couponSNInfo.CouponID            = couponID;
                couponSNInfo.ID           = snID;
                couponSNInfo.HoldDate     = DateTime.Now;
                couponSNInfo.HoldRealName = realName;
                couponSNInfo.HoldMobile   = mobile;
                couponSNInfo.HoldEmail    = email;
                couponSNInfo.HoldAddress  = address;
                couponSNInfo.CashDate     = DateTime.Now;
                couponSNInfo.Status       = ECouponStatusUtils.GetValue(ECouponStatus.Hold);
                couponSNInfo.WXOpenID     = uniqueID;

                if (newCouponSNInfo.Status == ECouponStatusUtils.GetValue(ECouponStatus.Cash))
                {
                    couponSNInfo.Status = ECouponStatusUtils.GetValue(ECouponStatus.Cash);
                }
                DataProviderWX.CouponSNDAO.Update(couponSNInfo);

                return(newCouponSNInfo.ID);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Example #2
0
        public static bool Lottery(LotteryInfo lotteryInfo, List <LotteryAwardInfo> awardInfoList, string cookieSN, string wxOpenID, out LotteryAwardInfo awardInfo, out LotteryWinnerInfo winnerInfo, string userName, out string errorMessage)
        {
            errorMessage = string.Empty;

            awardInfo  = null;
            winnerInfo = DataProviderWx.LotteryWinnerDao.GetWinnerInfo(lotteryInfo.PublishmentSystemId, lotteryInfo.Id, cookieSN, wxOpenID, userName);
            if (winnerInfo != null)
            {
                awardInfo = GetAwardInfo(awardInfoList, winnerInfo.AwardId);
            }
            else
            {
                var isMaxCount      = false;
                var isMaxDailyCount = false;

                DataProviderWx.LotteryLogDao.AddCount(lotteryInfo.PublishmentSystemId, lotteryInfo.Id, cookieSN, wxOpenID, userName, lotteryInfo.AwardMaxCount, lotteryInfo.AwardMaxDailyCount, out isMaxCount, out isMaxDailyCount);

                if (isMaxCount)
                {
                    errorMessage = $"对不起,每人最多允许抽奖{lotteryInfo.AwardMaxCount}次";
                    return(false);
                }
                else if (isMaxDailyCount)
                {
                    errorMessage = $"对不起,每人每天最多允许抽奖{lotteryInfo.AwardMaxDailyCount}次";
                    return(false);
                }
                else
                {
                    if (awardInfoList != null && awardInfoList.Count > 0)
                    {
                        var idWithProbabilityDictionary = new Dictionary <int, decimal>();
                        foreach (var lotteryAwardInfo in awardInfoList)
                        {
                            idWithProbabilityDictionary.Add(lotteryAwardInfo.Id, lotteryAwardInfo.Probability);
                        }

                        var awardID = WeiXinManager.Lottery(idWithProbabilityDictionary);
                        if (awardID > 0)
                        {
                            var lotteryAwardInfo = GetAwardInfo(awardInfoList, awardID);

                            if (lotteryAwardInfo != null && lotteryAwardInfo.TotalNum > 0)
                            {
                                var wonNum = DataProviderWx.LotteryWinnerDao.GetTotalNum(awardID);
                                if (lotteryAwardInfo.TotalNum > wonNum)
                                {
                                    awardInfo  = lotteryAwardInfo;
                                    winnerInfo = new LotteryWinnerInfo {
                                        PublishmentSystemId = lotteryInfo.PublishmentSystemId, LotteryType = lotteryInfo.LotteryType, LotteryId = lotteryInfo.Id, AwardId = awardID, Status = EWinStatusUtils.GetValue(EWinStatus.Won), CookieSn = cookieSN, WxOpenId = wxOpenID, UserName = userName, AddDate = DateTime.Now
                                    };
                                    winnerInfo.Id = DataProviderWx.LotteryWinnerDao.Insert(winnerInfo);

                                    DataProviderWx.LotteryAwardDao.UpdateWonNum(awardID);

                                    DataProviderWx.LotteryDao.AddUserCount(winnerInfo.LotteryId);
                                }
                            }
                        }
                    }
                }
            }

            return(true);
        }