Exemple #1
0
        /// <summary>
        /// 添加奖品项目
        /// </summary>
        private void EditAwardItem(int dzpId)
        {
            //1删除原来的,2新增
            iBll.DeleteByActId(dzpId);
            Model.wx_dzpAwardItem item = new Model.wx_dzpAwardItem();
            TextBox      txtJXName;
            TextBox      txtJPName;
            TextBox      txtNum;
            TextBox      txtRealNum;
            TextBox      txtImage;
            DropDownList ddlAttr;
            int          sort_id = 0;

            int totJxNum = 0; //一共有多少奖项

            for (int i = 1; i <= 10; i++)
            {
                txtJXName  = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName  = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum     = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;
                txtImage   = this.FindControl("txt" + i + "Image") as TextBox;
                ddlAttr    = this.FindControl("ddl" + i + "attr") as DropDownList;
                if (txtJXName.Text.Trim() != "")
                {
                    totJxNum++;
                }
            }

            //计算每个奖项的角度值
            decimal avgDeg = (decimal)360.0 / (totJxNum + 1);

            for (int i = 1; i <= 10; i++)
            {
                txtJXName  = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName  = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum     = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;
                txtImage   = this.FindControl("txt" + i + "Image") as TextBox;
                ddlAttr    = this.FindControl("ddl" + i + "attr") as DropDownList;
                if (txtJXName.Text.Trim() != "")
                {
                    sort_id++;
                    //那么添加奖品信息
                    item.jxName     = txtJXName.Text.Trim();
                    item.sort_id    = sort_id;
                    item.jpName     = txtJPName.Text.Trim();
                    item.jpNum      = MyCommFun.Str2Int(txtNum.Text.Trim());
                    item.jpRealNum  = MyCommFun.Str2Int(txtRealNum.Text.Trim());
                    item.jpattr     = MyCommFun.Str2Int(ddlAttr.SelectedItem.Value);
                    item.actId      = dzpId;
                    item.createDate = DateTime.Now;
                    item.jiaodu_min = avgDeg * sort_id;
                    item.jpimage    = txtImage.Text.Trim();
                    item.jpattr     = MyCommFun.Str2Int(ddlAttr.SelectedItem.Value);
                    iBll.Add(item);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 添加奖品项目
        /// </summary>
        private void EditAwardItem(int dzpId)
        {
            //1删除原来的,2新增
            iBll.DeleteByActId(dzpId);
            Model.wx_dzpAwardItem item = new Model.wx_dzpAwardItem();
            TextBox txtJXName;
            TextBox txtJPName;
            TextBox txtNum;
            TextBox txtRealNum;
            int     sort_id = 0;

            int totJxNum = 0; //一共有多少奖项

            for (int i = 1; i <= 6; i++)
            {
                txtJXName  = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName  = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum     = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;
                if (txtJXName.Text.Trim() != "" && txtJPName.Text.Trim() != "" && txtNum.Text.Trim() != "" && txtRealNum.Text.Trim() != "" && MyCommFun.isNumber(txtNum.Text) && MyCommFun.isNumber(txtRealNum.Text))
                {
                    totJxNum++;
                }
            }

            //计算每个奖项的角度值
            decimal avgDeg = (decimal)360.0 / (totJxNum + 1);

            for (int i = 1; i <= 6; i++)
            {
                txtJXName  = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName  = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum     = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;

                if (txtJXName.Text.Trim() != "" && txtJPName.Text.Trim() != "" && txtNum.Text.Trim() != "" && txtRealNum.Text.Trim() != "" && MyCommFun.isNumber(txtNum.Text) && MyCommFun.isNumber(txtRealNum.Text))
                {
                    sort_id++;
                    //那么添加奖品信息
                    item.jxName     = txtJXName.Text.Trim();
                    item.sort_id    = sort_id;
                    item.jpName     = txtJPName.Text.Trim();
                    item.jpNum      = MyCommFun.Str2Int(txtNum.Text.Trim());
                    item.jpRealNum  = MyCommFun.Str2Int(txtRealNum.Text.Trim());
                    item.actId      = dzpId;
                    item.createDate = DateTime.Now;
                    item.jiaodu_min = avgDeg * sort_id;
                    iBll.Add(item);
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 取中奖的项目
        /// </summary>
        /// <param name="itemlist">所有的奖品信息</param>
        /// <param name="haszjlist">已经中奖的列表</param>
        /// <returns></returns>
        private Model.wx_dzpAwardItem getZJItem(IList <Model.wx_dzpAwardItem> itemlist,
                                                IList <Model.wx_dzpAwardUser> haszjlist)
        {
            IList <Model.wx_dzpAwardItem> zjItemlist = new List <Model.wx_dzpAwardItem>();//剩余奖品列表

            Model.wx_dzpAwardItem         tmpItem  = new Model.wx_dzpAwardItem();
            Model.wx_dzpAwardItem         stmpItem = new Model.wx_dzpAwardItem();
            IList <Model.wx_dzpAwardUser> thiszjRs;

            for (int i = 0; i < itemlist.Count; i++)
            {
                tmpItem = itemlist[i];
                List <wx_dzpAwardUser> list = haszjlist.Where(user =>
                                                              user.jpName == tmpItem.jpName &&
                                                              user.jxName == tmpItem.jxName).ToList();
                thiszjRs = list.ToArray <Model.wx_dzpAwardUser>();
                int tmpSYNum = 0;
                if (thiszjRs != null)
                {
                    tmpSYNum = MyCommFun.Obj2Int(tmpItem.jpRealNum) - thiszjRs.Count;
                }
                if (tmpSYNum <= 0)
                {
                    continue;
                }
                for (int j = 0; j < tmpSYNum; j++)
                {
                    stmpItem         = new Model.wx_dzpAwardItem();
                    stmpItem.jpName  = tmpItem.jpName;
                    stmpItem.jxName  = tmpItem.jxName;
                    stmpItem.sort_id = tmpItem.sort_id;
                    zjItemlist.Add(stmpItem);
                }
            }

            Random rd      = new Random((int)DateTime.Now.Ticks);
            int    jpIndex = rd.Next(0, zjItemlist.Count);//从0到zjItemlist.Count里随机出一个值

            return(zjItemlist[jpIndex]);
        }
Exemple #4
0
        private void ShowInfo(int id)
        {
            hidid.Value = id.ToString();
            Model.wx_dzpActionInfo        dzpAction = dzpBll.GetModel(id);
            IList <Model.wx_dzpAwardItem> aItemlist = iBll.GetModelList("actId=" + id);

            Model.wx_requestRule rule = rBll.GetModelList("modelFunctionName='大转盘' and modelFunctionId=" + id)[0];
            txtKW.Text = rule.reqKeywords;

            if (dzpAction.beginPic != null && dzpAction.beginPic.Trim() != "/weixin/dzp/images/start.jpg")
            {
                txtImgUrl.Text       = dzpAction.beginPic;
                imgbeginPic.ImageUrl = dzpAction.beginPic;
            }
            txtactName.Text      = dzpAction.actName;
            txtcontractInfo.Text = dzpAction.contractInfo;
            txtbrief.Value       = dzpAction.brief;
            txtbeginDate.Text    = dzpAction.beginDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtendDate.Text      = dzpAction.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtactContent.Value  = dzpAction.actContent;
            txtcfcjhf.Text       = dzpAction.cfcjhf;
            this.txtdjPwd.Text   = dzpAction.djPwd;
            //结束
            if (dzpAction.endPic != null && dzpAction.endPic.Trim() != "/weixin/dzp/images/end.jpg")
            {
                txtEndPic.Text     = dzpAction.endPic;
                imgEndPic.ImageUrl = dzpAction.endPic;
            }
            txtendNotice.Text  = dzpAction.endNotice;
            txtendContent.Text = dzpAction.endContent;

            //奖项基本信息
            txtpersonNum.Text      = MyCommFun.ObjToStr(dzpAction.personNum);
            txtpersonMaxTimes.Text = MyCommFun.ObjToStr(dzpAction.personMaxTimes);
            txtdayMaxTimes.Text    = MyCommFun.ObjToStr(dzpAction.dayMaxTimes);


            //绑定奖项信息
            IList <Model.wx_dzpAwardItem> itemlist = iBll.GetModelList("actId=" + id + " order by sort_id asc");

            if (itemlist != null && itemlist.Count > 0)
            {
                int     count = itemlist.Count;
                TextBox txtJXName;
                TextBox txtJPName;
                TextBox txtNum;
                TextBox txtRealNum;
                Model.wx_dzpAwardItem itemEntity = new Model.wx_dzpAwardItem();
                for (int i = 1; i <= count; i++)
                {
                    itemEntity = itemlist[(i - 1)];
                    txtJXName  = this.FindControl("txt" + i + "JXName") as TextBox;
                    txtJPName  = this.FindControl("txt" + i + "JPName") as TextBox;
                    txtNum     = this.FindControl("txt" + i + "Num") as TextBox;
                    txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;

                    txtJXName.Text  = itemEntity.jxName;
                    txtJPName.Text  = itemEntity.jpName;
                    txtNum.Text     = itemEntity.jpNum == null ? "0" : itemEntity.jpNum.Value.ToString();
                    txtRealNum.Text = itemEntity.jpRealNum == null ? "0" : itemEntity.jpRealNum.Value.ToString();
                }
            }
        }
        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>";
                }
            }
        }
        /// <summary>
        /// 取中奖的项目
        /// </summary>
        /// <param name="itemlist">所有的奖品信息</param>
        /// <param name="haszjlist">已经中奖的列表</param>
        /// <returns></returns>
        private Model.wx_dzpAwardItem getZJItem(IList<Model.wx_dzpAwardItem> itemlist, IList<Model.wx_dzpAwardUser> haszjlist)
        {
            IList<Model.wx_dzpAwardItem> zjItemlist = new List<Model.wx_dzpAwardItem>();//剩余奖品列表

            Model.wx_dzpAwardItem tmpItem = new Model.wx_dzpAwardItem();
            Model.wx_dzpAwardItem stmpItem = new Model.wx_dzpAwardItem();
            IList<Model.wx_dzpAwardUser> thiszjRs;

            for (int i = 0; i < itemlist.Count; i++)
            {
                tmpItem = itemlist[i];
                thiszjRs = (from user in haszjlist where user.jpName == tmpItem.jpName && user.jxName == tmpItem.jxName select user).ToArray<Model.wx_dzpAwardUser>();
                int tmpSYNum = 0;
                if (thiszjRs != null)
                {
                    tmpSYNum = MyCommFun.Obj2Int(tmpItem.jpRealNum) - thiszjRs.Count;
                }
                if (tmpSYNum <= 0)
                {
                    continue;
                }
                for (int j = 0; j < tmpSYNum; j++)
                {
                    stmpItem = new Model.wx_dzpAwardItem();
                    stmpItem.jpName = tmpItem.jpName;
                    stmpItem.jxName = tmpItem.jxName;
                    stmpItem.sort_id = tmpItem.sort_id;
                    zjItemlist.Add(stmpItem);
                }
            }

            Random rd = new Random((int)DateTime.Now.Ticks);
            int jpIndex = rd.Next(0, zjItemlist.Count);//从0到zjItemlist.Count里随机出一个值
            return zjItemlist[jpIndex];
        }
        private void ShowInfo(int id)
        {
            hidid.Value = id.ToString();
            Model.wx_dzpActionInfo dzpAction = dzpBll.GetModel(id);
            IList<Model.wx_dzpAwardItem> aItemlist = iBll.GetModelList("actId=" + id);
            Model.wx_requestRule rule = rBll.GetModelList("modelFunctionName='大转盘' and modelFunctionId=" + id)[0];
            txtKW.Text = rule.reqKeywords;

            if (dzpAction.beginPic != null && dzpAction.beginPic.Trim() != "/weixin/dzp/images/start.jpg")
            {
                txtImgUrl.Text = dzpAction.beginPic;
                imgbeginPic.ImageUrl = dzpAction.beginPic;
            }
            txtactName.Text = dzpAction.actName;
            txtcontractInfo.Text = dzpAction.contractInfo;
            txtbrief.Value = dzpAction.brief;
            txtbeginDate.Text = dzpAction.beginDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtendDate.Text = dzpAction.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtactContent.Value = dzpAction.actContent;
            txtcfcjhf.Text = dzpAction.cfcjhf;
            this.txtdjPwd.Text = dzpAction.djPwd;
            //结束
            if (dzpAction.endPic != null && dzpAction.endPic.Trim() != "/weixin/dzp/images/end.jpg")
            {
                txtEndPic.Text = dzpAction.endPic;
                imgEndPic.ImageUrl = dzpAction.endPic;
            }
            txtendNotice.Text = dzpAction.endNotice;
            txtendContent.Text = dzpAction.endContent;

            //奖项基本信息
            txtpersonNum.Text = MyCommFun.ObjToStr(dzpAction.personNum);
            txtpersonMaxTimes.Text = MyCommFun.ObjToStr(dzpAction.personMaxTimes);
            txtdayMaxTimes.Text = MyCommFun.ObjToStr(dzpAction.dayMaxTimes);


            //绑定奖项信息
            IList<Model.wx_dzpAwardItem> itemlist = iBll.GetModelList("actId=" + id + " order by sort_id asc");
            if (itemlist != null && itemlist.Count > 0)
            {
                int count = itemlist.Count;
                TextBox txtJXName;
                TextBox txtJPName;
                TextBox txtNum;
                TextBox txtRealNum;
                Model.wx_dzpAwardItem itemEntity = new Model.wx_dzpAwardItem();
                for (int i = 1; i <= count; i++)
                {
                    itemEntity = itemlist[(i - 1)];
                    txtJXName = this.FindControl("txt" + i + "JXName") as TextBox;
                    txtJPName = this.FindControl("txt" + i + "JPName") as TextBox;
                    txtNum = this.FindControl("txt" + i + "Num") as TextBox;
                    txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;

                    txtJXName.Text = itemEntity.jxName;
                    txtJPName.Text = itemEntity.jpName;
                    txtNum.Text = itemEntity.jpNum == null ? "0" : itemEntity.jpNum.Value.ToString();
                    txtRealNum.Text = itemEntity.jpRealNum == null ? "0" : itemEntity.jpRealNum.Value.ToString();
                }

            }

        }
        /// <summary>
        /// 添加奖品项目
        /// </summary>
        private void EditAwardItem(int dzpId)
        {
            //1删除原来的,2新增
            iBll.DeleteByActId(dzpId);
            Model.wx_dzpAwardItem item = new Model.wx_dzpAwardItem();
            TextBox txtJXName;
            TextBox txtJPName;
            TextBox txtNum;
            TextBox txtRealNum;
            int sort_id = 0;

            int totJxNum = 0; //一共有多少奖项
            for (int i = 1; i <= 6; i++)
            {
                txtJXName = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;
                if (txtJXName.Text.Trim() != "" && txtJPName.Text.Trim() != "" && txtNum.Text.Trim() != "" && txtRealNum.Text.Trim() != "" && MyCommFun.isNumber(txtNum.Text) && MyCommFun.isNumber(txtRealNum.Text))
                {
                    totJxNum++;
                }
            }

            //计算每个奖项的角度值
            decimal avgDeg = (decimal)360.0 / (totJxNum + 1);

            for (int i = 1; i <= 6; i++)
            {
                txtJXName = this.FindControl("txt" + i + "JXName") as TextBox;
                txtJPName = this.FindControl("txt" + i + "JPName") as TextBox;
                txtNum = this.FindControl("txt" + i + "Num") as TextBox;
                txtRealNum = this.FindControl("txt" + i + "RealNum") as TextBox;

                if (txtJXName.Text.Trim() != "" && txtJPName.Text.Trim() != "" && txtNum.Text.Trim() != "" && txtRealNum.Text.Trim() != "" && MyCommFun.isNumber(txtNum.Text) && MyCommFun.isNumber(txtRealNum.Text))
                {
                    sort_id++;
                    //那么添加奖品信息 
                    item.jxName = txtJXName.Text.Trim();
                    item.sort_id = sort_id;
                    item.jpName = txtJPName.Text.Trim();
                    item.jpNum = MyCommFun.Str2Int(txtNum.Text.Trim());
                    item.jpRealNum = MyCommFun.Str2Int(txtRealNum.Text.Trim());
                    item.actId = dzpId;
                    item.createDate = DateTime.Now;
                    item.jiaodu_min = avgDeg * sort_id;
                    iBll.Add(item);
                }

            }

        }
Exemple #9
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;
                }
            }
        }
Exemple #10
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);
        }
Exemple #11
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>";
                }

            }
        }