private static void ProcessEachForRigister(Coupon master) { //获取注册未发放优惠券的顾客 (实时发)5分钟一次,造优惠券,发给顾客 string userType = "R"; List <Customer> customerList = CouponDA.GetRegisterUser(userType, master);//获取注册未发放优惠券的顾客 if (customerList == null || customerList.Count <= 0) { WriteLog("没能查询到符合条件的用户"); return; } WriteLog("查询到新注册的用户" + customerList.Count + "个"); master.BindStatus = "S";//字段 CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerList) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; codeEntity.CodeType = "C"; codeEntity.CustomerMaxFrequency = 1; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); #region sendMail MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@InDate", DateTime.Now.ToString("yyyy-MM-dd")) .Replace("@CustomerHello@", customer.CustomerID) .Replace("@CouponCode@", codeEntity.Code) .Replace("@nums@", "1") .Replace("@EndDateStr@", codeEntity.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } #endregion num++; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "注册送优惠券成功发送" + num + "个顾客,分别是:\r\n" + userList); }
private static void ProcessEachForTBVip_Old(Coupon master) { string userType = "Z"; //触发条件 master.BindStatus = "S"; //发放状态 List <Customer> customerList = CouponDA.GetAlipayCustomer(userType, master);//获取未发放优惠券的顾客 WriteLog("获取用户数" + customerList.Count + "个"); if (customerList.Count <= 0) { WriteLog("没有找到符合条件的支付宝金账户"); } else { using (TransactionScope ts = new TransactionScope()) { string message = string.Format("({0}){1} -- ", master.SysNo, master.CouponName); //通用型优惠券代码 CouponCode code = CouponDA.QueryBindingCode(master); CouponDA.UpdateBindRulesStatus(master); int index = 0; string userList = string.Empty; CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = code.Code; logEntity.CouponSysNo = master.SysNo; MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; foreach (Customer customer in customerList) { logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@Title@", master.CouponName) .Replace("@CustomerHello@", "您好,感谢您对大昌优品的支持。") .Replace("@CouponCode@", code.Code) .Replace("@nums@", code.CustomerMaxFrequency.ToString()) .Replace("@EndDateStr@", code.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } ++index; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "支付宝金账户优惠券成功发送" + index + "个顾客,分别是:\r\n" + userList); ts.Complete(); } } }
/// <summary> /// 支付宝金账户发放优惠券 /// </summary> /// <param name="item"></param> private static void ProcessEachForTBVip(Coupon master) { string userType = "Z"; //触发条件 master.BindStatus = "S"; //发放状态 List <Customer> customerList = null; customerList = CouponDA.GetAlipayCustomer(userType, master);//获取未发放优惠券的顾客 if (customerList.Count <= 0) { WriteLog("没有找到符合条件的支付宝金账户"); return; } //更新绑定状态为S CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerList) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); #region sendMail MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { customerMail.MailBody = ConstValues.MailTemplate.Replace("@InDate", DateTime.Now.ToString("yyyy-MM-dd")) .Replace("@CustomerHello@", customer.CustomerID) .Replace("@CouponCode@", codeEntity.Code) .Replace("@nums@", "1") .Replace("@EndDateStr@", codeEntity.EndDate.ToString("yyyy-MM-dd")); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } #endregion num++; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "支付宝金账户送优惠券成功发送" + num + "个顾客,分别是:\r\n" + userList); }
public static void InsertCustomerLog(CouponCodeCustomerLog log) { DataCommand command = DataCommandManager.GetDataCommand("InsertCouponCodeCustomerLog"); command.SetParameterValue("CouponSysNo", log.CouponSysNo); command.SetParameterValue("CouponCode", log.CouponCode); command.SetParameterValue("CustomerSysNo", log.CustomerSysNo); command.SetParameterValue("UserCodeType", log.UserCodeType); command.SetParameterValue("SOSysNo", log.SOSysNo); command.ExecuteNonQuery(); }
/// <summary> /// 用户优惠券码关联表 /// </summary> /// <param name="log"></param> public static bool InsertCustomerLog(CouponCodeCustomerLog log) { DataCommand command = DataCommandManager.GetDataCommand("Coupon_InsertCouponCodeCustomerLog"); command.SetParameterValue("@CouponSysNo", log.CouponSysNo); command.SetParameterValue("@CouponCode", log.CouponCode); command.SetParameterValue("@CustomerSysNo", log.CustomerSysNo); command.SetParameterValue("@UserCodeType", log.UserCodeType); command.SetParameterValue("@SOSysNo", log.SOSysNo); if (command.ExecuteNonQuery() > 0) { return(true); } else { return(false); } }
public static void PCodeForSpecialUser(Coupon master, CouponCode code, List <Customer> customerList) { // 自选用户 string userType = "S"; master.BindStatus = "E";//字段 CouponDA.UpdateBindRulesStatus(master); int index = 0; string userList = string.Empty; CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = code.Code; logEntity.CouponSysNo = master.SysNo; MailEntity customerMail = new MailEntity(); customerMail.MailSubject = master.CouponName; foreach (Customer customer in customerList) { logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); //if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") //{ // customerMail.MailBody = ConstValues.MailTemplate.Replace("@InDate", DateTime.Now.ToString("yyyy-MM-dd")) // .Replace("@CustomerHello@", customer.CustomerID) // .Replace("@CouponCode@", code.Code) // .Replace("@nums@", code.CustomerMaxFrequency.ToString()) // .Replace("@EndDateStr@", code.EndDate.ToString("yyyy-MM-dd")); // customerMail.MailAddress = customer.MailAddress; // CouponDA.SendMailInfo(customerMail); //} ++index; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } CouponDA.UpdateCouponSaleRulesCustomerStatus(master);//自选用户标识已发放 WriteLog(DateTime.Now + "自选用户优惠券成功发送" + index + "个顾客,分别是:\r\n" + userList); }
private static void ProcessEachForSO(Coupon master) { string userType = "O"; List <Customer> customernewList = new List <Customer>(); List <Customer> customerCheckList = new List <Customer>(); //(所有商品)LimitType = "A"; if (master.LimitType == "A") { //根据商家SysNo获取符合条件的订单信息和顾客信息 customernewList = CouponDA.GetCustomerAndSO(master); } //(限定商品)LimitType = "I"; if (master.LimitType == "I") { //限定商品---是否指定商品(true是) if (CouponDA.CheckIfRelationTypeY(master.SysNo)) { //(指定商品)根据商家SysNo获取符合条件的订单信息和顾客信息 customernewList = CouponDA.GetCustomerAndSoByTypeI(master); } else { //(排他商品)根据商家SysNo获取符合条件的订单信息和顾客信息 customernewList = CouponDA.GetCustomerAndSoByTypeINO(master); } } if (customernewList == null || customernewList.Count <= 0) { WriteLog("没能查询到符合条件的用户"); return; } else { foreach (Customer customer in customernewList) { //排除已经发送优惠卷的订单信息和顾客信息 if (!CouponDA.CheckIfSendCustomerCouponCode(master.SysNo, customer.SOSysNo)) { customerCheckList.Add(customer); } } } if (customerCheckList == null || customerCheckList.Count <= 0) { WriteLog("没能查询到符合条件的用户"); return; } WriteLog("查询到可发的用户" + customerCheckList.Count + "个"); master.BindStatus = "S";//字段 CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerCheckList) { if (!CouponDA.CheckIfSendCustomerCouponCode(master.SysNo, customer.SOSysNo)) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; codeEntity.CodeType = "C"; codeEntity.CustomerMaxFrequency = 1; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.SOSysNo = customer.SOSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); num++; userList += "顾客编号:" + customer.CustomerSysNo + "\r\n"; } } WriteLog(DateTime.Now + "购买商品送优惠券成功发送" + num + "次,分别是:\r\n" + userList); }
private static void ProcessEachForBirthday(Coupon master) { //获取要过生日未发放生日优惠券的顾客 (一天发一次)造优惠券,发给顾客 string userType = "B"; List <Customer> customerList = CouponDA.GetBirthdayUser(master.SysNo);//获取要过生日未发放生日优惠券的顾客 if (customerList == null || customerList.Count <= 0) { WriteLog("没能查询到符合条件的用户"); return; } WriteLog("查询到今天过生日的用户" + customerList.Count + "个"); master.BindStatus = "S";//字段 CouponDA.UpdateBindRulesStatus(master); int num = 0; string userList = string.Empty; foreach (Customer customer in customerList) { #region CreateCode CouponCode codeEntity = new CouponCode(); codeEntity.CouponSysNo = master.SysNo; codeEntity.CodeType = "T"; codeEntity.CustomerMaxFrequency = 1; GetCodeExpireDate(master, codeEntity); codeEntity = CouponDA.CreateCode(codeEntity); #endregion CouponCodeCustomerLog logEntity = new CouponCodeCustomerLog(); logEntity.CouponCode = codeEntity.Code; logEntity.CouponSysNo = master.SysNo; logEntity.CustomerSysNo = customer.CustomerSysNo; logEntity.UserCodeType = userType; CouponDA.InsertCustomerLog(logEntity); #region sendMail MailEntity customerMail = new MailEntity(); customerMail.MailSubject = string.Format("亲爱的{0},生日将际,大昌优品为你送上一份生日礼物", customer.CustomerID);//master.CouponName; if (!string.IsNullOrEmpty(customer.MailAddress) && master.IsSendMail == "Y") { int _num = 1; StringBuilder result = new StringBuilder(); IList <ProductTop6Entity> product = CouponDA.GetProductTop6(); result.Append(ConstValues.BirthdayMailTemplate.Replace("@CustomerHello@", customer.CustomerID)); foreach (ProductTop6Entity item in product) { result.Replace(String.Format("@ProductImage{0}@", _num), String.Format(imageText, item.DefaultImage)); result.Replace(String.Format("@ProductTitle{0}@", _num), item.ProductTitle); result.Replace(String.Format("@ProductUrl{0}@", _num), String.Format(produceUrl, item.ProductID, DateTime.Now.ToString("yyyyMMdd"))); result.Replace(String.Format("@ProductPrice{0}@", _num), item.CurrentPrice.ToString("0.00")); _num += 1; } result.Replace("@DateTime@", DateTime.Now.ToString("yyyy.MM.dd")); result.Replace("@Birthday@", DateTime.Now.ToString("yyyyMMdd")); customerMail.MailBody = result.ToString(); customerMail.MailAddress = customer.MailAddress; CouponDA.SendMailInfo(customerMail); } #endregion num++; userList += "顾客编号:" + customer.CustomerSysNo + ",顾客ID:" + customer.CustomerID + "\r\n"; } WriteLog(DateTime.Now + "生日送优惠券成功发送" + num + "个顾客,分别是:\r\n" + userList); }
public static string UserGetCouponCode(int UserSysNo, int CouponSysNo, out string couponCodestr) { couponCodestr = ""; int RemainingNumber = 0; CouponInfo coupon = new CouponInfo(); coupon = PromotionDA.GetCouponInfo(CouponSysNo); if (coupon == null) { return("优惠券活动异常,请联系客服!"); } CouponCode couponCode = new CouponCode(); CouponCodeCustomerLog couponCodeCustomLog = new CouponCodeCustomerLog(); try { //校验用户是否已领取优惠券 int CouponNumber = PromotionDA.GetCodeNumberByCouponNumber(coupon.SysNo); if (coupon.SaleRulesEx.MaxFrequency.HasValue && CouponNumber >= coupon.SaleRulesEx.MaxFrequency) { return("活动优惠券已被领完,谢谢参与!"); } if (coupon.SaleRulesEx.CustomerMaxFrequency.HasValue && PromotionDA.CheckUserAreadyGetCode(UserSysNo, CouponSysNo, (int)coupon.SaleRulesEx.CustomerMaxFrequency, out RemainingNumber)) { return("您领取次数已完,谢谢参与!"); } string GenerateCode = GenerateRandomCode(10); couponCode.Code = GenerateCode; //领取优惠券为通用优惠券 couponCode.CodeType = "C"; couponCode.CouponSysNo = coupon.SysNo; couponCode.CustomerMaxFrequency = 1; couponCode.EndDate = coupon.EndDate; couponCode.TotalCount = 1; couponCode.BeginDate = coupon.BeginDate; int couponCodeSysNo = PromotionDA.InsertCouponCode(UserSysNo, couponCode); if (couponCodeSysNo <= 0) { return("无法领取优惠券,请联系客服!"); } couponCodeCustomLog.CouponCode = GenerateCode; couponCodeCustomLog.CouponSysNo = coupon.SysNo; couponCodeCustomLog.CustomerSysNo = UserSysNo; couponCodeCustomLog.UserCodeType = "L"; if (PromotionDA.InsertCustomerLog(couponCodeCustomLog)) { couponCodestr = GenerateCode; return("您已成功领取优惠券,号码:" + GenerateCode); //if (RemainingNumber>0) //{ // RemainingNumber--; // return "您已成功领取优惠券,号码:" + GenerateCode + "。\n你还有" + RemainingNumber+"次领取机会!"; //} //else //{ // return "您已成功领取优惠券,号码:" + GenerateCode; //} } else { return("无法领取优惠券,请联系客服!"); } } catch { return("领取优惠券异常,请联系客服!"); } }