Esempio n. 1
0
 /// <summary>
 /// 新增一个回复
 /// </summary>
 /// <param name="ar"></param>
 public void AddAdviceReply(AdviceReply ar)
 {
     ar.ID         = We7Helper.CreateNewID();
     ar.CreateDate = DateTime.Now;
     Assistant.Insert(ar);
     UpdateAdviceCount(ar.AdviceID);
 }
Esempio n. 2
0
 /// <summary>
 /// 审核通过
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ReportButton_Click(object sender, EventArgs e)
 {
     if (OperationInfo(AdviceState.Checking))
     {
         Advice      a     = ThisAdvice;
         AdviceReply reply = AdviceReplyHelper.GetAdviceReplyByAdviceID(AdviceID);
         if (reply == null)
         {
             reply            = new AdviceReply();
             reply.AdviceID   = AdviceID;
             reply.Suggest    = ToAdviceTextBox.Text;
             reply.UserID     = AccountID;
             reply.CreateDate = DateTime.Now;
             reply.Updated    = DateTime.Now;
         }
         reply.Content = We7Helper.ConvertPageBreakFromVisualToChar(ReplyContentTextBox.Value);
         AdviceReplyHelper.UpdateReplyByAdviceID(reply, null);
         if (a.State == (int)AdviceState.Finished)
         {
             if (chbSendEmail.Checked)
             {
                 AdviceEmailConfigs    adviceEmailConfigs = new AdviceEmailConfigs();
                 AdviceEmailConfigInfo info = adviceEmailConfigs["ReplyUser"];
                 AdviceHelper.SendResultMailToAdvicer(a, reply, null, info);
             }
         }
         Messages.ShowMessage(" :) 审核成功!");
         //记录日志
         string content = string.Format("审核通过了留言反馈:“{0}”的详细信息", AdviceID);
         AddLog("留言反馈详细信息", content);
         Response.Write("<script>alert('审核成功!');location.href='AdviceList.aspx?adviceTypeID=" + ThisAdvice.TypeID + "';</script>");
         //Initialize();
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 获取办理人名称
        /// </summary>
        /// <param name="adviceID"></param>
        /// <returns></returns>
        public string GetUserName(string adviceID, string toOtherHandleUserID)
        {
            string userID   = "";
            string userName = "";
            string action   = " <b>转</b> ";

            if (toOtherHandleUserID.Trim() != "")
            {
                userID = toOtherHandleUserID;
            }
            if (adviceID != "")
            {
                AdviceReply ar = AdviceReplyHelper.GetAdviceReplyByAdviceID(adviceID);
                if (ar != null)
                {
                    userID = ar.UserID;
                }
            }
            if (userID != "" && userID != null)
            {
                userName = AccountHelper.GetAccount(userID, new string[] { "LastName" }).LastName;
            }
            if (!string.IsNullOrEmpty(userName))
            {
                userName = action + userName;
            }
            return(userName);
        }
Esempio n. 4
0
        /// <summary>
        /// 发送处理结果到提交者(用户)邮箱
        /// </summary>
        /// <param name="advice"></param>
        /// <param name="reply"></param>
        /// <param name="adviceType"></param>
        /// <returns></returns>
        public bool SendResultMailToAdvicer(Advice advice, AdviceReply reply, AdviceType adviceType, AdviceEmailConfigInfo info)
        {
            try
            {
                if (adviceType == null)
                {
                    adviceType = AdviceTypeHelper.GetAdviceType(advice.TypeID);
                }

                string     userEmail    = advice.Email;
                MailHelper mailHelper   = GetMailHelper(adviceType);
                string     siteFullName = GeneralConfigs.GetConfig().SiteFullName;
                //string body = "尊敬的{0}先生/女士:您好!<br><br>";
                //body += "我们于{1}接收到您的反馈信息({2}),有关部门已做出处理,现答复如下:<br><br>";
                //body += "{3}<br><br>";
                //body += "感谢您的参与!<br>";
                //body += "{4}";
                //body = string.Format(body, advice.Name, advice.CreateDate.ToLongDateString(), advice.Title, reply.Content, GeneralConfigs.GetConfig().SiteFullName+ "|" + SiteConfigs.GetConfig().RootUrl);
                info.EmailContent = info.EmailContent.Replace("{UserName}", advice.Name).Replace("{DateTime}", advice.CreateDate.ToLongDateString()).Replace("{Title}", advice.Title).Replace("{EmailContent}", reply.Content).Replace("{SiteFullName}", GeneralConfigs.GetConfig().SiteFullName);
                string subject  = info.EmailTitle.Replace("{SiteTitle}", GeneralConfigs.GetConfig().SiteTitle.Trim().Replace("\n", "")).Replace("{AdviceTitle}", advice.Title);
                string priority = "Normal";//过期提示,优先级别

                mailHelper.Send(userEmail, mailHelper.AdminEmail, subject, info.EmailContent, priority);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 获取回复对象
        /// </summary>
        /// <param name="id"></param>
        /// <param name="fields"></param>
        /// <returns></returns>
        public AdviceReply GetAdviceReply(string id, string[] fields)
        {
            AdviceReply        ar    = new AdviceReply();
            Criteria           c     = new Criteria(CriteriaType.Equals, "ID", id);
            List <AdviceReply> aList = Assistant.List <AdviceReply>(c, null, 0, 0, fields);

            if (aList != null && aList.Count > 0)
            {
                ar = aList[0];
            }
            return(ar);
        }
        /// <summary>
        /// 页面加载xml数据
        /// </summary>
        void LoadAdvices()
        {
            List <AdviceReply> adviceReply = new List <AdviceReply>();
            string             root        = Server.MapPath("/_Data/ErrorEmail/");

            if (Directory.Exists(root))
            {
                DirectoryInfo dir = new DirectoryInfo(root);

                FileInfo[] files = dir.GetFiles("*.xml");

                for (int i = files.Length - 1; i >= 0; i--)
                {
                    FileInfo    file   = files[i];
                    AdviceReply ar     = new AdviceReply();
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(file.FullName);
                    XmlNode node = xmlDoc.SelectSingleNode("/root/infoSubject");
                    ar.Title      = We7Helper.Base64Decode(node.InnerText);
                    node          = xmlDoc.SelectSingleNode("/root/infoBody");
                    ar.Content    = We7Helper.Base64Decode(node.InnerText);
                    node          = xmlDoc.SelectSingleNode("/root/infoUser");
                    ar.UserEmail  = We7Helper.Base64Decode(node.InnerText);
                    node          = xmlDoc.SelectSingleNode("/root/infoTime");
                    ar.CreateDate = Convert.ToDateTime(node.InnerText);
                    ar.MailFile   = file.Name;
                    adviceReply.Add(ar);
                }
            }
            if (adviceReply != null)
            {
                Pager.RecorderCount = adviceReply.Count;
            }
            else
            {
                Pager.RecorderCount = 0;
            }
            if (Pager.Count < 0)
            {
                Pager.PageIndex = 0;
            }
            Pager.FreshMyself();
            if (Pager.Count <= 0)
            {
                DataGridView.DataSource = null;
                DataGridView.DataBind();
                return;
            }
            DataGridView.DataSource = adviceReply.GetRange(Pager.Begin, Pager.Count);
            DataGridView.DataBind();
        }
        public string GetUserName(string adviceID)
        {
            string userID   = "";
            string userName = "";

            if (adviceID != "")
            {
                AdviceReply ar = AdviceReplyHelper.GetAdviceReplyByAdviceID(adviceID);
                if (ar != null)
                {
                    userID = ar.UserID;
                }
            }
            if (userID != "" && userID != null)
            {
                userName = AccountHelper.GetAccount(userID, new string[] { "LoginName" }).LoginName;
            }
            return(userName);
        }
Esempio n. 8
0
        /// <summary>
        /// 邮件转交操作
        /// </summary>
        public void ToOtherReplyUser()
        {
            AdviceReply adviceReply = new AdviceReply();

            //adviceReply.UserID = UserIDTextBox.Text;
            adviceReply.UserID = ddlToOtherHandleUserID.SelectedValue;

            if (AdviceID.Trim() != "")
            {
                adviceReply.AdviceID = AdviceID;
                AdviceReply ar = AdviceReplyHelper.GetAdviceReplyByAdviceID(AdviceID);
                if (ar == null)
                {
                    AdviceReplyHelper.AddAdviceReply(adviceReply);
                }
            }
            List <string> list = new List <string>();

            list.Add(AdviceID);
            //发送邮件给办理人
            AdviceHelper.SendMailToHandler(list, adviceReply.UserID, AdviceTypeID, txtRemark.Text, rblPriority.SelectedValue);
        }
Esempio n. 9
0
        /// <summary>
        /// 操作信息
        /// </summary>
        /// <returns></returns>
        protected void OperationInfo(string adviceID)
        {
            try
            {
                AdviceReply adviceReply = new AdviceReply();
                adviceReply.AdviceID = adviceID;
                adviceReply.Content  = ReplayContent.InnerHtml;
                adviceReply.UserID   = AccountID;
                adviceReply.Title    = EmailTitleLabel.Text;
                adviceReply.MailBody = InfoRawManage.InnerText;
                AdviceReplyHelper.AddAdviceReply(adviceReply);
                AdviceHelper.UpdateAdviceType(adviceID, (int)AdviceState.Finished);

                Advice a = AdviceHelper.GetAdvice(adviceID);
                if (a.State == (int)AdviceState.Checking)
                {
                    AdviceHelper.UpdateAdviceProcess(adviceID, "1", AdviceState.Checking);
                    Processing ap = ProcessHelper.CreateAdviceProcess(adviceID, AccountID);
                    ProcessHelper.UpdateAdviceProcess(ap, a);
                    InsertArticleProcessHistory(adviceID);
                }
                else if (a.State == (int)AdviceState.Checking && a.ProcessState == ((int)ProcessStates.Unaudit).ToString())
                {
                    AdviceHelper.UpdateAdviceProcess(adviceID, ((int)ProcessStates.FirstAudit).ToString(), AdviceState.Checking);
                    Processing ap = ProcessHelper.GetAdviceProcess(a);
                    ap.CurLayerNO       = "1";
                    ap.ProcessAccountID = AccountID;
                    ap.ProcessDirection = "1";
                    ap.Remark           = ReplayContent.InnerText;
                    ProcessHelper.UpdateAdviceProcess(ap, a);
                    InsertArticleProcessHistory(adviceID);
                }
            }
            catch (Exception)
            {
                Messages.ShowMessage(" :( 信息操作失败!");
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 操作信息
        /// </summary>
        /// <returns></returns>
        protected bool OperationInfo(AdviceState state, string direction, bool saveReply)
        {
            try
            {
                AdviceType adviceType = AdviceTypeHelper.GetAdviceType(AdviceTypeID);
                Advice     a          = ThisAdvice;

                //处理反馈回复信息
                AdviceReply adviceReply = null;
                if (saveReply)
                {
                    adviceReply            = new AdviceReply();
                    adviceReply.AdviceID   = AdviceID;
                    adviceReply.Content    = We7Helper.ConvertPageBreakFromVisualToChar(ReplyContentTextBox.Value);
                    adviceReply.Suggest    = ToAdviceTextBox.Text;
                    adviceReply.UserID     = AccountID;
                    adviceReply.CreateDate = DateTime.Now;
                    adviceReply.Updated    = DateTime.Now;

                    //增加回复数
                    a.ReplyCount += 1;
                }

                //更新反馈信息
                a.Updated      = DateTime.Now;
                a.ToHandleTime = DateTime.Now;
                if (UserIDTextBox.Text.Trim() != "")
                {
                    a.ToOtherHandleUserID = UserIDTextBox.Text.ToString();
                }
                else
                {
                    a.ToOtherHandleUserID = AccountID;
                }
                a.State = (int)state;

                //处理反馈进度
                Advice     oldAdvice = AdviceHelper.GetAdvice(AdviceID);
                Processing ap        = ProcessHelper.GetAdviceProcess(oldAdvice);
                ap.UpdateDate       = DateTime.Now;
                ap.ProcessAccountID = AccountID;
                ap.ApproveName      = AccountHelper.GetAccount(AccountID, new string[] { "LastName" }).LastName;
                ap.ProcessDirection = direction.ToString();
                ap.Remark           = ToAdviceTextBox.Text;
                if (state == AdviceState.WaitHandle)
                {
                    a.ProcessState = ((int)state).ToString();
                    string myText   = "请 {0} 办理一下反馈“{1}”。";
                    string userName = AccountHelper.GetAccount(UserIDTextBox.Text, new string[] { "LastName" }).LastName;
                    ap.Remark = string.Format(myText, userName, a.Title) + "<br>" + ap.Remark;
                }
                switch (state)
                {
                case AdviceState.All:
                    break;

                case AdviceState.WaitAccept:
                case AdviceState.WaitHandle:
                case AdviceState.Finished:
                    break;

                case AdviceState.Checking:
                    int auditLevel = 0;
                    if (We7Helper.IsNumber(a.ProcessState))
                    {
                        auditLevel = int.Parse(a.ProcessState);
                    }
                    if (auditLevel < 0)
                    {
                        auditLevel = 0;
                    }
                    auditLevel += 1;
                    if (auditLevel > adviceType.FlowSeries)
                    {
                        a.ProcessState = ((int)AdviceState.Finished).ToString();
                        a.State        = (int)AdviceState.Finished;
                        a.MustHandle   = 0;
                    }
                    else
                    {
                        a.ProcessState = auditLevel.ToString();
                    }
                    break;

                default:
                    break;
                }
                ap.CurLayerNO  = a.ProcessState;
                ap.AdviceState = (AdviceState)a.State;

                AdviceHelper.OperationAdviceInfo(adviceReply, oldAdvice, ap);
                if (state == AdviceState.WaitHandle)
                {
                    AdviceHelper.UpdateAdvice(a, new string[] { "ToHandleTime", "ToOtherHandleUserID" });
                }

                if (state == AdviceState.Finished)
                {
                    AdviceEmailConfigs    adviceEmailConfigs = new AdviceEmailConfigs();
                    AdviceEmailConfigInfo info = adviceEmailConfigs["ReplyUser"];
                    AdviceHelper.SendResultMailToAdvicer(a, adviceReply, adviceType, info);
                }
                return(true);
            }
            catch (Exception ex)
            {
                Messages.ShowError(" 信息操作失败!原因:" + ex.Message);
                return(false);
            }
        }
Esempio n. 11
0
        /// <summary>
        ///  操作按钮状态初始化
        /// </summary>
        private void InitializeButtons()
        {
            bool canAccept = false; //反馈受理
            bool canAdmin  = false; //反馈管理
            bool canHandle = false; //反馈办理
            bool canRead   = false; //查看
            bool canCheck  = false; //审核

            AdviceType adviceType = AdviceTypeHelper.GetAdviceType(AdviceTypeID);

            //模型不为空,并且是用户登陆时验证是否具有权限
            if (AdviceTypeID != null && !We7Helper.IsEmptyID(AccountID))
            {
                List <string> contents = AccountHelper.GetPermissionContents(AccountID, AdviceTypeID);
                canAccept = contents.Contains("Advice.Accept");
                canAdmin  = contents.Contains("Advice.Admin");
                canHandle = contents.Contains("Advice.Handle");
                canRead   = contents.Contains("Advice.Read");

                //canAccept = AccountHelper.HavePermission(AccountID, AdviceTypeID, "Advice.Accept");
                //canAdmin = AccountHelper.HavePermission(AccountID, AdviceTypeID, "Advice.Admin");
                //canHandle = AccountHelper.HavePermission(AccountID, AdviceTypeID, "Advice.Handle");
                //canRead = AccountHelper.HavePermission(AccountID, AdviceTypeID, "Advice.Read");
                if (adviceType.FlowSeries > 0)
                {
                    canCheck = true;
                }
            }
            else
            {
                canAccept = canAdmin = canCheck = canHandle = true;
            }

            canCheck  = canCheck && (ThisAdvice.State == (int)AdviceState.Checking);
            canHandle = canHandle && (ThisAdvice.State == (int)AdviceState.WaitHandle || ThisAdvice.State == (int)AdviceState.WaitAccept && adviceType.StateText == "直接办理");
            canAccept = canAccept && (ThisAdvice.State == (int)AdviceState.WaitAccept);

            TransactHyperLink.Visible   = canHandle && (adviceType.StateText != "上报办理");                //办理
            ToOtherHyperLink.Visible    = (canHandle || canAccept) && (adviceType.StateText != "直接办理"); //转办 模型类别判断
            trToOtherHandleUser.Visible = ToOtherHyperLink.Visible;                                     //是否转办
            trHandleRemark.Visible      = ToOtherHyperLink.Visible;                                     //转办备注
            trPriority.Visible          = ToOtherHyperLink.Visible;                                     //邮件优先级

            AuditReportHyperLink.Visible = canHandle && (adviceType.StateText == "上报办理");               //上报审核
            ReportHyperLink.Visible      = canCheck;
            chbSendEmail.Visible         = canCheck;
            fontSendEmail.Visible        = canCheck;
            ReturnHyperLink.Visible      = (canHandle || canCheck) && (adviceType.StateText != "直接办理");//退回重办 办理类别
            ReplyContentTextBox.Visible  = canHandle || ThisAdvice.State == (int)AdviceState.Checking;
            AdminHandHyperLink.Visible   = (canHandle || canAccept) && (ThisAdvice.State != (int)AdviceState.Finished);

            switch (adviceType.StateText)
            {
            case "转交办理":

                if (canHandle)
                {
                    ToAdviceTextBox.Visible = true;
                    toAdviceLabel.Text      = "转交备注:";
                }
                break;

            case "上报办理":
                switch (ThisAdvice.State)
                {
                case (int)AdviceState.Checking:

                    toAdviceLabel.Text      = "审核意见:";
                    ToAdviceTextBox.Visible = true;
                    break;

                case (int)AdviceState.WaitHandle:
                    toAdviceLabel.Visible   = false;
                    ToAdviceTextBox.Visible = false;

                    break;

                case (int)AdviceState.WaitAccept:

                    toAdviceLabel.Visible   = false;
                    ToAdviceTextBox.Visible = false;
                    break;
                }

                break;

            case "直接办理":
                ToAdviceTextBox.Visible = false;
                break;

            default:
                break;
            }

            AdviceReply reply = AdviceReplyHelper.GetAdviceReplyByAdviceID(AdviceID);

            if (reply != null)
            {
                if (reply.Content != null && reply.Content != "")
                {
                    Account accountModel      = AccountHelper.GetAccount(ThisAdvice.ToOtherHandleUserID, new string[] { "LastName", "DepartmentID" });
                    string  departmentAndUser = "";
                    if (accountModel != null)
                    {
                        Department dp = AccountHelper.GetDepartment(accountModel.DepartmentID, new string[] { "Name" });
                        if (dp != null && !string.IsNullOrEmpty(dp.Name))
                        {
                            departmentAndUser = "******" + dp.Name + " - " + accountModel.LastName;
                        }
                        else
                        {
                            departmentAndUser = "******" + accountModel.LastName;
                        }
                    }

                    if (ReplyContentTextBox.Visible)
                    {
                        ReplyContentTextBox.Value = We7Helper.ConvertPageBreakFromCharToVisual(reply.Content);
                    }
                    else
                    {
                        replyDiv.InnerHtml = We7Helper.ConvertPageBreakFromCharToVisual(reply.Content) + departmentAndUser;
                    }
                }
            }
        }
Esempio n. 12
0
 /// <summary>
 /// 更新一个回复
 /// </summary>
 /// <param name="adviceReply"></param>
 /// <param name="fields"></param>
 public void UpdateReplyByAdviceID(AdviceReply adviceReply, string[] fields)
 {
     Assistant.Update(adviceReply, fields);
 }
Esempio n. 13
0
        /// <summary>
        /// 删除一个回复
        /// </summary>
        /// <param name="id"></param>
        public void DeleteAdviceReply(string id)
        {
            AdviceReply ar = GetAdviceReply(id);

            Assistant.Delete(ar);
        }
Esempio n. 14
0
        /// <summary>
        /// 根据回复邮件更新反馈回复
        /// 此方法仅用于反射环境
        /// </summary>
        /// <param name="subject">标题</param>
        /// <param name="sn">反馈信息流水号</param>
        /// <param name="body">回复内容</param>
        /// <param name="replyTime">回复时间</param>
        /// <returns></returns>
        public bool UpdateReplyByEmail(string subject, string sn, string body, string replyTime, string rawManage, string user, string stateText)
        {
            int           start = sn.IndexOf("#");
            HelperFactory hf    = (HelperFactory)HttpContext.Current.Application[HelperFactory.ApplicationID];

            Assistant = hf.Assistant;
            AdviceReplyHelper arh = new AdviceReplyHelper();

            arh.Assistant = hf.Assistant;
            string adviceSN = sn.Remove(start, 1);

            if (adviceSN != "")
            {
                int intAdviceSN = 0;
                if (!int.TryParse(adviceSN, out intAdviceSN))
                {
                    return(false);
                }
                Criteria c = new Criteria(CriteriaType.Equals, "SN", adviceSN);
                if (Assistant.Count <Advice>(c) < 0)
                {
                    return(false);
                }
                else
                {
                    List <Advice> advice = Assistant.List <Advice>(c, null);
                    for (int i = 0; i < advice.Count; i++)
                    {
                        if (advice != null)
                        {
                            //处理反馈回复信息
                            AdviceReply adviceReply = new AdviceReply();
                            adviceReply.AdviceID = advice[i].ID;
                            adviceReply.Title    = subject;
                            adviceReply.Content  = body;
                            Account account = AccountHelper.GetAccountByEmail(user);
                            if (account == null)
                            {
                                return(true);
                            }
                            adviceReply.UserID     = account.ID;
                            adviceReply.MailBody   = rawManage;
                            adviceReply.CreateDate = DateTime.Now;
                            adviceReply.Updated    = DateTime.Now;

                            //更新反馈信息
                            advice[i].ReplyCount         += 1;//增加回复数
                            advice[i].Updated             = DateTime.Now;
                            advice[i].ToHandleTime        = Convert.ToDateTime(replyTime);
                            advice[i].ToOtherHandleUserID = adviceReply.UserID;
                            if (stateText == "上报办理")
                            {
                                advice[i].State        = (int)AdviceState.Checking;
                                advice[i].ProcessState = ((int)AdviceState.Checking).ToString();
                            }
                            else
                            {
                                advice[i].State        = (int)AdviceState.Finished;
                                advice[i].ProcessState = ((int)ProcessStates.Finished).ToString();
                            }
                            advice[i].IsRead = 1;

                            //处理反馈进度
                            Processing ap = ProcessingHelper.GetAdviceProcess(advice[i]);
                            if (ap == null)
                            {
                                ap                  = new Processing();
                                ap.ObjectID         = advice[i].ID;
                                ap.CurLayerNO       = "1";
                                ap.ProcessAccountID = adviceReply.UserID;
                                ap.ProcessDirection = "1";
                                ap.Remark           = "";
                                ap.CreateDate       = DateTime.Now;
                            }
                            ap.UpdateDate       = DateTime.Now;
                            ap.ProcessAccountID = adviceReply.UserID;
                            ap.ProcessDirection = advice[i].ProcessDirection = "1";

                            #region 孟添加
                            AdviceType adviceType = AdviceTypeHelper.GetAdviceType(advice[i].TypeID);
                            switch (advice[i].State)
                            {
                            case (int)AdviceState.All:
                                break;

                            case (int)AdviceState.WaitAccept:
                            case (int)AdviceState.WaitHandle:
                            case (int)AdviceState.Finished:
                                break;

                            case (int)AdviceState.Checking:
                                int auditLevel = 0;
                                if (We7Helper.IsNumber(advice[i].ProcessState))
                                {
                                    auditLevel = int.Parse(advice[i].ProcessState);
                                }
                                if (auditLevel < 0)
                                {
                                    auditLevel = 0;
                                }
                                auditLevel += 1;
                                if (auditLevel > adviceType.FlowSeries)
                                {
                                    advice[i].ProcessState = ((int)AdviceState.Finished).ToString();
                                    advice[i].State        = (int)AdviceState.Finished;
                                    advice[i].MustHandle   = 0;
                                }
                                else
                                {
                                    advice[i].ProcessState = auditLevel.ToString();
                                }
                                break;

                            default:
                                break;
                            }
                            ap.CurLayerNO = advice[i].ProcessState;
                            #endregion

                            OperationAdviceInfo(adviceReply, advice[i], ap);
                            if (advice[i].State == (int)AdviceState.Finished)
                            {
                                AdviceEmailConfigs    adviceEmailConfigs = new AdviceEmailConfigs();
                                AdviceEmailConfigInfo info = adviceEmailConfigs["ReplyUser"];
                                SendResultMailToAdvicer(advice[i], adviceReply, null, info);
                            }
                            if (stateText == "上报办理")
                            {
                                advice[i].State = (int)AdviceState.Checking;
                                AdviceReplyHelper.UpdateReplyByAdviceID(adviceReply, null);
                            }
                            else
                            {
                                advice[i].State = (int)AdviceState.Finished;
                            }
                            UpdateAdvice(advice[i], new string[] { "IsRead", "State", "ProcessState" });
                        }
                    }
                    return(true);
                }
            }
            else
            {
                return(false);
            }
        }
Esempio n. 15
0
        /// <summary>
        /// 根据回复邮件更新反馈回复
        /// 此方法仅用于反射环境
        /// </summary>
        /// <param name="subject">标题</param>
        /// <param name="sn">反馈信息流水号</param>
        /// <param name="body">回复内容</param>
        /// <param name="replyTime">回复时间</param>
        /// <returns></returns>
        public bool UpdateReplyByEmail(string subject, string sn, string body, string replyTime, string rawManage, string user)
        {
            int           start = sn.IndexOf("#");
            HelperFactory hf    = (HelperFactory)HttpContext.Current.Application[HelperFactory.ApplicationID];

            Assistant = hf.Assistant;
            AdviceReplyHelper arh = new AdviceReplyHelper();

            arh.Assistant = hf.Assistant;
            string adviceSN = sn.Remove(start, 1);

            if (adviceSN != "")
            {
                int intAdviceSN = 0;
                if (!int.TryParse(adviceSN, out intAdviceSN))
                {
                    return(false);
                }
                Criteria c = new Criteria(CriteriaType.Equals, "SN", adviceSN);
                if (Assistant.Count <Advice>(c) < 0)
                {
                    return(false);
                }
                else
                {
                    List <Advice> advice = Assistant.List <Advice>(c, null);
                    for (int i = 0; i < advice.Count; i++)
                    {
                        if (advice != null)
                        {
                            //处理反馈回复信息
                            AdviceReply adviceReply = new AdviceReply();
                            adviceReply.AdviceID = advice[i].ID;
                            adviceReply.Title    = subject;
                            adviceReply.Content  = body;
                            Account account = AccountHelper.GetAccountByEmail(user);
                            if (account == null)
                            {
                                return(true);
                            }
                            adviceReply.UserID     = account.ID;
                            adviceReply.MailBody   = rawManage;
                            adviceReply.CreateDate = DateTime.Now;
                            adviceReply.Updated    = DateTime.Now;

                            //更新反馈信息
                            advice[i].ReplyCount         += 1;//增加回复数
                            advice[i].Updated             = DateTime.Now;
                            advice[i].ToHandleTime        = Convert.ToDateTime(replyTime);
                            advice[i].ToOtherHandleUserID = adviceReply.UserID;
                            advice[i].State  = (int)AdviceState.Finished;
                            advice[i].IsRead = 1;

                            //处理反馈进度
                            Processing ap = ProcessingHelper.GetAdviceProcess(advice[i]);
                            if (ap == null)
                            {
                                ap                  = new Processing();
                                ap.ObjectID         = advice[i].ID;
                                ap.CurLayerNO       = "1";
                                ap.ProcessAccountID = adviceReply.UserID;
                                ap.ProcessDirection = "1";
                                ap.Remark           = "";
                                ap.CreateDate       = DateTime.Now;
                            }
                            ap.UpdateDate       = DateTime.Now;
                            ap.ProcessAccountID = adviceReply.UserID;
                            //ap.Remark = adviceReply.Content;
                            ap.ProcessDirection    = advice[i].ProcessDirection = "1";
                            advice[i].ProcessState = ((int)ProcessStates.Finished).ToString();
                            ap.CurLayerNO          = advice[i].ProcessState;
                            OperationAdviceInfo(adviceReply, advice[i], ap);

                            if (advice[i].State == (int)AdviceState.Finished)
                            {
                                AdviceEmailConfigs    adviceEmailConfigs = new AdviceEmailConfigs();
                                AdviceEmailConfigInfo info = adviceEmailConfigs["ReplyUser"];
                                SendResultMailToAdvicer(advice[i], adviceReply, null, info);
                            }
                            UpdateAdvice(advice[i], new string[] { "IsRead" });
                        }
                    }
                    return(true);
                }
            }
            else
            {
                return(false);
            }
        }