/// <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); }
//添加投诉 /// <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); }
/// <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); } }
private ECCentral.BizEntity.Customer.CustomerBasicInfo GetCustomerBaseInfo(int customerSysNo) { return(ExternalDomainBroker.GetCustomerInfo(customerSysNo).BasicInfo); }