示例#1
0
        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);
        }
示例#2
0
        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();
                }
            }
        }
示例#3
0
        /// <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);
        }
示例#4
0
 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();
 }
示例#5
0
        /// <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);
            }
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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("领取优惠券异常,请联系客服!");
            }
        }