コード例 #1
0
ファイル: SOService_Complain.cs プロジェクト: sanlonezhang/ql
        public SOComplaintInfo CreateComplain(SOComplaintCotentInfo info)
        {
            SOComplaintInfo soComplaintInfo = null;

            if (info != null)
            {
                soComplaintInfo = ObjectFactory <SOComplainAppService> .Instance.AddSOComplaintInfo(info);
            }
            return(soComplaintInfo);
        }
コード例 #2
0
        //添加投诉
        /// <summary>
        /// 添加投诉
        /// </summary>
        /// <param name="info">请求的实体</param>
        public virtual SOComplaintInfo Create(SOComplaintCotentInfo info)
        {
            if (info.Subject != null)
            {
                info.Subject = info.Subject.Trim();
            }
            SOInfo soEntity = null;

            if (info.SOSysNo.HasValue)
            {
                soEntity = ObjectFactory <SOProcessor> .Instance.GetSOBySOSysNo(info.SOSysNo.Value);

                if (null == soEntity)
                {
                    BizExceptionHelper.Throw("SO_SOIsNotExist");
                }
                info.CustomerSysNo = soEntity.BaseInfo.CustomerSysNo;
                //如果传入的邮箱和电话都是空的,需要获取用户邮箱和电话
                if (string.IsNullOrEmpty(info.CustomerPhone) && string.IsNullOrEmpty(info.CustomerEmail))
                {
                    CustomerInfo customerInfo = ExternalDomainBroker.GetCustomerInfo(info.CustomerSysNo.Value);
                    info.CustomerEmail = customerInfo.BasicInfo.Email;
                    info.CustomerPhone = customerInfo.BasicInfo.Phone;
                }
            }
            if (string.IsNullOrEmpty(info.ComplainSourceType))
            {
                info.ComplainSourceType = AppSettingHelper.ComplainSourceTypeDefault;
            }

            object          oldComplainID   = null;
            SOComplaintInfo soComplaintInfo = new SOComplaintInfo();

            soComplaintInfo.ComplaintCotentInfo = info;
            if (ObjectFactory <ISOComplainDA> .Instance.IsSameCaseExist(info, ref oldComplainID))
            {
                soComplaintInfo.ProcessInfo.Status       = SOComplainStatus.Abandoned;
                soComplaintInfo.ProcessInfo.ComplainNote = ResourceHelper.Get("SO_Complain_SameOrder", oldComplainID);
            }
            if (!string.IsNullOrEmpty(soComplaintInfo.ComplaintCotentInfo.ComplainContent))
            {
                soComplaintInfo.ComplaintCotentInfo.ComplainContent = ResourceHelper.Get("SO_Complain_ContentFormat"
                                                                                         , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + "\r\n"
                                                                      + soComplaintInfo.ComplaintCotentInfo.ComplainContent;
            }

            soComplaintInfo.ComplaintCotentInfo.ComplainTime = DateTime.Now;

            m_da.InsertComplainMaster(soComplaintInfo);

            AddHistory(soComplaintInfo, ReplyOperatorType.Add);

            return(soComplaintInfo);
        }
コード例 #3
0
        /// <summary>
        /// 是否已存在相同的Case
        /// </summary>
        /// <param name="info">投诉内容实体</param>
        /// <param name="oldComplainID">已存在的相关投诉</param>
        /// <returns>如果存在返回真,否则返回假</returns>
        public bool IsSameCaseExist(SOComplaintCotentInfo info, ref object oldComplainID)
        {
            // 距当前时间一个工作日的时间点
            DateTime          tmpStarttime = CommonUtility.AddWorkMinute(DateTime.Now, -1 * 60 * 9);
            CustomDataCommand cmd          = DataCommandManager.CreateCustomDataCommandFromConfig("IsSameComplainCaseExist");

            cmd.AddInputParameter("@SOSysNo", DbType.Int32, info.SOSysNo);
            cmd.AddInputParameter("@CustomerSysno", DbType.Int32, info.CustomerSysNo);
            cmd.AddInputParameter("@Subject", DbType.String, info.Subject.Trim());
            cmd.AddInputParameter("@StartTime", DbType.DateTime, tmpStarttime);
            cmd.AddInputParameter("@CompanyCode", DbType.AnsiStringFixedLength, info.CompanyCode);
            oldComplainID = cmd.ExecuteScalar();
            return(oldComplainID != null);
        }
コード例 #4
0
        /// <summary>
        /// 转换投诉
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual void TransComplaint(int callingSysNO, SOComplaintCotentInfo complaintInfo)
        {
            CallsEvents entity = ObjectFactory <CallsEventsProcessor> .Instance.Load(callingSysNO);

            entity.ReferenceType = CallingReferenceType.Complain;
            using (TransactionScope scope = new TransactionScope())
            {
                complaintInfo.CompanyCode = entity.CompanyCode;
                entity.ReferenceSysNo     = ExternalDomainBroker.AddComplain(complaintInfo).SysNo;
                ObjectFactory <CallsEventsProcessor> .Instance.UpdateReference(entity);

                ObjectFactory <CallsEventsProcessor> .Instance.CloseCallsEvents(entity);

                scope.Complete();
            }
        }
コード例 #5
0
 /// <summary>
 /// 创建投诉信息
 /// </summary>
 /// <param name="info"></param>
 public virtual SOComplaintInfo AddSOComplaintInfo(SOComplaintCotentInfo info)
 {
     return(ComplainProcessor.Create(info));
 }
コード例 #6
0
        //public SOStatus GetSOStatus(int soSysNo)
        //{
        //    throw new NotImplementedException();
        //}

        public SOComplaintCotentInfo AddComplain(SOComplaintCotentInfo info)
        {
            return(ObjectFactory <SOComplainProcessor> .Instance.Create(info).ComplaintCotentInfo);
        }
コード例 #7
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            var vm = addContext.DataContext as SOInternalMemoInfoVM;

            //验证控件输入
            ValidationManager.Validate(addContext);
            if (vm.ValidationErrors.Count > 0)
            {
                return;
            }

            var req = vm.ConvertVM <SOInternalMemoInfoVM, SOInternalMemoInfo>();

            req.LogTime         = DateTime.Now;
            req.RemindTime_Date = dpDate.SelectedDate;
            req.RemainTime_Time = dpTime.Value;

            (new SOInternalMemoFacade(CPApplication.Current.CurrentPage)).Create(req, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                else
                {
                    //判断是否添加投诉
                    //添加新的投诉单
                    if (cbAddComplain.IsChecked.Value)
                    {
                        //获取时间需要异步
                        DateTimeHelper.GetServerTimeNow(ConstValue.DomainName_SO, p => {
                            var newComplain = new SOComplaintCotentInfo()
                            {
                                SOSysNo      = req.SOSysNo,
                                ComplainType = cmbComplainType.SelectedValue.ToString(),
                                //类型转换为电话(默认)
                                Subject         = string.Format(ResSOInternalMemo.Msg_ComplainSubject, req.SOSysNo, p),
                                ComplainContent = txtNote.Text, //内容和跟进日志内容相同
                            };
                            (new SOComplainFacade(CPApplication.Current.CurrentPage)).Create(newComplain, (cobj, cargs) =>
                            {
                                if (cargs.FaultsHandle())
                                {
                                    //创建失败
                                    return;
                                }
                                if (RefreshComplian != null)
                                {
                                    RefreshComplian();
                                }
                            });
                        });
                    }

                    CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOInternalMemo.Msg_publicMemoAddNewInfo);
                    if (RefreshLog != null)
                    {
                        RefreshLog();
                    }
                }
            });
        }
コード例 #8
0
        public void CallingToComplain(SOComplaintCotentInfo request, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            string relativeUrl = "/CustomerService/CallsEvents/CallingToComplain";

            restClient.Create(relativeUrl, request, callback);
        }
コード例 #9
0
 public void Create(SOComplaintCotentInfo req, EventHandler <RestClientEventArgs <dynamic> > callback)
 {
     req.CompanyCode = CPApplication.Current.CompanyCode;
     restClient.Create("/SOService/SO/CreateComplain", req, callback);
 }
コード例 #10
0
 public void CallingToComplain(SOComplaintCotentInfo request)
 {
     ObjectFactory <CallsEventsAppService> .Instance.CallingToComplaint(request);
 }