示例#1
0
        protected void BindList()
        {
            int total = 0;

            if (m_qustion.CustomerSysNo == AppConst.IntNull)
            {
                m_qustion = QA_QuestionBll.GetInstance().GetModel(SysNo);
            }
            DataTable m_dt = QA_AnswerBll.GetInstance().GetListByQuest(pagesize, pageindex, SysNo, ref total);

            Repeater1.DataSource = m_dt;
            Repeater1.DataBind();
            Pager1.url         = AppConfig.HomeUrl() + "Quest/Question/" + SysNo + "/";
            Pager1.totalrecord = total;
            if (total % AppConst.PageSize == 0)
            {
                this.Pager1.total = total / pagesize;
            }
            else
            {
                this.Pager1.total = total / pagesize + 1;
            }
            this.Pager1.index    = pageindex;
            this.Pager1.numlenth = 3;
            if (IsPostBack)
            {
                UpdatePanel1.Update();
            }
        }
示例#2
0
        protected void Button5_Click(object sender, EventArgs e)
        {
            int score = 0;

            try
            {
                score = int.Parse(txtScore.Text.Trim());
            }
            catch
            {
                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addAward", "alert('您输入的积分数不正确,请重新输入!');", true);
                ModalPopupExtender1.Show();
            }
            QA_QuestionMod m_quest   = QA_QuestionBll.GetInstance().GetModel(SysNo);
            int            usedAward = QA_AnswerBll.GetInstance().GetUsedAward(SysNo);

            if (score > m_quest.Award - usedAward)
            {
                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addAward", "alert('您输入的积分数不可超过" + (m_quest.Award - usedAward) + ",请重新输入!');", true);
                ModalPopupExtender1.Show();
                return;
            }

            try
            {
                QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(HiddenField1.Value));
                QA_AnswerBll.GetInstance().SetAward(m_answer, m_quest, score);
                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addAward", "alert('悬赏分配成功!');", true);
            }
            catch
            {
                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addAward", "alert('系统故障,请联系管理员');", true);
            }
            BindList();
        }
示例#3
0
        public ReturnValue <PageInfo <QA_AnswerShow> > GetQuestionListByUserAnswer(int pagesize, int pageindex, int customersysno, int cate, string orderby)
        {
            int                      total = 0;
            DataTable                m_dt  = QA_AnswerBll.GetInstance().GetListByUser(pagesize, pageindex, customersysno, "", cate, false, orderby, ref total);
            List <QA_AnswerShow>     ret   = new List <QA_AnswerShow>();
            PageInfo <QA_AnswerShow> rett  = new PageInfo <QA_AnswerShow>();

            if (m_dt == null || m_dt.Rows.Count == 0)
            {
                rett.List        = ret;
                rett.Total       = total;
                rett.HasNextPage = false;
                return(ReturnValue <PageInfo <QA_AnswerShow> > .Get200OK(rett));
            }
            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                QA_AnswerShow tmp_quest = MapQA_AnswerShow(m_dt.Rows[i]);
                tmp_quest.QuestionTitle = m_dt.Rows[i]["QuestTitle"].ToString();
                ret.Add(tmp_quest);
            }

            rett.List  = ret;
            rett.Total = total;
            if (pagesize * pageindex >= total)
            {
                rett.HasNextPage = false;
            }
            else
            {
                rett.HasNextPage = true;
            }
            return(ReturnValue <PageInfo <QA_AnswerShow> > .Get200OK(rett));
        }
示例#4
0
        public ReturnValue <PageInfo <QA_AnswerShow> > GetAnswerByQuest(int pagesize, int pageindex, int sysno)
        {
            int                      total = 0;
            DataTable                m_dt  = QA_AnswerBll.GetInstance().GetListByQuest(pagesize, pageindex, sysno, ref total);
            List <QA_AnswerShow>     ret   = new List <QA_AnswerShow>();
            PageInfo <QA_AnswerShow> rett  = new PageInfo <QA_AnswerShow>();

            if (m_dt == null || m_dt.Rows.Count == 0)
            {
                rett.List        = ret;
                rett.Total       = total;
                rett.HasNextPage = false;
                return(ReturnValue <PageInfo <QA_AnswerShow> > .Get200OK(rett));
            }

            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                QA_AnswerShow    tmp_answer = MapQA_AnswerShow(m_dt.Rows[i]);
                USR_CustomerShow tmpu       = new USR_CustomerShow();
                USR_CustomerBll.GetInstance().GetModel(tmp_answer.CustomerSysNo).MemberwiseCopy(tmpu);
                tmp_answer.Customer = tmpu;
                DataTable tmp_dt = QA_CommentBll.GetInstance().GetListByAnswer(tmp_answer.SysNo);
                if (tmp_dt != null && tmp_dt.Rows.Count > 0)
                {
                    List <QA_CommentShow> commentlist = new List <QA_CommentShow>();
                    for (int j = 0; j < tmp_dt.Rows.Count && j <= 3; j++)
                    {
                        QA_CommentShow       tmp_comment = MapQA_CommentShow(tmp_dt.Rows[j]);
                        USR_CustomerMaintain tmpuu       = new USR_CustomerMaintain();
                        USR_CustomerBll.GetInstance().GetModel(tmp_comment.CustomerSysNo).MemberwiseCopy(tmpuu);
                        tmp_comment.Customer = tmpuu;
                        commentlist.Add(tmp_comment);
                    }
                    tmp_answer.TopComments = commentlist;
                    tmp_answer.ToalComment = tmp_dt.Rows.Count;
                    if (tmp_dt.Rows.Count > 3)
                    {
                        tmp_answer.HasMoreComment = true;
                    }
                    else
                    {
                        tmp_answer.HasMoreComment = false;
                    }
                }
                ret.Add(tmp_answer);
            }

            rett.List  = ret;
            rett.Total = total;
            if (pagesize * pageindex >= total)
            {
                rett.HasNextPage = false;
            }
            else
            {
                rett.HasNextPage = true;
            }
            return(ReturnValue <PageInfo <QA_AnswerShow> > .Get200OK(rett));
        }
示例#5
0
        protected void BindBestAnswer()
        {
            int       total = 0;
            DataTable m_dt  = QA_AnswerBll.GetInstance().GetListByUser(pagesize, pageindex, m_user.SysNo, "", 0, false, "timedown", ref total);

            rptQuest.DataSource = m_dt;
            rptQuest.DataBind();
        }
示例#6
0
        public ReturnValue <QA_QuestionShow <AstroMod> > SetAward(int answersysno, int score, string msg)
        {
            QA_AnswerMod m_anser = QA_AnswerBll.GetInstance().GetModel(answersysno);

            QA_AnswerBll.GetInstance().SetAward(m_anser, QA_QuestionBll.GetInstance().GetModel(m_anser.QuestionSysNo), score);

            return(GetQuestionForAstro(m_anser.SysNo));
        }
示例#7
0
        protected void BindContent()
        {
            int love  = 0;
            int hate  = 0;
            int award = 0;
            int user  = 0;

            try
            {
                //if (txtAward.Text.Trim() != "")
                //{
                //    award = int.Parse(txtAward.Text.Trim());
                //}
                //if (txtLove.Text.Trim() != "")
                //{
                //    love = int.Parse(txtLove.Text.Trim());
                //}
                //if (txtHate.Text.Trim() != "")
                //{
                //    love = int.Parse(txtHate.Text.Trim());
                //}
                if (txtUser.Text.Trim() != "")
                {
                    user = int.Parse(txtUser.Text.Trim());
                }
            }
            catch
            {
                ltrError.Text = "请确认输入参数格式的正确性!";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';", true);
            }
            DataTable m_dt = QA_AnswerBll.GetInstance().GetListByQuestForAdmin(AppConst.PageSize, pageindex, sysno, user, ref total);

            m_dt.Columns.Add("deleteurl");
            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                m_dt.Rows[i]["deleteurl"] = urlnow + "&delete=";
            }
            rptFamous.DataSource = m_dt;
            rptFamous.DataBind();

            Pager1.url = "Answer.aspx?name=" + txtName.Text.Trim() + "&status=" + drpStatus.SelectedValue + "&user="******"&pn=";
            if (total % AppConst.PageSize == 0)
            {
                this.Pager1.total = total / AppConst.PageSize;
            }
            else
            {
                this.Pager1.total = total / AppConst.PageSize + 1;
            }
            this.Pager1.index    = pageindex;
            this.Pager1.numlenth = 3;
        }
示例#8
0
        protected void rptQuestion_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            //找到分类Repeater关联的数据项
            DataRowView rowv = (DataRowView)e.Item.DataItem;
            //提取分类ID
            int       sysno    = Convert.ToInt32(rowv["SysNo"]);
            int       total    = 0;
            DataTable m_dt     = QA_AnswerBll.GetInstance().GetListByQuest(1000, 1, sysno, ref total);
            int       choosen  = AppConst.IntNull;;
            int       goodnow  = 0;
            int       awardnow = 0;

            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                if (choosen == AppConst.IntNull && m_dt.Rows[i]["CustomerSysNo"].ToString() != rowv["CustomerSysNo"].ToString())
                {
                    choosen  = i;
                    goodnow  = int.Parse(m_dt.Rows[i]["Love"].ToString());
                    awardnow = int.Parse(m_dt.Rows[i]["Award"].ToString());
                    continue;
                }
                if (awardnow < int.Parse(m_dt.Rows[i]["Award"].ToString()))
                {
                    choosen  = i;
                    goodnow  = int.Parse(m_dt.Rows[i]["Love"].ToString());
                    awardnow = int.Parse(m_dt.Rows[i]["Award"].ToString());
                    continue;
                }
                if (awardnow == 0 && goodnow < int.Parse(m_dt.Rows[i]["Love"].ToString()))
                {
                    choosen  = i;
                    goodnow  = int.Parse(m_dt.Rows[i]["Love"].ToString());
                    awardnow = int.Parse(m_dt.Rows[i]["Award"].ToString());
                    continue;
                }
            }
            if (choosen == AppConst.IntNull)
            {
                Image Image1 = (Image)e.Item.FindControl("Image1");
                Panel Panel1 = (Panel)e.Item.FindControl("Panel1");
                Panel1.CssClass = "no_reply";
                Image1.Visible  = false;
                Literal Literal1 = (Literal)e.Item.FindControl("Literal1");
                Literal1.Text = @"<a target=""_blank"" href=""" + AppConfig.HomeUrl() + "Quest/Question/" + sysno + @""">还没人回复,快来抢个大沙发吧!</a>";
            }
            else
            {
                Image Image1 = (Image)e.Item.FindControl("Image1");
                Image1.ImageUrl = AppConfig.HomeUrl() + "ControlLibrary/ShowPhoto.aspx?type=t&id=" + m_dt.Rows[choosen]["photo"].ToString();
                Literal Literal1 = (Literal)e.Item.FindControl("Literal1");
                Literal1.Text = @"<span>" + m_dt.Rows[choosen]["NickName"].ToString() + @"回复:</span>" + AppCmn.CommonTools.CutStr(CommonTools.NoHTML(m_dt.Rows[choosen]["Context"].ToString()), 85);
            }
        }
示例#9
0
 private void SaveReply(QA_AnswerMod m_answer)
 {
     try
     {
         QA_AnswerBll.GetInstance().AddAnswer(m_answer);
         RefreshSession();
         ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addanswer", "alert('回答发布成功!');", true);
     }
     catch
     {
         ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addanswer", "alert('系统故障,发布失败!');", true);
     }
 }
示例#10
0
        public ReturnValue <bool> RemoveAnswer(int AnswerSysNo)
        {
            QA_AnswerMod m_anser = QA_AnswerBll.GetInstance().GetModel(AnswerSysNo);

            if (m_anser != null)
            {
                m_anser.DR = (int)AppEnum.State.deleted;
                QA_AnswerBll.GetInstance().Update(m_anser);

                return(ReturnValue <bool> .Get200OK(false));
            }
            else
            {
                throw new BusinessException("该回复不存在!");
            }
        }
示例#11
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Delete()
        {
            try
            {
                QA_AnswerMod m_famous = QA_AnswerBll.GetInstance().GetModel(int.Parse(Request.QueryString["delete"]));
                m_famous.DR = (int)AppEnum.State.deleted;
                QA_AnswerBll.GetInstance().Update(m_famous);

                ltrNotice.Text = "该记录已删除!";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('noticediv').style.display='';", true);
            }
            catch
            {
                ltrError.Text = "系统错误,删除失败!";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';", true);
            }
        }
示例#12
0
        public ReturnValue <USR_CustomerShow> AddAnswer(int CustomerSysNo, int QuestionSysNo, string Title, string Context)
        {
            QA_AnswerMod m_answer = new QA_AnswerMod();

            m_answer.Award         = 0;
            m_answer.Title         = Title;
            m_answer.Context       = AppCmn.CommonTools.SystemInputFilter(Context.DoTrim());
            m_answer.CustomerSysNo = CustomerSysNo;
            m_answer.DR            = (int)AppEnum.State.normal;
            m_answer.Hate          = 0;
            m_answer.Love          = 0;
            m_answer.QuestionSysNo = QuestionSysNo;
            m_answer.Title         = "";
            m_answer.TS            = DateTime.Now;
            QA_AnswerBll.GetInstance().AddAnswer(m_answer);

            USR_CustomerShow ret = new USR_CustomerShow();

            USR_CustomerBll.GetInstance().GetModel(CustomerSysNo).MemberwiseCopy(ret);
            return(ReturnValue <USR_CustomerShow> .Get200OK(ret));
        }
示例#13
0
        protected void BindQuest()
        {
            int       total = 0;
            DataTable dt    = new DataTable();

            if (HttpRuntime.Cache[AppConst.AstroDiceNewAnswer] == null)
            {
                dt = QA_QuestionBll.GetInstance().GetList(7, 1, "", 7, "replytimedown", ref total);
                dt.Columns.Add("Reply");
                int       tmptotal = 0;
                DataTable tmpdt    = new DataTable();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["Reply"] = QA_AnswerBll.GetInstance().GetListByQuest(1, 1, int.Parse(dt.Rows[i]["SysNo"].ToString()), ref tmptotal).Rows[0]["Context"].ToString();
                }
                HttpRuntime.Cache.Insert(AppConst.AstroDiceNewAnswer, dt,
                                         null, DateTime.Now.AddMinutes(5), TimeSpan.Zero,
                                         System.Web.Caching.CacheItemPriority.High, null);
            }
            dt = HttpRuntime.Cache[AppConst.AstroDiceNewAnswer] as DataTable;
            Repeater1.DataSource = dt;
            Repeater1.DataBind();

            DataTable dt1 = new DataTable();

            if (HttpRuntime.Cache[AppConst.AstroDiceNewQuest] == null)
            {
                dt1 = QA_QuestionBll.GetInstance().GetList(12, 1, "", 7, "timedown", ref total); dt1.Columns.Add("IsNew");
                HttpRuntime.Cache.Insert(AppConst.AstroDiceNewQuest, dt1,
                                         null, DateTime.Now.AddMinutes(1), TimeSpan.Zero,
                                         System.Web.Caching.CacheItemPriority.High, null);
            }
            dt1 = HttpRuntime.Cache[AppConst.AstroDiceNewQuest] as DataTable;
            Repeater2.DataSource = dt1;
            Repeater2.DataBind();
        }
示例#14
0
        protected void BindNewQuest()
        {
            int       total = 0;
            DataTable dt    = new DataTable();

            if (HttpRuntime.Cache[AppConst.AllNewAnswer] == null)
            {
                dt = QA_QuestionBll.GetInstance().GetList(6, 1, "", 0, "replytimedown", ref total);
                dt.Columns.Add("Answer");
                dt.Columns.Add("AnswerUser");
                dt.Columns.Add("CateName");
                int       tmptotal = 0;
                DataTable tmpdt    = QA_CategoryBll.GetInstance().GetAllCates();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataTable tmpanswer = QA_AnswerBll.GetInstance().GetListByQuest(1, 1, int.Parse(dt.Rows[i]["SysNo"].ToString()), ref tmptotal);
                    dt.Rows[i]["Answer"]     = tmpanswer.Rows[0]["Context"].ToString();
                    dt.Rows[i]["AnswerUser"] = tmpanswer.Rows[0]["NickName"].ToString();
                    for (int j = 0; j < tmpdt.Rows.Count; j++)
                    {
                        if (dt.Rows[i]["CateSysNo"].ToString() == tmpdt.Rows[j]["SysNo"].ToString())
                        {
                            dt.Rows[i]["CateName"] = tmpdt.Rows[j]["Name"].ToString();
                            break;
                        }
                    }
                }
                HttpRuntime.Cache.Insert(AppConst.AllNewAnswer, dt,
                                         null, DateTime.Now.AddMinutes(5), TimeSpan.Zero,
                                         System.Web.Caching.CacheItemPriority.High, null);
            }
            dt = HttpRuntime.Cache[AppConst.AllNewAnswer] as DataTable;
            Repeater3.DataSource = dt;
            Repeater3.DataBind();
        }
示例#15
0
 protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
 {
     if (e.CommandName == "Love")
     {
         if (!CheckCommentCookies(int.Parse(e.CommandArgument.ToString())))
         {
             QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
             m_answer.Love++;
             QA_AnswerBll.GetInstance().Update(m_answer);
             SetCommentCookies(int.Parse(e.CommandArgument.ToString()));
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您对该回答表示了赞同!');", true);
             BindList();
         }
         else
         {
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您已对该回答发表了看法!');", true);
         }
     }
     else if (e.CommandName == "Hate")
     {
         if (!CheckCommentCookies(int.Parse(e.CommandArgument.ToString())))
         {
             QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
             m_answer.Hate++;
             QA_AnswerBll.GetInstance().Update(m_answer);
             SetCommentCookies(int.Parse(e.CommandArgument.ToString()));
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addhate", "alert('您对该回答表示了不赞同!');", true);
             BindList();
         }
         else
         {
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您已对该回答发表了看法!');", true);
         }
     }
     else if (e.CommandName == "Award")
     {
         QA_QuestionMod m_quest   = QA_QuestionBll.GetInstance().GetModel(SysNo);
         int            usedAward = QA_AnswerBll.GetInstance().GetUsedAward(SysNo);
         ltrMax.Text        = "该问题的总悬赏积分为:" + (m_quest.Award - usedAward).ToString();
         HiddenField1.Value = e.CommandArgument.ToString();
         ModalPopupExtender1.Show();
     }
     else if (e.CommandName == "Reply")
     {
         if (((TextBox)e.Item.FindControl("txtRe")).Text.Trim() == "")
         {
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('请输入您的回复信息!');", true);
             return;
         }
         try
         {
             QA_CommentMod m_comment = new QA_CommentMod();
             m_comment.AnswerSysNo   = int.Parse(e.CommandArgument.ToString());
             m_comment.Context       = AppCmn.CommonTools.SystemInputFilter(((TextBox)e.Item.FindControl("txtRe")).Text.Trim());
             m_comment.DR            = (int)AppEnum.State.normal;
             m_comment.QuestionSysNo = SysNo;
             m_comment.TS            = DateTime.Now;
             m_comment.CustomerSysNo = GetSession().CustomerEntity.SysNo;
             QA_CommentBll.GetInstance().AddComment(m_comment);
             RefreshSession();
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('发表看法成功!');", true);
         }
         catch
         {
             ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('系统故障,请联系管理员');", true);
         }
         BindList();
     }
     else if (e.CommandName == "Del")
     {
         QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
         m_answer.DR = (int)AppEnum.State.deleted;
         QA_AnswerBll.GetInstance().Update(m_answer);
         ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addhate", "alert('成功删除该回答!');", true);
         BindList();
     }
 }
示例#16
0
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Login(Request.Url.ToString());
            if (order == 0)
            {
                #region 判断输入项
                decimal price = 0;
                try
                {
                    price = decimal.Parse(TextBox3.Text.Trim());
                    pricetip.InnerHtml = "";
                }
                catch
                {
                    pricetip.InnerHtml = "<samp>预计消费金额只可填写数字,请重新输入</samp>";
                }

                int words = 0;
                try
                {
                    words = int.Parse(TextBox2.Text.Trim());
                    wordstip.InnerHtml = "";
                }
                catch
                {
                    wordstip.InnerHtml = "<samp>最少字数只可填写数字,请重新输入</samp>";
                }
                #endregion

                QA_AnswerMod m_answer = new QA_AnswerMod();
                m_answer.Award   = 0;
                m_answer.Context = "";
                if (GetSession().CustomerEntity == null || GetSession().CustomerEntity.SysNo == AppConst.IntNull)
                {
                    m_answer.CustomerSysNo = 0;
                }
                else
                {
                    m_answer.CustomerSysNo = GetSession().CustomerEntity.SysNo;
                }
                m_answer.DR            = (int)AppEnum.State.normal;
                m_answer.Hate          = 0;
                m_answer.Love          = 0;
                m_answer.QuestionSysNo = SysNo;
                m_answer.Title         = "";
                m_answer.TS            = DateTime.Now;

                QA_OrderMod m_order = new QA_OrderMod();
                m_order.CustomerSysNo = m_answer.CustomerSysNo;
                m_order.Description   = txtDescription.Text.Trim();
                m_order.Price         = price;
                m_order.QuestionSysNo = m_answer.QuestionSysNo;
                m_order.Score         = AppConst.IntNull;
                m_order.Status        = (int)AppEnum.ConsultOrderStatus.beforepay;
                m_order.Trial         = txtTrial.Text.Trim();
                m_order.TS            = DateTime.Now;
                m_order.Words         = words;

                try
                {
                    QA_OrderBll.GetInstance().SetOrder(m_order, m_answer);
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "ok", "alert('报价发布成功!');location.href='" + AppConfig.HomeUrl() + "Quest/Consult/" + SysNo + "'", true);
                }
                catch (Exception ex)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "nook", "alert('系统故障,发布失败!');", true);
                }
            }
            else
            {
                QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(old_order.AnswerSysNo);
                m_answer.Context = txtContext.Text;
                old_order.Status = (int)AppEnum.ConsultOrderStatus.beforeconfirm;
                try
                {
                    QA_AnswerBll.GetInstance().Update(m_answer);
                    QA_OrderBll.GetInstance().Update(old_order);
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "ok", "alert('解答提交成功!');location.href='" + AppConfig.HomeUrl() + "Quest/Consult/" + SysNo + "'", true);
                }
                catch (Exception ex)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "nook", "alert('系统故障,提交失败!');", true);
                }
            }
        }
示例#17
0
        protected void BindList()
        {
            DataTable tmpdt = QA_AnswerBll.GetInstance().GetSimpleListByQuest(SysNo);

            tmpdt.Columns.Add("isorder");
            #region 绑定报价列表
            if (GetSession().CustomerEntity.SysNo == m_qustion.CustomerSysNo)
            {
                myprice.Visible = false;
            }

            DataTable m_dt1 = QA_OrderBll.GetInstance().GetListByQuest(SysNo);
            m_dt1.Columns.Add("color");
            m_dt1.Columns.Add("floor");
            for (int i = 0; i < m_dt1.Rows.Count; i++)
            {
                switch (int.Parse(m_dt1.Rows[i]["status"].ToString()))
                {
                case 1:
                    m_dt1.Rows[i]["color"] = "#000";
                    break;

                case 2:
                case 3:
                case 4:
                    m_dt1.Rows[i]["color"] = "#008c03";
                    break;

                case 0:
                case 5:
                    m_dt1.Rows[i]["color"] = "#f00";
                    break;
                }
                //若已有报价单且未购买则不允许发布第二个价单
                if (m_dt1.Rows[i]["CustomerSysNo"].ToString() == GetSession().CustomerEntity.SysNo.ToString() && int.Parse(m_dt1.Rows[i]["status"].ToString()) == 1)
                {
                    myprice.Visible = false;
                }
                #region 设置锚点
                for (int j = 0; j < tmpdt.Rows.Count; j++)
                {
                    if (tmpdt.Rows[j]["SysNo"].ToString() == m_dt1.Rows[i]["answersysno"].ToString())
                    {
                        if (j >= pagesize)
                        {
                            Regex r = new Regex(@"pn\d+?&");
                            m_dt1.Rows[i]["floor"] = r.Replace(Request.Url.ToString(), "") + "&pn=" + j / pageindex + "#f" + (j % pageindex).ToString();
                        }
                        else
                        {
                            m_dt1.Rows[i]["floor"] = "#f" + j.ToString();
                        }
                        tmpdt.Rows[j]["isorder"] = "1";
                        break;
                    }
                }
                #endregion
            }

            Repeater2.DataSource = m_dt1;
            Repeater2.DataBind();

            #endregion
            #region 绑定回答列表
            int total = 0;
            if (m_qustion.CustomerSysNo == AppConst.IntNull)
            {
                m_qustion = QA_QuestionBll.GetInstance().GetModel(SysNo);
            }
            DataTable m_dt = QA_AnswerBll.GetInstance().GetListByQuestForConsult(pagesize, pageindex, SysNo, ref total);
            m_dt.Columns.Add("hide");
            //m_dt.Columns.Add("hide1");
            //m_dt.Columns.Add("orderlink");
            for (int i = 0; i < m_dt.Rows.Count; i++)
            {
                if (GetSession().CustomerEntity.SysNo == m_qustion.CustomerSysNo || GetSession().CustomerEntity.SysNo == int.Parse(m_dt.Rows[i]["CustomerSysNo"].ToString()))
                {
                    m_dt.Rows[i]["hide"] = "display:none;";
                }
                else
                {
                    m_dt.Rows[i]["trial"]   = "";
                    m_dt.Rows[i]["Context"] = "";
                    m_dt.Rows[i]["hide"]    = "";
                }
            }
            Repeater1.DataSource = m_dt;
            Repeater1.DataBind();
            Pager1.url         = AppConfig.HomeUrl() + "Quest/Consult/" + SysNo + "/";
            Pager1.totalrecord = total;
            if (total % AppConst.PageSize == 0)
            {
                this.Pager1.total = total / pagesize;
            }
            else
            {
                this.Pager1.total = total / pagesize + 1;
            }
            this.Pager1.index    = pageindex;
            this.Pager1.numlenth = 3;
            if (IsPostBack)
            {
                UpdatePanel1.Update();
            }
            #endregion
        }
示例#18
0
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            Login(Request.Url.ToString());
            if (e.CommandName == "Love")
            {
                if (!CheckCommentCookies(int.Parse(e.CommandArgument.ToString())))
                {
                    QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
                    m_answer.Love++;
                    QA_AnswerBll.GetInstance().Update(m_answer);
                    SetCommentCookies(int.Parse(e.CommandArgument.ToString()));
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您对该回答表示了赞同!');", true);
                    BindList();
                }
                else
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您已对该回答发表了看法!');", true);
                }
            }
            else if (e.CommandName == "Hate")
            {
                if (!CheckCommentCookies(int.Parse(e.CommandArgument.ToString())))
                {
                    QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
                    m_answer.Hate++;
                    QA_AnswerBll.GetInstance().Update(m_answer);
                    SetCommentCookies(int.Parse(e.CommandArgument.ToString()));
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addhate", "alert('您对该回答表示了不赞同!');", true);
                    BindList();
                }
                else
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addlove", "alert('您已对该回答发表了看法!');", true);
                }
            }
            //else if (e.CommandName == "Award")
            //{
            //    QA_QuestionMod m_quest = QA_QuestionBll.GetInstance().GetModel(SysNo);
            //    int usedAward = QA_AnswerBll.GetInstance().GetUsedAward(SysNo);
            //    ltrMax.Text = "该问题的总悬赏积分为:" + (m_quest.Award - usedAward).ToString();
            //    HiddenField1.Value = e.CommandArgument.ToString();
            //    ModalPopupExtender1.Show();
            //}
            else if (e.CommandName == "Reply")
            {
                if (((TextBox)e.Item.FindControl("txtRe")).Text.Trim() == "")
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('请输入您的回复信息!');", true);
                    return;
                }
                try
                {
                    QA_CommentMod m_comment = new QA_CommentMod();
                    m_comment.AnswerSysNo   = int.Parse(e.CommandArgument.ToString());
                    m_comment.Context       = AppCmn.CommonTools.SystemInputFilter(((TextBox)e.Item.FindControl("txtRe")).Text.Trim());
                    m_comment.DR            = (int)AppEnum.State.normal;
                    m_comment.QuestionSysNo = SysNo;
                    m_comment.TS            = DateTime.Now;
                    m_comment.CustomerSysNo = GetSession().CustomerEntity.SysNo;
                    QA_CommentBll.GetInstance().AddComment(m_comment);
                    RefreshSession();
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('发表看法成功!');", true);
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addComment", "alert('系统故障,请联系管理员');", true);
                }
                BindList();
            }
            else if (e.CommandName == "Del")
            {
                QA_AnswerMod m_answer = QA_AnswerBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
                m_answer.DR = (int)AppEnum.State.deleted;
                QA_AnswerBll.GetInstance().Update(m_answer);
                ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "addhate", "alert('成功删除该回答!');", true);
                BindList();
            }
            else if (e.CommandName == "buy")
            {
                //生成订单
                QA_OrderMod m_order = QA_OrderBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
                ORD_CashMod m_mod   = new ORD_CashMod();
                m_mod.CustomerSysNo = GetSession().CustomerEntity.SysNo;
                m_mod.CurrentID     = "";
                m_mod.Discount      = 0;

                m_mod.PayAmount    = m_order.Price;
                m_mod.PayType      = AppConst.IntNull;
                m_mod.Price        = m_order.Price;
                m_mod.ProductSysNo = m_order.SysNo;
                m_mod.Status       = (int)AppEnum.CashOrderStatus.beforepay;
                m_mod.ProductType  = (int)AppEnum.CashOrderType.consultpay;;
                m_mod.TS           = DateTime.Now;

                m_mod.OrderID = "C" + m_mod.ProductType.ToString("0") + m_mod.TS.ToString("yyyyMMdd") + m_mod.ProductSysNo + CommonTools.ThrowRandom(0, 99999).ToString("00000");
                m_mod.SysNo   = ORD_CashBll.GetInstance().Add(m_mod);
                //m_qustion.BuyCount++;//支付成功后修改订单购买数
                QA_QuestionBll.GetInstance().Update(m_qustion);

                Response.Redirect(AppConfig.HomeUrl() + "Order/ConsultOrder.aspx?order=" + m_mod.SysNo);
            }
            else if (e.CommandName == "score")
            {
                string score = ((HiddenField)e.Item.FindControl("HiddenField3")).Value;
                if (score == "")
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "score", "alert('请先选择评价!');", true);
                    return;
                }
                else
                {
                    QA_OrderMod m_order = QA_OrderBll.GetInstance().GetModel(int.Parse(e.CommandArgument.ToString()));
                    m_order.Score  = int.Parse(score);
                    m_order.Status = (int)AppEnum.ConsultOrderStatus.confirmed;
                    QA_OrderBll.GetInstance().Update(m_order);
                    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "score", "alert('已评价成功!');", true);
                    BindList();
                }
            }
        }
示例#19
0
        /// <summary>
        /// 任务实体
        /// </summary>
        /// <param name="lastExecuteTime"></param>
        public override void Execute(DateTime?lastExecuteTime)
        {
            try
            {
                LogService.Info("任务开始", LogInfoCategory);

                DataTable m_dt = QA_QuestionBll.GetInstance().GetToEndList();
                if (m_dt != null && m_dt.Rows.Count > 0)
                {
                    int total = 0;
                    for (int i = 0; i < m_dt.Rows.Count; i++)
                    {
                        int       sysno    = int.Parse(m_dt.Rows[i]["sysno"].ToString());
                        DataTable m_answer = QA_AnswerBll.GetInstance().GetListByQuest(1, 10000, sysno, ref total);
                        m_answer.Columns.Add("commcount");
                        m_answer.Columns.Add("score");
                        int totalcomm  = 0;
                        int totallenth = 0;
                        int totallove  = 0;
                        int[,] tmpresult = new int[3, 2];
                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            totallenth += m_answer.Rows[j]["Context"].ToString().Length;
                            totallove  += int.Parse(m_answer.Rows[j]["Love"].ToString());
                            DataTable m_comm = QA_CommentBll.GetInstance().GetListByAnswer(int.Parse(m_answer.Rows[j]["SysNo"].ToString()));
                            totalcomm += m_comm.Rows.Count;
                            m_answer.Rows[j]["commcount"] = m_comm.Rows.Count.ToString();
                            m_answer.Rows[j]["score"]     = 0;
                        }

                        for (int j = 0; j < m_answer.Rows.Count; j++)
                        {
                            double tmp = Convert.ToDouble(m_answer.Rows[j]["Context"].ToString().Length *m_answer.Rows.Count) / Convert.ToDouble(totallenth);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 10;
                            }

                            tmp  = Convert.ToDouble(m_answer.Rows[j]["Love"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totallove);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 5;
                            }

                            tmp  = Convert.ToDouble(m_answer.Rows[j]["commcount"].ToString()) * Convert.ToDouble(m_answer.Rows.Count) / Convert.ToDouble(totalcomm);
                            tmp -= 1;
                            if (tmp > 0)
                            {
                                m_answer.Rows[j]["score"] = int.Parse(m_answer.Rows[j]["score"].ToString()) + Math.Floor(tmp * 10) * Math.Floor(tmp * 10) * 3;
                            }
                        }

                        TransactionOptions options = new TransactionOptions();
                        options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
                        options.Timeout        = TransactionManager.DefaultTimeout;

                        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
                        {
                            m_answer.DefaultView.Sort = "award asc, score desc";
                            DataTable dtTemp = m_answer.DefaultView.ToTable();
                            if (dtTemp.Rows.Count == 1)
                            {
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())));
                            }
                            else
                            {
                                int awardremain = int.Parse(m_dt.Rows[i]["Award"].ToString()) - QA_AnswerBll.GetInstance().GetUsedAward(int.Parse(dtTemp.Rows[0]["SysNo"].ToString()));
                                int award1      = awardremain * int.Parse(m_dt.Rows[0]["score"].ToString()) / (int.Parse(m_dt.Rows[0]["score"].ToString()) + int.Parse(m_dt.Rows[1]["score"].ToString()));
                                int award2      = awardremain - award1;
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[0]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award1);
                                QA_AnswerBll.GetInstance().SetAward(QA_AnswerBll.GetInstance().GetModel(int.Parse(dtTemp.Rows[1]["SysNo"].ToString())), QA_QuestionBll.GetInstance().GetModel(int.Parse(m_dt.Rows[i]["SysNo"].ToString())), award2);
                            }

                            USR_MessageMod m_notice = new USR_MessageMod();
                            m_notice.CustomerSysNo = int.Parse(m_dt.Rows[i]["CustomerSysNo"].ToString());
                            m_notice.Title         = AppConst.AutoSendAward.Replace("@url", Container.ConfigService.GetAppSetting <string>("HomeUrl", "") + "Quest/Question.aspx?id=" + m_dt.Rows[i]["SysNo"].ToString())
                                                     .Replace("@question", m_dt.Rows[i]["Title"].ToString());
                            m_notice.DR      = 0;
                            m_notice.IsRead  = 0;
                            m_notice.Context = "";
                            m_notice.TS      = DateTime.Now;
                            m_notice.Type    = (int)AppEnum.MessageType.notice;
                            USR_MessageBll.GetInstance().AddMessage(m_notice);

                            scope.Complete();
                            //EventLog.WriteEntry("Hi,I'm wiseman");
                        }
                    }
                }
                LogService.Info("任务结束", LogInfoCategory);
            }
            catch (Exception ex)
            {
                LogService.Error("RewardTask 任务失败", LogInfoCategory);
                LogService.Error(ex, LogInfoCategory);
            }
            finally
            {
                this.NextExecuteTime = DateTime.Now.AddHours(1);
            }
        }