Пример #1
0
 public int Add(int aid, string username, string tel, string openid, string jxName, string jpName, string sn)
 {
     MxWeiXinPF.Model.wx_dzpAwardUser auser = new Model.wx_dzpAwardUser();
     auser.actId      = aid;
     auser.uName      = username;
     auser.uTel       = tel;
     auser.openid     = openid;
     auser.jxName     = jxName;
     auser.jpName     = jpName;
     auser.sn         = sn;
     auser.createDate = DateTime.Now;
     return(this.Add(auser));
 }
Пример #2
0
        private void BindData()
        {
            dzpAction = actBll.GetModel(aid);
            IList <Model.wx_dzpAwardItem> itemlist = itemBll.GetModelList("actId=" + aid);

            if (dzpAction == null || itemlist == null || itemlist.Count <= 0)
            {
                ErrLevel  = 1;
                ErrorInfo = "未获得到数据";
                return;
            }
            this.Title = dzpAction.actName;

            if (dzpAction.endDate <= DateTime.Now)
            {   //说明活动已经结束
                ErrLevel  = 101;
                ErrorInfo = "活动已结束";
                return;
            }

            StringBuilder sb = new StringBuilder("");

            Model.wx_dzpAwardItem item = new Model.wx_dzpAwardItem();
            int ttJpNum = 0;

            shuzu = "[";
            for (int i = 0; i < itemlist.Count; i++)
            {
                item = itemlist[i];
                sb.Append("<p>" + item.jxName + ":" + item.jpName + "  数量:" + item.jpNum + "</p>");
                ttJpNum += item.jpRealNum.Value;
                picIndex++;
                if (i < (itemlist.Count - 1))
                {
                    shuzu += item.jiaodu_min + ",";
                }
                else
                {
                    shuzu += item.jiaodu_min;
                }
            }
            shuzu              += "]";
            litJiangXing.Text   = sb.ToString();
            litRemark.Text      = dzpAction.brief;
            litContentInfo.Text = dzpAction.contractInfo;

            littotTimes.Text  = dzpAction.personMaxTimes == null ? "0" : dzpAction.personMaxTimes.Value.ToString();
            litdaysTimes.Text = dzpAction.dayMaxTimes == null ? "0" : dzpAction.dayMaxTimes.Value.ToString();
            if (dzpAction.djPwd.Trim().Length > 0)
            {
                litPwd.Text = "  <p>  <input name=\"\" class=\"px\" id=\"parssword\" type=\"password\" value=\"\" placeholder=\"商家输入兑奖密码\"></p>";
            }
            if (dzpAction.beginDate > DateTime.Now)
            {
                hidStatus.Value = "-2";
                ErrorInfo       = hidErrInfo.Value = "活动尚未开始";
            }
            int hasCjTimes = utbll.getCJCiShu(aid, openid);//返回该用户的抽奖次数

            this.litHasUsedTimes.Text = hasCjTimes.ToString();

            int dayMaxTimes = dzpAction.dayMaxTimes == null ? 0 : dzpAction.dayMaxTimes.Value;
            int perMaxTimes = dzpAction.personMaxTimes == null ? 0 : dzpAction.personMaxTimes.Value;

            //判断是否中奖了

            Model.wx_dzpAwardUser award = ubll.getZJinfoByOpenid(aid, openid);
            if (award != null && award.id > 0)
            {     //您中奖了
                if (award.uTel != null && award.uTel.ToString().Trim() != "")
                { //已经中奖,并且提交了
                    litJp.Text  = "[" + award.jxName + "] " + award.jpName;
                    litSNM.Text = award.sn;
                    isZhJing    = true;
                }
                else
                { //已经中奖,但是未提交
                    hidStatus.Value  = "100";
                    litzjlJP.Text    = "[" + award.jxName + "] " + award.jpName;
                    litzjlSN.Text    = award.sn;
                    hidAwardId.Value = award.id.ToString();

                    litJp.Text  = "[" + award.jxName + "] " + award.jpName;
                    litSNM.Text = award.sn;
                }
            }
            else
            {
                //判断每人最大抽奖次数,是否超过了
                if (hasCjTimes >= dzpAction.personMaxTimes)
                {
                    hidStatus.Value  = "2";
                    litOtherTip.Text = "<p class='red'>您已经抽了" + hasCjTimes + "次了。</p>";
                }
                if (isTodayOverSum(dayMaxTimes))
                {
                    hidStatus.Value  = "2";
                    litOtherTip.Text = "<p class='red'>每人每天只有" + dayMaxTimes.ToString() + "次抽奖机会,您已经使用完了。</p>";
                }
            }
        }
Пример #3
0
        //public CouponDTO GetCoupon(string openId, Guid couponUsageId)
        //{
        //    CouponDTO result = null;

        //    if (!string.IsNullOrEmpty(openId))
        //    {
        //        var coupon = _repository.GetCouponByUser(couponUsageId, openId);
        //        if (coupon != null)
        //        {
        //            result = TransformCoupon(coupon);
        //        }
        //    }

        //    return result;
        //}



        /// <summary>
        /// 获取随机优惠券
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="aid"></param>
        /// <param name="wid"></param>
        /// <returns></returns>
        public CouponPrizeDTO GetRandomCoupon(string openid, int aid, int wid)
        {
            CouponPrizeDTO result = null;

            //抽奖
            #region 判断活动

            if (aid == 0 || wid == 0 || openid.Trim() == "")
            {
                throw new JsonException("参数错误!", "system");
            }
            var dzpAction = _actBll.GetModel(aid);
            if (dzpAction == null)
            {
                throw new JsonException("参数错误!", "system");
            }

            if (dzpAction.endDate <= DateTime.Now)
            {
                throw new JsonException("活动已结束", "end");
            }
            else if (dzpAction.beginDate > DateTime.Now)
            {
                throw new JsonException("活动未开始", "nostart");
            }



            int dayMaxTimes = dzpAction.dayMaxTimes ?? 0;
            //int perMaxTimes = dzpAction.personMaxTimes ?? 0;
            //判断每人最大抽奖次数,是否超过了
            if (personCJTimes(openid, aid) >= dzpAction.personMaxTimes)
            {
                throw new JsonException("您已抽过奖了,欢迎下次再来!", "notimes");
            }
            if (isTodayOverSum(aid, openid, dayMaxTimes))
            {
                throw new JsonException("每人每天只有" + dayMaxTimes.ToString() + "次抽奖机会。", "notimes");
            }
            Model.wx_dzpAwardUser award = _ubll.getZJinfoByOpenid(aid, openid);
            if (award != null)
            {
                throw new JsonException("您中奖了,欢迎下次再来!", "notimes");
            }


            #endregion

            //#region 保存用户信息

            //if (wxUser != null)
            //{
            //    //保存微信用户信息
            //    var user = new UserInfoEntity()
            //    {
            //        openid = wxUser.openid,
            //        // groupid = wxUser.groupid,
            //        headimgurl = wxUser.headimgurl,
            //        // language = wxUser.language,
            //        province = wxUser.province,
            //        // remark = wxUser.remark,
            //        // subscribe = wxUser.subscribe,
            //        //  subscribe_time = wxUser.subscribe_time,
            //        nickname = wxUser.nickname,
            //        sex = wxUser.sex,
            //        city = wxUser.country,
            //        country = wxUser.country
            //    };
            //    user.SaveUser();
            //}

            //#endregion

            #region 计算中奖信息

            /// 处理是否中奖
            /// hidStatus 状态为-1:不能抽奖,直接跳转到end.aspx页面;
            /// 0:抽奖次数超过设置的最高次数;
            /// 1:还可以继续抽奖;
            /// 2:中奖了;

            List <Model.wx_dzpAwardItem> itemlist = _itemBll.GetModelList("actId=" + aid);//该活动的所有奖项信息
            int ttJpNum = 0;
            for (int i = 0; i < itemlist.Count; i++)
            {
                ttJpNum += itemlist[i].jpRealNum.Value;
            }


            IList <Model.wx_dzpAwardUser> auserlist = _ubll.getHasZJList(aid);//已经中奖的人列表
            int ZhongJiangNum = 0;
            if (auserlist != null)
            {
                ZhongJiangNum = auserlist.Count; //已经中奖的人数
            }

            int syZjNum = ttJpNum - ZhongJiangNum; //剩余的奖品数量
            if (syZjNum <= 0)
            {
                //说明已经没有奖品了
                throw new JsonException(dzpAction.cfcjhf, "nomore");
            }
            dzpAction.personNum      = MyCommFun.Obj2Int(dzpAction.personNum, 1);
            dzpAction.personMaxTimes = MyCommFun.Obj2Int(dzpAction.personMaxTimes, 1);
            int fenmo = dzpAction.personNum.Value * dzpAction.personMaxTimes.Value;

            Random rd     = new Random((int)DateTime.Now.Ticks);
            int    radNum = rd.Next(0, fenmo);//从0到fenmo里随机出一个值
            if (radNum < syZjNum)
            {
                //中奖了,再从剩余奖品里抽取一个奖品
                Model.wx_dzpAwardItem dajiang = getZJItem(itemlist, auserlist);
                if (dajiang != null)
                {
                    //这是中的中奖了
                    string snumber = Get_snumber(aid);
                    int    uId     = _ubll.Add(aid, "", "", openid, dajiang.jxName, dajiang.jpName, snumber);
                    result = new CouponPrizeDTO()
                    {
                        sortid  = dajiang.sort_id.Value,
                        jxname  = dajiang.jxName,
                        jpname  = dajiang.jpName,
                        id      = uId,
                        sn      = snumber,
                        getTime = DateTime.Now.ToString("yy-MM-dd HH-mm-ss")
                    };
                }
                else
                {
                    //说明已经没有奖品了
                    throw new JsonException(dzpAction.cfcjhf, "nomore");
                }
            }
            else
            {
                //这个条件说明:未中奖
                //抛出未中奖的数据
                //说明已经没有奖品了
                throw new JsonException(dzpAction.cfcjhf, "nomore");
            }



            #endregion
            return(result);
        }
Пример #4
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/json";
            string _action = MyCommFun.QueryString("myact");
            int    aid     = MyCommFun.RequestInt("aid");
            string openid  = MyCommFun.RequestOpenid(); //得到微信用户的openid

            if (_action == "choujiang")
            {
                Dictionary <string, string> jsonDict = new Dictionary <string, string>();

                try
                {
                    //抽奖
                    Model.wx_dzpActionInfo dzpAction = new Model.wx_dzpActionInfo();

                    BLL.wx_dzpAwardItem itemBll = new BLL.wx_dzpAwardItem();



                    #region 判断
                    int wid = MyCommFun.RequestInt("wid");
                    if (aid == 0 || wid == 0 || openid.Trim() == "")
                    {
                        jsonDict.Add("error", "sys");
                        jsonDict.Add("content", "参数错误!");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    dzpAction = actbll.GetModel(aid);
                    if (dzpAction == null)
                    {
                        jsonDict.Add("error", "sys");
                        jsonDict.Add("content", "参数错误!");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }

                    if (dzpAction.endDate <= DateTime.Now)
                    { //说明活动已经结束
                        //非活动期间
                        jsonDict.Add("error", "end");
                        jsonDict.Add("content", "活动已结束");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    else if (dzpAction.beginDate > DateTime.Now)
                    {
                        //活动未开始
                        //非活动期间
                        jsonDict.Add("error", "nostart");
                        jsonDict.Add("content", "活动未开始");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    int dayMaxTimes = dzpAction.dayMaxTimes == null ? 0 : dzpAction.dayMaxTimes.Value;
                    int perMaxTimes = dzpAction.personMaxTimes == null ? 0 : dzpAction.personMaxTimes.Value;
                    //判断每人最大抽奖次数,是否超过了
                    if (personCJTimes(openid, aid) >= dzpAction.personMaxTimes)
                    {
                        jsonDict.Add("error", "notimes");
                        jsonDict.Add("content", "您已抽过奖了,欢迎下次再来!");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    if (isTodayOverSum(aid, openid, dayMaxTimes))
                    {
                        jsonDict.Add("error", "notimes");
                        jsonDict.Add("content", "每人每天只有" + dayMaxTimes.ToString() + "次抽奖机会。");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    Model.wx_dzpAwardUser award = ubll.getZJinfoByOpenid(aid, openid);
                    if (award != null)
                    {
                        //您中奖了
                        jsonDict.Add("error", "notimes");
                        jsonDict.Add("content", "您已奖了,欢迎下次再来!");
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }


                    #endregion

                    #region 计算中奖信息

                    /// 处理是否中奖
                    /// hidStatus 状态为-1:不能抽奖,直接跳转到end.aspx页面;
                    /// 0:抽奖次数超过设置的最高次数;
                    /// 1:还可以继续抽奖;
                    /// 2:中奖了;

                    List <Model.wx_dzpAwardItem> itemlist = itemBll.GetModelList("actId=" + aid);//该活动的所有奖项信息
                    int ttJpNum = 0;
                    for (int i = 0; i < itemlist.Count; i++)
                    {
                        ttJpNum += itemlist[i].jpRealNum.Value;
                    }


                    IList <Model.wx_dzpAwardUser> auserlist = ubll.getHasZJList(aid);//已经中奖的人列表
                    int ZhongJiangNum = 0;
                    if (auserlist != null)
                    {
                        ZhongJiangNum = auserlist.Count; //已经中奖的人数
                    }

                    int syZjNum = ttJpNum - ZhongJiangNum; //剩余的奖品数量
                    if (syZjNum <= 0)
                    {                                      //说明已经没有奖品了
                        jsonDict.Add("error", "-1");
                        jsonDict.Add("content", dzpAction.cfcjhf);
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }
                    dzpAction.personNum      = MyCommFun.Obj2Int(dzpAction.personNum, 1);
                    dzpAction.personMaxTimes = MyCommFun.Obj2Int(dzpAction.personMaxTimes, 1);
                    int fenmo = dzpAction.personNum.Value * dzpAction.personMaxTimes.Value;

                    Random rd     = new Random((int)DateTime.Now.Ticks);
                    int    radNum = rd.Next(0, fenmo);//从0到fenmo里随机出一个值
                    if (radNum < syZjNum)
                    {
                        //中奖了,再从剩余奖品里抽取一个奖品
                        Model.wx_dzpAwardItem dajiang = getZJItem(itemlist, auserlist);
                        if (dajiang != null)
                        {
                            //这是中的中奖了
                            string snumber = Get_snumber(aid);
                            int    uId     = ubll.Add(aid, "", "", openid, dajiang.jxName, dajiang.jpName, snumber);

                            jsonDict.Add("error", "succ");
                            jsonDict.Add("content", "恭喜你中奖了!");
                            jsonDict.Add("sortid", dajiang.sort_id.Value.ToString());
                            jsonDict.Add("jxname", dajiang.jxName);
                            jsonDict.Add("jpname", dajiang.jpName);
                            jsonDict.Add("uid", uId.ToString());
                            jsonDict.Add("sn", snumber);
                            context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                            return;
                        }
                        else
                        {
                            //奖品已经全部中完了
                            jsonDict.Add("error", "-1");
                            jsonDict.Add("content", dzpAction.cfcjhf);
                            context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                            return;
                        }
                    }
                    else
                    {
                        //这个条件说明:未中奖
                        //抛出未中奖的数据

                        jsonDict.Add("error", "-1");
                        jsonDict.Add("content", dzpAction.cfcjhf);
                        context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                        return;
                    }



                    #endregion
                }
                catch (Exception ex)
                {
                    jsonDict.Add("error", "sys");
                    jsonDict.Add("content", "计算抽奖出现未知错误,请联系管理员!");
                    context.Response.Write(MyCommFun.getJsonStr(jsonDict));
                    return;
                }
            }
            else if (_action == "update")
            {
                try
                {
                    #region 提交手机
                    /// 提交手机号码
                    string tel     = MyCommFun.QueryString("tel");
                    string pwd     = MyCommFun.QueryString("pwd");
                    string snumber = MyCommFun.QueryString("snumber");
                    int    id      = MyCommFun.RequestInt("id");

                    if (aid == 0 || id == 0 || snumber == "" || tel == "")
                    {
                        context.Response.Write("{\"msg\":\"提交出现异常!!\",\"success\":\"0\"}");
                        return;
                    }

                    if ((pwd.Length > 0) && (!actbll.ExistsPwd(aid, pwd)))
                    {
                        context.Response.Write("{\"msg\":\"商家兑换密码错误!!\",\"success\":\"0\"}");
                        return;
                    }


                    BLL.wx_dzpAwardUser   ubll  = new BLL.wx_dzpAwardUser();
                    Model.wx_dzpAwardUser model = ubll.GetModel(id);
                    if (model == null)
                    {
                        context.Response.Write("{\"msg\":\"提交出现异常2!!\",\"success\":\"0\"}");
                        return;
                    }
                    model.uTel = tel;
                    if (pwd.Length > 0)
                    {
                        model.hasLingQu = true;
                    }
                    else
                    {
                        model.hasLingQu = false;
                    }
                    ubll.Update(model);

                    context.Response.Write("{\"msg\":\"提交成功!\",\"success\":\"1\"}");
                    return;

                    #endregion
                }
                catch
                {
                    context.Response.Write("{\"msg\":\"提交出现异常!!\",\"success\":\"0\"}");

                    return;
                }
            }
        }
Пример #5
0
        public int Add(int aid, string username, string tel, string openid, string jxName, string jpName, string sn)
        {
            WechatBuilder.Model.wx_dzpAwardUser auser = new Model.wx_dzpAwardUser();
            auser.actId = aid;
            auser.uName = username;
            auser.uTel = tel;
            auser.openid = openid;
            auser.jxName = jxName;
            auser.jpName = jpName;
            auser.sn = sn;
            auser.createDate = DateTime.Now;
            return this.Add(auser);

        }