private void ShowInfo(int id)
        {
            hidid.Value = id.ToString();
            Model.wx_sTicket sstAction = sstBll.GetModel(id);
            IList <Model.wx_sttAwardItem> aItemlist = iBll.GetModelList("actId=" + id);

            Model.wx_requestRule rule = rBll.GetModelList("modelFunctionName='优惠券简单版' and modelFunctionId=" + id)[0];
            txtKW.Text = rule.reqKeywords;

            if (sstAction.beginPic != null && sstAction.beginPic.Trim() != "/weixin/sticket/images/start.jpg")
            {
                txtImgUrl.Text       = sstAction.beginPic;
                imgbeginPic.ImageUrl = sstAction.beginPic;
            }
            //banner
            if (sstAction.bannerPic != null && sstAction.bannerPic.Trim() != "/weixin/sticket/images/banner.jpg")
            {
                txtBanner.Text     = sstAction.bannerPic;
                imgBanner.ImageUrl = sstAction.bannerPic;
            }


            txtactName.Text     = sstAction.actionName;
            txtsuccTip.Text     = sstAction.succTip;
            txtbrief.Value      = sstAction.brief;
            txtbeginDate.Text   = sstAction.beginDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtendDate.Text     = sstAction.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
            txtactContent.Value = sstAction.aContent;
            txtusedRemark.Value = sstAction.usedRemark;
            this.txtdjPwd.Text  = sstAction.pwd;
            //结束
            if (sstAction.endPic != null && sstAction.endPic.Trim() != "/weixin/sticket/images/end.jpg")
            {
                txtEndPic.Text     = sstAction.endPic;
                imgEndPic.ImageUrl = sstAction.endPic;
            }
            txtendNotice.Text  = sstAction.endNotice;
            txtendContent.Text = sstAction.endContent;

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

            if (itemlist != null && itemlist.Count > 0)
            {
                int count = itemlist.Count;

                TextBox txtJPName;

                TextBox txtRealNum;
                Model.wx_sttAwardItem itemEntity = new Model.wx_sttAwardItem();
                for (int i = 1; i <= count; i++)
                {
                    itemEntity      = itemlist[(i - 1)];
                    txtJPName       = this.FindControl("txt" + i + "JPName") as TextBox;
                    txtRealNum      = this.FindControl("txt" + i + "RealNum") as TextBox;
                    txtJPName.Text  = itemEntity.jpName;
                    txtRealNum.Text = itemEntity.jpRealNum == null ? "0" : itemEntity.jpRealNum.Value.ToString();
                }
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     OnlyWeiXinLook();
     if (!IsPostBack)
     {
         int aid = MyCommFun.RequestInt("aid", 0);
         if (aid == 0)
         {
             return;
         }
         BLL.wx_sTicket   actbll    = new BLL.wx_sTicket();
         Model.wx_sTicket sstAction = actbll.GetModel(aid);
         if (sstAction != null)
         {
             imgEnd.ImageUrl = sstAction.endPic == null ? "images/end.jpg" : sstAction.endPic.ToString();
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// 优惠券简单版回复内容
        /// </summary>
        /// <param name="id">模块主键Id</param>
        /// <param name="apiid">微帐号主键id</param>
        /// <param name="openid">openid</param>
        /// <param name="responseType">回复类型:1纯文字,2图文</param>
        /// <param name="responseVaule">回复的内容</param>
        private IList <Model.ResponseContentEntity> yhqjdReponse(int id, int apiid, string openid)
        {
            IList <Model.ResponseContentEntity> responselist = new List <Model.ResponseContentEntity>();

            Model.ResponseContentEntity responseEntity = new Model.ResponseContentEntity();
            responseEntity.id  = id;
            responseEntity.wid = apiid;


            BLL.wx_sTicket   sttActBll = new BLL.wx_sTicket();
            Model.wx_sTicket actModel  = sttActBll.GetModel(id);
            if (actModel.beginDate > DateTime.Now)
            {  //活动尚未开始
                responseEntity.rcType   = Model.ReponseContentType.text;
                responseEntity.rContent = "活动【" + actModel.actionName + "】将于" + actModel.beginDate + "开始。";
            }
            else if (actModel.endDate <= DateTime.Now)
            {
                //活动结束

                responseEntity.rcType    = Model.ReponseContentType.txtpic;
                responseEntity.rContent  = actModel.endNotice;
                responseEntity.rContent2 = actModel.endContent;
                responseEntity.detailUrl = MyCommFun.getWebSite() + "/weixin/sticket/end.aspx?wid=" + apiid + "&aid=" + id;
                responseEntity.picUrl    = actModel.endPic;
            }
            else
            {
                //活动正在进行中

                responseEntity.rcType    = Model.ReponseContentType.txtpic;
                responseEntity.rContent  = actModel.actionName;
                responseEntity.rContent2 = actModel.brief;
                responseEntity.detailUrl = MyCommFun.getWebSite() + "/weixin/sticket/index.aspx?wid=" + apiid + "&aid=" + id;
                responseEntity.picUrl    = actModel.beginPic;
            }

            responselist.Add(responseEntity);
            return(responselist);
        }
        //保存
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Model.wx_userweixin weixin = GetWeiXinCode();

            Model.wx_requestRuleContent rc = new Model.wx_requestRuleContent();
            int id = MyCommFun.Str2Int(hidid.Value);

            #region  //先判断
            string strErr = "";
            if (this.txtKW.Text.Trim().Length == 0)
            {
                strErr += "关键词不能为空!";
            }
            if (this.txtactName.Text.Trim().Length == 0)
            {
                strErr += "活动名称不能为空!";
            }
            if (this.txtbeginDate.Text.Trim().Length == 0 || !MyCommFun.isDateTime(txtbeginDate.Text))
            {
                strErr += "开始时间不能为空!";
            }
            if (this.txtendDate.Text.Trim().Length == 0 || !MyCommFun.isDateTime(txtendDate.Text))
            {
                strErr += "结束时间不能为空!";
            }
            if (txt1JPName.Text.Trim().Length == 0 || txt1RealNum.Text.Trim().Length == 0)
            {
                strErr += "第一个优惠券不能为空!";
            }
            if (strErr != "")
            {
                JscriptMsg(strErr, "back", "Error");
                return;
            }
            DateTime begin = DateTime.Parse(txtbeginDate.Text.Trim());
            DateTime end   = DateTime.Parse(txtendDate.Text.Trim());
            if (begin >= end)
            {
                JscriptMsg("开始时间必须小于结束时间", "back", "Error");
                return;
            }
            #endregion

            #region 赋值
            Model.wx_sTicket     sst  = new Model.wx_sTicket();
            Model.wx_requestRule rule = new Model.wx_requestRule();

            string beginPic = imgbeginPic.ImageUrl;
            if (txtImgUrl.Text.Trim() != "")
            {
                beginPic = txtImgUrl.Text.Trim();
            }
            string bannerPic = imgBanner.ImageUrl;
            if (txtBanner.Text.Trim() != "")
            {
                bannerPic = txtBanner.Text.Trim();
            }


            string endPic = imgEndPic.ImageUrl;
            if (txtEndPic.Text.Trim() != "")
            {
                endPic = txtEndPic.Text.Trim();
            }

            if (id > 0)
            {
                sst = sstBll.GetModel(id);
            }

            sst.actionName = txtactName.Text.Trim();
            sst.succTip    = txtsuccTip.Text.Trim();
            sst.brief      = txtbrief.Value.Trim();
            sst.beginDate  = begin;
            sst.endDate    = end;
            sst.aContent   = txtactContent.Value.Trim();
            sst.usedRemark = txtusedRemark.Value;
            sst.endNotice  = txtendNotice.Text.Trim();
            sst.endContent = txtendContent.Text.Trim();
            sst.pwd        = txtdjPwd.Text.Trim();

            sst.beginPic  = beginPic;
            sst.endPic    = endPic;
            sst.bannerPic = bannerPic;

            #endregion

            if (id <= 0)
            {  //新增
                sst.wid        = weixin.id;
                sst.createDate = DateTime.Now;
                //1新增主表
                id = sstBll.Add(sst);

                //2新增奖项表
                EditAwardItem(id);
                //3 新增回复规则表
                rBll.AddModeltxtPicRule(weixin.id, "优惠券简单版", id, txtKW.Text.Trim());
                AddAdminLog(MXEnums.ActionEnum.Add.ToString(), "添加优惠券活动,主键为" + id); //记录日志
                JscriptMsg("添加优惠券活动成功!", "simpleTList.aspx", "Success");
            }
            else
            {   //修改
                //1修改主表
                sstBll.Update(sst);
                //2删除,且新增奖项表
                EditAwardItem(id);
                //3 修改回复规则表
                IList <Model.wx_requestRule> rlist = rBll.GetModelList("modelFunctionName = '优惠券简单版' and modelFunctionId=" + id);

                if (rlist != null && rlist.Count > 0)
                {
                    rule             = rlist[0];
                    rule.reqKeywords = txtKW.Text.Trim();
                    rBll.Update(rule);
                }
                else
                {
                    rBll.AddModeltxtPicRule(weixin.id, "优惠券简单版", id, txtKW.Text.Trim());
                }

                AddAdminLog(MXEnums.ActionEnum.Edit.ToString(), "修改优惠券活动,主键为" + id); //记录日志
                JscriptMsg("修改优惠券活动成功!", "simpleTList.aspx", "Success");
            }
        }
        /// <summary>
        /// 绑定页面上的基本信息
        /// </summary>
        /// <param name="id">活动主键id</param>
        /// <param name="openid"></param>
        private void bindData(int id, string openid)
        {
            #region 活动详情
            sstAction = actbll.GetModel(id);
            if (sstAction == null)
            {
                hidStatus.Value  = "-2";
                hidErrInfo.Value = "该活动不存在!";
                return;
            }
            this.Title = sstAction.actionName;
            stitle     = sstAction.actionName;
            sbrief     = sstAction.brief;
            List <Model.wx_sttAwardItem> itemlist = itemBll.GetModelList("actId=" + id);
            StringBuilder         sb   = new StringBuilder("");
            Model.wx_sttAwardItem item = new Model.wx_sttAwardItem();
            int ttJpNum = 0;//最大的奖品数量
            for (int i = 0; i < itemlist.Count; i++)
            {
                item = itemlist[i];
                sb.Append("<p>优惠券名称:" + item.jpName + "  数量:" + item.jpRealNum + "</p>");
                ttJpNum += item.jpRealNum.Value;
            }
            zjpic.ImageUrl    = sstAction.bannerPic == null ? "images/banner.jpg" : sstAction.bannerPic;
            litJiangXing.Text = sb.ToString();

            litusedRemark.Text = sstAction.usedRemark;
            litaContent.Text   = sstAction.aContent;

            #endregion
            #region 判断

            if (sstAction.endDate <= DateTime.Now)
            { //说明活动已经结束
                //非活动期间
                hidStatus.Value  = "-1";
                hidErrInfo.Value = "活动已结束!";
                return;
            }
            else if (sstAction.beginDate > DateTime.Now)
            {
                //活动未开始
                //非活动期间
                hidStatus.Value  = "-2";
                hidErrInfo.Value = "活动尚未开始!";
                return;
            }

            #endregion

            #region 计算中奖信息


            Model.wx_sttAwardUser awardUser = ubll.getZJinfoByOpenid(id, openid);
            if (awardUser != null && awardUser.id > 0)
            {
                if (awardUser.uTel != null && awardUser.uTel.Trim() != "")
                {
                    //说明已经提交成功了
                    hidStatus.Value  = "3";
                    hidErrInfo.Value = "恭喜你中奖了!";
                    litJp.Text       = awardUser.jpName;
                    hidAwardId.Value = awardUser.id.ToString();
                    litSNM.Text      = awardUser.sn;
                }
                else
                { //未提交
                    //中奖了
                    hidStatus.Value   = "2";
                    hidErrInfo.Value  = "恭喜你中奖了!";
                    litJiangPing.Text = awardUser.jpName;
                    hidAwardId.Value  = awardUser.id.ToString();
                    litSn.Text        = awardUser.sn;
                }
                return;
            }

            IList <Model.wx_sttAwardUser> auserlist = ubll.getHasZJList(id); //已经中奖的人列表
            int ZhongJiangNum = 0;                                           //中奖人数
            if (auserlist != null)
            {
                ZhongJiangNum = auserlist.Count;   //已经中奖的人数
            }
            int syZjNum = ttJpNum - ZhongJiangNum; //剩余的奖品数量
            if (syZjNum <= 0)
            {                                      //说明已经没有奖品了
                hidStatus.Value  = "-2";
                hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                return;
            }

            Random rd     = new Random((int)DateTime.Now.Ticks);
            int    radNum = rd.Next(0, syZjNum);//从0到剩余的奖品里随机出一个值
            if (radNum < syZjNum)
            {
                //中奖了,再从剩余奖品里抽取一个奖品
                Model.wx_sttAwardItem dajiang = getZJItem(itemlist, auserlist);
                if (dajiang != null)
                {
                    //这是中的中奖了
                    string snumber = Get_snumber(id);
                    int    uId     = ubll.Add(id, "", "", openid, dajiang.jpName, snumber);
                    hidStatus.Value   = "2";
                    hidErrInfo.Value  = "恭喜你中奖了!";
                    litJiangPing.Text = dajiang.jpName;
                    hidAwardId.Value  = uId.ToString();
                    litSn.Text        = snumber;
                    return;
                }
                else
                {
                    //奖品已经全部中完了
                    hidStatus.Value  = "-2";
                    hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                    return;
                }
            }
            else
            {
                //这个条件说明:未中奖
                //抛出未中奖的数据
                hidStatus.Value  = "-2";
                hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                return;
            }



            #endregion
        }
        //保存
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Model.wx_userweixin weixin = GetWeiXinCode();

            Model.wx_requestRuleContent rc = new Model.wx_requestRuleContent();
            int id = MyCommFun.Str2Int(hidid.Value);
            #region  //先判断
            string strErr = "";
            if (this.txtKW.Text.Trim().Length == 0)
            {
                strErr += "关键词不能为空!";
            }
            if (this.txtactName.Text.Trim().Length == 0)
            {
                strErr += "活动名称不能为空!";
            }
            if (this.txtbeginDate.Text.Trim().Length == 0 || !MyCommFun.isDateTime(txtbeginDate.Text))
            {
                strErr += "开始时间不能为空!";
            }
            if (this.txtendDate.Text.Trim().Length == 0 || !MyCommFun.isDateTime(txtendDate.Text))
            {
                strErr += "结束时间不能为空!";
            }
            if (txt1JPName.Text.Trim().Length == 0 || txt1RealNum.Text.Trim().Length == 0)
            {
                strErr += "第一个优惠券不能为空!";
            }
            if (strErr != "")
            {
                JscriptMsg(strErr, "back", "Error");
                return;
            }
            DateTime begin = DateTime.Parse(txtbeginDate.Text.Trim());
            DateTime end = DateTime.Parse(txtendDate.Text.Trim());
            if (begin >= end)
            {
                JscriptMsg("开始时间必须小于结束时间", "back", "Error");
                return;
            }
            #endregion

            #region 赋值
            Model.wx_sTicket sst = new Model.wx_sTicket();
            Model.wx_requestRule rule = new Model.wx_requestRule();

            string beginPic = imgbeginPic.ImageUrl;
            if (txtImgUrl.Text.Trim() != "")
            {
                beginPic = txtImgUrl.Text.Trim();
            }
             string bannerPic = imgBanner.ImageUrl;
            if (txtBanner.Text.Trim() != "")
            {
                bannerPic = txtBanner.Text.Trim();
            }


            string endPic = imgEndPic.ImageUrl;
            if (txtEndPic.Text.Trim() != "")
            {
                endPic = txtEndPic.Text.Trim();
            }

            if (id > 0)
            {
                sst = sstBll.GetModel(id);
            }

            sst.actionName = txtactName.Text.Trim();
            sst.succTip = txtsuccTip.Text.Trim();
            sst.brief = txtbrief.Value.Trim();
            sst.beginDate = begin;
            sst.endDate = end;
            sst.aContent = txtactContent.Value.Trim();
            sst.usedRemark = txtusedRemark.Value;
            sst.endNotice = txtendNotice.Text.Trim();
            sst.endContent = txtendContent.Text.Trim();
            sst.pwd = txtdjPwd.Text.Trim();

            sst.beginPic = beginPic;
            sst.endPic = endPic;
            sst.bannerPic = bannerPic;

            #endregion

            if (id <= 0)
            {  //新增
                sst.wid = weixin.id;
                sst.createDate = DateTime.Now;
                //1新增主表
                id = sstBll.Add(sst);

                //2新增奖项表
                EditAwardItem(id);
                //3 新增回复规则表
                rBll.AddModeltxtPicRule(weixin.id, "优惠券简单版", id, txtKW.Text.Trim());
                AddAdminLog(MXEnums.ActionEnum.Add.ToString(), "添加优惠券活动,主键为" + id); //记录日志
                JscriptMsg("添加优惠券活动成功!", "simpleTList.aspx", "Success");
            }
            else
            {   //修改
                //1修改主表
                sstBll.Update(sst);
                //2删除,且新增奖项表
                EditAwardItem(id);
                //3 修改回复规则表
                IList<Model.wx_requestRule> rlist = rBll.GetModelList("modelFunctionName = '优惠券简单版' and modelFunctionId=" + id);

                if (rlist != null && rlist.Count > 0)
                {
                    rule = rlist[0];
                    rule.reqKeywords = txtKW.Text.Trim();
                    rBll.Update(rule);
                }
                else
                {
                    rBll.AddModeltxtPicRule(weixin.id, "优惠券简单版", id, txtKW.Text.Trim());
                }

                AddAdminLog(MXEnums.ActionEnum.Edit.ToString(), "修改优惠券活动,主键为" + id); //记录日志
                JscriptMsg("修改优惠券活动成功!", "simpleTList.aspx", "Success");
            }

        }
        /// <summary>
        /// 绑定页面上的基本信息
        /// </summary>
        /// <param name="id">活动主键id</param>
        /// <param name="openid"></param>
        private void bindData(int id, string openid)
        {
            #region 活动详情
            sstAction = actbll.GetModel(id);
            if (sstAction == null)
            {
                hidStatus.Value = "-2";
                hidErrInfo.Value = "该活动不存在!";
                return;
            }
            this.Title = sstAction.actionName;
            stitle = sstAction.actionName;
            sbrief = sstAction.brief;
            List<Model.wx_sttAwardItem> itemlist = itemBll.GetModelList("actId=" + id);
            StringBuilder sb = new StringBuilder("");
            Model.wx_sttAwardItem item = new Model.wx_sttAwardItem();
            int ttJpNum = 0;//最大的奖品数量
            for (int i = 0; i < itemlist.Count; i++)
            {
                item = itemlist[i];
                sb.Append("<p>优惠券名称:" + item.jpName + "  数量:" + item.jpRealNum + "</p>");
                ttJpNum += item.jpRealNum.Value;
            }
            zjpic.ImageUrl = sstAction.bannerPic == null ? "images/banner.jpg" : sstAction.bannerPic;
            litJiangXing.Text = sb.ToString();

            litusedRemark.Text = sstAction.usedRemark;
            litaContent.Text = sstAction.aContent ;
           
            #endregion
            #region 判断

            if (sstAction.endDate <= DateTime.Now)
            { //说明活动已经结束
                //非活动期间
                hidStatus.Value = "-1";
                hidErrInfo.Value = "活动已结束!";
                return;
            }
            else if (sstAction.beginDate > DateTime.Now)
            {
                //活动未开始
                //非活动期间
                hidStatus.Value = "-2";
                hidErrInfo.Value = "活动尚未开始!";
                return;
            }
           
            #endregion

            #region 计算中奖信息

             
            Model.wx_sttAwardUser awardUser = ubll.getZJinfoByOpenid(id, openid);
            if (awardUser != null && awardUser.id > 0 )
            {
              

                if (awardUser.uTel != null && awardUser.uTel.Trim() != "")
                {
                    //说明已经提交成功了
                    hidStatus.Value = "3";
                    hidErrInfo.Value = "恭喜你中奖了!";
                    litJp.Text = awardUser.jpName;
                    hidAwardId.Value = awardUser.id.ToString();
                    litSNM.Text = awardUser.sn;
                }
                else
                { //未提交
                    //中奖了
                    hidStatus.Value = "2";
                    hidErrInfo.Value = "恭喜你中奖了!";
                    litJiangPing.Text = awardUser.jpName;
                    hidAwardId.Value = awardUser.id.ToString();
                    litSn.Text = awardUser.sn;
                    
                }
                return;
            }

            IList<Model.wx_sttAwardUser> auserlist = ubll.getHasZJList(id);//已经中奖的人列表
            int ZhongJiangNum = 0; //中奖人数
            if (auserlist != null)
            {
                ZhongJiangNum = auserlist.Count; //已经中奖的人数
            }
            int syZjNum = ttJpNum - ZhongJiangNum; //剩余的奖品数量
            if (syZjNum <= 0)
            {  //说明已经没有奖品了
                hidStatus.Value = "-2";
                hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                return;
            }
            
            Random rd = new Random((int)DateTime.Now.Ticks);
            int radNum = rd.Next(0, syZjNum);//从0到剩余的奖品里随机出一个值
            if (radNum < syZjNum)
            {
                //中奖了,再从剩余奖品里抽取一个奖品
                Model.wx_sttAwardItem dajiang = getZJItem(itemlist, auserlist);
                if (dajiang != null)
                {
                  
                    //这是中的中奖了
                    string snumber = Get_snumber(id);
                    int uId = ubll.Add(id, "", "", openid, dajiang.jpName, snumber);
                    hidStatus.Value = "2";
                    hidErrInfo.Value = "恭喜你中奖了!";
                    litJiangPing.Text = dajiang.jpName;
                    hidAwardId.Value = uId.ToString();
                    litSn.Text = snumber;
                    return;
                }
                else
                {
                    //奖品已经全部中完了
                    hidStatus.Value = "-2";
                    hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                    return;
                }

            }
            else
            {
                //这个条件说明:未中奖
                //抛出未中奖的数据 
                hidStatus.Value = "-2";
                hidErrInfo.Value = "优惠券已经被领取完了,请下次再来吧!";
                return;
            }




            #endregion


        }