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(); } }
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(); }
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)); }
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)); }
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(); }
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)); }
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; }
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); } }
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); } }
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("该回复不存在!"); } }
/// <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); } }
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)); }
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(); }
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(); }
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(); } }
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); } } }
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 }
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(); } } }
/// <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); } }