Beispiel #1
0
        public OperationResult <ConsultationShowData> GetReplyById(QueryRequest <int> query)
        {
            var result = new OperationResult <ConsultationShowData>();

            try
            {
                var data = ConsultationDA.GetReplyById(query);
                if (data == null)
                {
                    result.Message = "没有获取到留言信息";
                    return(result);
                }
                result.Body = data;

                result.ErrCode = 0;
                result.Message = "ok";
            }
            catch (Exception ex)
            {
                Logger.WriteException("GetReplyById", ex, query);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// 咨询回复发送邮件
        /// </summary>
        /// <param name="info"></param>
        public static void SendMailConsultReply(ProductConsultReplyInfo info, int productSysNo, string productName)
        {
            AsyncEmail email = new AsyncEmail();

            email.MailAddress = info.CustomerInfo.Email;
            email.CustomerID  = info.CustomerInfo.CustomerID;
            email.Status      = (int)EmailStatus.NotSend;
            email.ImgBaseUrl  = ConfigurationManager.AppSettings["CDNWebDomain"].ToString();

            string subject = string.Empty;

            email.MailBody = MailHelper.GetMailTemplateBody("ConsultReply", out subject);
            string productdetail = ConstValue.WebDomain + "/Product/Detail/" + productSysNo.ToString();

            ConsultationInfo consultInfo = ConsultationDA.GetProductConsult(info.ConsultSysNo);

            email.MailSubject = subject;
            email.MailBody    = email.MailBody.Replace("[ProducDetail]", productdetail)
                                .Replace("[ProductName]", productName)
                                .Replace("[ImgBaseUrl]", email.ImgBaseUrl)
                                .Replace("[WebBaseUrl]", ConstValue.WebDomain)
                                .Replace("[CurrentDateTime]", DateTime.Now.ToString("yyyy-MM-dd"))
                                .Replace("[Content]", StringUtility.RemoveHtmlTag(consultInfo.Content))
                                .Replace("[ReplyContent]", StringUtility.RemoveHtmlTag(info.Content));

            EmailDA.SendEmail(email);
        }
Beispiel #3
0
        /// <summary>
        /// 获取咨询列表
        /// </summary>
        /// <param name="queryInfo"></param>
        /// <returns></returns>
        public static PagedResult <ConsultationInfo> GetProductDetailConsultList(ConsultQueryInfo queryInfo)
        {
            PagedResult <ConsultationInfo> productConsultation = ConsultationDA.GetProductDetailConsultList(queryInfo);

            if (productConsultation != null)
            {
                foreach (var item in productConsultation)
                {
                    item.Content = CommonFacade.SetCannotOnlineWordsMask(item.Content);
                }
            }
            return(productConsultation);
        }
Beispiel #4
0
        /// <summary>
        /// 获取咨询
        /// </summary>
        /// <param name="queryInfo"></param>
        /// <returns></returns>
        public static ConsultationInfo GetConsultListBySysNo(ConsultQueryInfo queryInfo)
        {
            ConsultationInfo consultationInfo = ConsultationDA.GetConsultListBySysNo(queryInfo);

            if (consultationInfo != null)
            {
                consultationInfo.Content = CommonFacade.SetCannotOnlineWordsMask(consultationInfo.Content);
                if (consultationInfo.PagedReplyList != null)
                {
                    foreach (var reply in consultationInfo.PagedReplyList)
                    {
                        reply.Content = CommonFacade.SetCannotOnlineWordsMask(reply.Content);
                    }
                }
            }
            return(consultationInfo);
        }
Beispiel #5
0
        /// <summary>
        /// 发表咨询
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static bool CreateProductConsult(ConsultationInfo info)
        {
            string   cacheKey     = CommonFacade.GenerateKey("CreateProductConsult", info.CustomerSysNo.ToString(), info.ProductSysNo.ToString());
            DateTime now          = DateTime.Now;
            int      nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;

            if (HttpRuntime.Cache[cacheKey] != null)
            {
                int preTimePoint = (int)HttpRuntime.Cache[cacheKey];
                if (nowTimePoint - preTimePoint < 60)
                {
                    throw new BusinessException("很抱歉,您发表咨询的频率过快,请稍后再试。");
                }
            }
            else
            {
                HttpRuntime.Cache.Insert(cacheKey, 0, null, DateTime.Now.AddSeconds(CacheTime.Shortest), Cache.NoSlidingExpiration);
            }

            bool result = false;

            if (ConstValue.ProductConsultSwitch)
            {
                info.Status = "A";
            }
            else
            {
                info.Status = "O";
            }
            result = ConsultationDA.CreateProductConsult(info);

            if (result)
            {
                now          = DateTime.Now;
                nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;
                HttpRuntime.Cache[cacheKey] = nowTimePoint;
            }
            return(result);
        }
Beispiel #6
0
        public QueryResultList <ConsultationShowData> GetUserCon(QueryRequest <int> query)
        {
            var result = new QueryResultList <ConsultationShowData>();

            try
            {
                result = ConsultationDA.GetUserCon(query);
                if (result.Body == null)
                {
                    result.Body = new List <ConsultationShowData>();
                }
                result.ErrCode = 0;
                result.Message = "ok";
            }
            catch (Exception ex)
            {
                Logger.WriteException("GetUserCon", ex, query);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
Beispiel #7
0
        /// <summary>
        /// 发表咨询回复
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static bool CreateProductConsultReply(ProductConsultReplyInfo info, int productSysNo, string productName)
        {
            string   cacheKey     = CommonFacade.GenerateKey("CreateProductConsultReply", info.CustomerSysNo.ToString(), info.ConsultSysNo.ToString());
            DateTime now          = DateTime.Now;
            int      nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;

            if (HttpRuntime.Cache[cacheKey] != null)
            {
                int preTimePoint = (int)HttpRuntime.Cache[cacheKey];
                if (nowTimePoint - preTimePoint < 60)
                {
                    throw new BusinessException("很抱歉,您发表咨询的频率过快,请稍后再试。");
                }
            }
            else
            {
                HttpRuntime.Cache.Insert(cacheKey, 0, null, DateTime.Now.AddSeconds(CacheTime.Shortest), Cache.NoSlidingExpiration);
            }


            bool result = false;

            result = ConsultationDA.CreateProductConsultReply(info);
            //确认不需要发邮件
            //if (result)
            //{
            //    SendMailConsultReply(info, productSysNo, productName);
            //}
            if (result)
            {
                now          = DateTime.Now;
                nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;
                HttpRuntime.Cache[cacheKey] = nowTimePoint;
            }

            return(result);
        }
Beispiel #8
0
        public OperationResult SetConsultationStatus(RequestOperation <ConsultationData> request)
        {
            var result = new OperationResult <int>();

            try
            {
                if (request.Body.ConStatus <= 0 ||
                    request.Body.Sysno <= 0
                    )
                {
                    result.Message = "缺少请求参数";
                    return(result);
                }


                var data = ConsultationDA.SetConsultationStatus(request);

                if (data <= 0)
                {
                    result.ErrCode = 1;
                    result.Message = "更新留言状态失败";
                }
                else
                {
                    result.ErrCode = 0;
                    result.Message = "ok";
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("SetConsultationStatus", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
Beispiel #9
0
 public ConsultationInfo CheckProductConsultInfo(int customerSysNo)
 {
     return(ConsultationDA.CheckProductConsultInfo(customerSysNo));
 }
Beispiel #10
0
        public OperationResult <int> AddConsultation(RequestOperation <ConsultationData> request)
        {
            var result = new OperationResult <int>();

            try
            {
                if (String.IsNullOrEmpty(request.Body.Mobile) ||
                    String.IsNullOrEmpty(request.Body.Code) ||
                    String.IsNullOrEmpty(request.Body.Contents))
                {
                    result.Message = "缺少请求参数";
                    return(result);
                }

                var verifyCode = new MsgBP().VerifyCode(new RequestOperation <ReqMsgData>()
                {
                    Header = request.Header,
                    Body   = new ReqMsgData()
                    {
                        Mobile = request.Body.Mobile,
                        Code   = request.Body.Code
                    }
                });

                if (verifyCode.ErrCode != 0)
                {
                    result.Message = verifyCode.Message;
                    return(result);
                }

                request.Body.ConStatus = 1;
                var data = ConsultationDA.AddConsultation(request);

                if (data <= 0)
                {
                    result.ErrCode = 1;
                    result.Message = "添加留言信息失败";
                }
                else
                {
                    result.ErrCode = 0;
                    result.Message = "ok";

                    var law = new CustomerBP().GetCustomerById(new RequestOperation <int>()
                    {
                        Header = request.Header,
                        Body   = request.Body.ToLawyer
                    });

                    if (law.ErrCode == 0)
                    {
                        var send = new MsgBP().SendNotify(new RequestOperation <ReqMsgData>()
                        {
                            Header = request.Header,
                            Body   = new ReqMsgData()
                            {
                                MsgType = 2,
                                Mobile  = law.Body.Mobile
                            }
                        });
                        if (send.ErrCode != 0)
                        {
                            Logger.WriteException("AddConsultation3", new Exception(send.Message), request);
                        }
                    }
                    else
                    {
                        Logger.WriteException("AddConsultation2", new Exception(law.Message), request);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("AddConsultation", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }
Beispiel #11
0
        public OperationResult SetReply(RequestOperation <ConsultationReplyData> request)
        {
            var result = new OperationResult <int>();

            try
            {
                var data = ConsultationDA.SetReply(request);

                if (data <= 0)
                {
                    result.ErrCode = 1;
                    result.Message = "设置留言失败";
                }
                else
                {
                    //设置模板消息
                    if (request.Body.IsNotify)
                    {
                        var liveUser = ConsultationDA.GetConUser(request.Body.ConsultationID);
                        if (liveUser == null || String.IsNullOrEmpty(liveUser.WechatAccount))
                        {
                            Logger.WriteException("SetReply", new Exception("查找留言用户失败"), request);
                        }
                        else
                        {
                            var reqTemp = new RequestOperation <TemplateData>();
                            reqTemp.Header          = request.Header;
                            reqTemp.Body            = new TemplateData();
                            reqTemp.Body.topcolor   = "#1650a2";
                            reqTemp.Body.openid     = liveUser.WechatAccount;
                            reqTemp.Body.templateid = "Fkr0tQpC5fCQUJR4QjrMa4A7a6PtMaHu8-BKPPrcLa0";
                            reqTemp.Body.url        = "http://jc.webui.info/my-content.html?cid=" + request.Body.ConsultationID;
#if DEBUG
                            reqTemp.Body.templateid = "xSGVt_YQ8EZu8VD8yUoRqQJtKTkvjoRCOKqqY-8M4vQ";
                            reqTemp.Body.url        = "http://mango.webui.info/law/my-content.html?cid=" + request.Body.ConsultationID;
#endif
                            reqTemp.Body.propertys = new List <TemplatePropertyData>();
                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "first",
                                value = liveUser.LawyerName + "律师已经针对您的咨询做出了解答,部分信息如下"
                            });
                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "keyword1",
                                value = liveUser.LawyerName
                            });
                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "keyword2",
                                value = liveUser.Reply.Length > 30 ? liveUser.Reply.Substring(0, 30) + "..." : liveUser.Reply
                            });
                            //18857303534
                            string mobile = "";
                            if (!String.IsNullOrEmpty(liveUser.LawyerMobile) && liveUser.LawyerMobile.Length == 11)
                            {
                                mobile = liveUser.LawyerMobile.Substring(0, 3) + "****" + liveUser.LawyerMobile.Substring(6, 4);
                            }

                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "keyword3",
                                value = mobile
                            });

                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "keyword4",
                                value = ""
                            });
                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "keyword5",
                                value = liveUser.Contents.Length > 30 ? liveUser.Contents.Substring(0, 30) + "..." : liveUser.Contents
                            });
                            reqTemp.Body.propertys.Add(new TemplatePropertyData()
                            {
                                color = "#000000",
                                key   = "remark",
                                value = "查看更多详情"
                            });
                            var send = new WechatBP().SendTemplate(reqTemp);
                            if (send.ErrCode != 0)
                            {
                                Logger.WriteException("SetReply", new Exception(send.Message), reqTemp);
                            }
                        }
                    }

                    result.ErrCode = 0;
                    result.Message = "ok";
                }
            }
            catch (Exception ex)
            {
                Logger.WriteException("SetReply", ex, request);
                result.ErrCode = -1;
                result.Message = ex.Message;
            }

            return(result);
        }