Ejemplo n.º 1
0
        /// <summary>
        /// 发送投诉邮件通知
        /// </summary>
        /// <param name="complainSysNo">投诉单号</param>
        public void SendMain(int complainSysNo)
        {
            var info = GetInfo(complainSysNo);

            //更新操作人
            info.ProcessInfo.OperatorSysNo = ServiceContext.Current.UserSysNo;
            m_da.UpdateCompainOperatorUser(info.ProcessInfo);

            //发送邮件
            KeyValueVariables vars = new KeyValueVariables();

            vars.Add("Title", info.ComplaintCotentInfo.Subject);
            vars.Add("SysNo", info.ComplaintCotentInfo.SysNo);
            vars.Add("Content", info.ProcessInfo.ReplyContent.Replace(Environment.NewLine, "<BR/>"));

            CustomerInfo customerInfo = null;

            if (info.ComplaintCotentInfo.CustomerSysNo.HasValue)
            {
                customerInfo = ExternalDomainBroker.GetCustomerInfo(info.ComplaintCotentInfo.CustomerSysNo.Value);
            }

            if (customerInfo != null)
            {
                ExternalDomainBroker.SendExternalEmail(customerInfo.BasicInfo.Email, "SO_ReplyComplainEmail", vars, customerInfo.BasicInfo.FavoriteLanguageCode);
            }
            //写入日志
            AddHistory(info, ReplyOperatorType.SendMain);
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 如果是新客户的第一张订单,为推荐人增加经验值
        /// </summary>
        /// <param name="soInfo">订单</param>
        /// <param name="customerInfo">订单客户</param>
        public void AddExperienceByRecommend(SOInfo soInfo)
        {
            SOBaseInfo soBaseInfo = soInfo.BaseInfo;

            ECCentral.BizEntity.Customer.CustomerBasicInfo customerInfo = ExternalDomainBroker.GetCustomerInfo(soBaseInfo.CustomerSysNo.Value).BasicInfo;

            string companyCode = soInfo.CompanyCode;

            // 对象为空
            if (customerInfo == null || soInfo == null)
            {
                return;
            }

            // 该客户没有推荐人
            if (!customerInfo.RecommendedByCustomerSysNo.HasValue || customerInfo.RecommendedByCustomerSysNo.Value == 0)
            {
                return;
            }

            // 判断订单是否是该客户的第一张成功出库的订单
            if (!SODA.IsFirstSO(soInfo.SysNo.Value, soBaseInfo.CustomerSysNo.Value))
            {
                return;
            }


            // 获取推荐人信息
            ECCentral.BizEntity.Customer.CustomerBasicInfo rmdCustomerInfo = ExternalDomainBroker.GetCustomerInfo(customerInfo.RecommendedByCustomerSysNo.Value).BasicInfo;

            // 没有相应的推荐人信息
            if (rmdCustomerInfo == null)
            {
                return;
            }

            // 推荐人不能是客户自己
            if (customerInfo.CustomerSysNo == rmdCustomerInfo.CustomerSysNo)
            {
                return;
            }

            // 如果推荐人被禁用,不对其增加经验值
            if (rmdCustomerInfo.Status.Value == BizEntity.Customer.CustomerStatus.InValid)
            {
                return;
            }

            // 订单金额
            decimal soAmount = soBaseInfo.CashPay + soBaseInfo.PayPrice.Value + soBaseInfo.ShipPrice.Value + soBaseInfo.PremiumAmount.Value + soBaseInfo.PromotionAmount.Value;
            // 推荐人经验值的增加数量为订单金额的10%
            decimal rate          = AppSettingHelper.RecommendExperienceRatio;
            decimal addExperience = decimal.Round(soAmount * rate, 0); // 应该增加的经验值,4舍5入到整数

            // 如果增加值<1,
            if (addExperience > 0)
            {
                string logMemo = string.Format("SO#{0}:引荐新用户,首次购物成功,加经验值。", soInfo.SysNo);
                ExternalDomainBroker.AdjustCustomerExperience(rmdCustomerInfo.CustomerSysNo.Value, addExperience, BizEntity.Customer.ExperienceLogType.Recommend, logMemo);
                ObjectFactory <SOSendMessageProcessor> .Instance.RecommendCustomerAddExperienceSendMail(rmdCustomerInfo, customerInfo.CustomerID, addExperience);
            }
        }
Ejemplo n.º 4
0
 private ECCentral.BizEntity.Customer.CustomerBasicInfo GetCustomerBaseInfo(int customerSysNo)
 {
     return(ExternalDomainBroker.GetCustomerInfo(customerSysNo).BasicInfo);
 }