Ejemplo n.º 1
0
        /// <summary>
        /// 给分类查询出的用户发送邮件
        /// </summary>
        /// <param name="entity">邮件内容</param>
        public void SendMail(CategoryCustomersSendMail entity)
        {
            if (string.IsNullOrWhiteSpace(entity.MailTitle))
            {
                throw new BusinessException("请输入邮件标题!");
            }
            if (string.IsNullOrWhiteSpace(entity.MailBody))
            {
                throw new BusinessException("请输入邮件内容!");
            }

            QueryCategoryCustomersFilter filter = new QueryCategoryCustomersFilter()
            {
                PageIndex = 1,
                PageSize  = 100000000,
                Category  = entity.Category
            };
            StatementResult <ArrayList> queryUsers = QueryCategoryCustomers(filter);

            if (queryUsers != null && queryUsers.Result != null && queryUsers.Result.Count > 0)
            {
                Soho.EmailAndSMS.Service.Entity.EmailEntity mailEntity = new Soho.EmailAndSMS.Service.Entity.EmailEntity();
                mailEntity.Status        = Soho.EmailAndSMS.Service.Entity.EmailStatus.AuditPassed;
                mailEntity.IsBodyHtml    = entity.IsHtmlMail;
                mailEntity.InDate        = DateTime.Now.ToString();
                mailEntity.EmailTitle    = entity.MailTitle;
                mailEntity.EmailPriority = System.Net.Mail.MailPriority.Normal;
                mailEntity.EmailBody     = entity.MailBody;
                List <Soho.EmailAndSMS.Service.Entity.EmailEntity> sendMailList = new List <Soho.EmailAndSMS.Service.Entity.EmailEntity>();

                ArrayList users = queryUsers.Result;
                for (int i = 0; i < users.Count; i++)
                {
                    Dictionary <string, object> item = users[i] as Dictionary <string, object>;
                    foreach (var obj in item)
                    {
                        if (obj.Key.Equals("CustomerID"))
                        {
                            mailEntity.UserSysNo = int.Parse(obj.Value.ToString());
                        }
                        if (obj.Key.Equals("TrueName"))
                        {
                            mailEntity.ReceiveName = obj.Value.ToString();
                        }
                        if (obj.Key.Equals("Email"))
                        {
                            mailEntity.ReceiveAddress = obj.Value.ToString();
                        }
                    }
                    if (!string.IsNullOrEmpty(mailEntity.ReceiveAddress))
                    {
                        sendMailList.Add(mailEntity);
                    }
                }
                EmailAndSMSService.Instance.BatchInsertMail(sendMailList);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 给分类查询出的用户发送短信
        /// </summary>
        /// <param name="entity">短信内容</param>
        public void SendSMS(CategoryCustomersSendSMS entity)
        {
            if (string.IsNullOrWhiteSpace(entity.SMSBody))
            {
                throw new BusinessException("请输入短信内容!");
            }

            QueryCategoryCustomersFilter filter = new QueryCategoryCustomersFilter()
            {
                PageIndex = 1,
                PageSize  = 100000000,
                Category  = entity.Category
            };
            StatementResult <ArrayList> queryUsers = QueryCategoryCustomers(filter);

            if (queryUsers != null && queryUsers.Result != null && queryUsers.Result.Count > 0)
            {
                Soho.EmailAndSMS.Service.Entity.SMSEntity smsEntity = new Soho.EmailAndSMS.Service.Entity.SMSEntity();
                smsEntity.Status  = Soho.EmailAndSMS.Service.Entity.SMSStatus.AuditPassed;
                smsEntity.InDate  = DateTime.Now.ToString();
                smsEntity.SMSBody = entity.SMSBody;
                List <Soho.EmailAndSMS.Service.Entity.SMSEntity> sendSMSList = new List <Soho.EmailAndSMS.Service.Entity.SMSEntity>();

                ArrayList users = queryUsers.Result;
                for (int i = 0; i < users.Count; i++)
                {
                    Dictionary <string, object> item = users[i] as Dictionary <string, object>;
                    foreach (var obj in item)
                    {
                        if (obj.Key.Equals("CustomerID"))
                        {
                            smsEntity.UserSysNo = int.Parse(obj.Value.ToString());
                        }
                        if (obj.Key.Equals("TrueName"))
                        {
                            smsEntity.ReceiveName = obj.Value.ToString();
                        }
                        if (obj.Key.Equals("ComMobile"))
                        {
                            smsEntity.ReceivePhoneNumber = obj.Value.ToString();
                        }
                    }
                    if (!string.IsNullOrEmpty(smsEntity.ReceivePhoneNumber))
                    {
                        sendSMSList.Add(smsEntity);
                    }
                }
                EmailAndSMSService.Instance.BatchInsertSMS(sendSMSList);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 查询近7天未下过订单的用户
        /// </summary>
        /// <param name="filter">查询条件</param>
        /// <returns></returns>
        public static StatementResult <ArrayList> QuerySevenDayNotHaveOrder(QueryCategoryCustomersFilter filter)
        {
            StatementResult <ArrayList> result = new StatementResult <ArrayList>();

            result.ServicePageIndex = filter.ServicePageIndex;
            result.PageSize         = filter.PageSize;

            PagingInfoEntity  page = DataAccessUtil.ToPagingInfo(filter);
            CustomDataCommand cmd  = DataCommandManager.CreateCustomDataCommandFromConfig("QuerySevenDayNotHaveOrder");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, page, "CustomerID DESC"))
            {
                cmd.CommandText   = sqlBuilder.BuildQuerySql();
                result.Result     = DbHelper.DatatableConvertArrayList(cmd.ExecuteDataTable());
                result.TotalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));

                return(result);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 查询分类用户
        /// </summary>
        /// <param name="filter">查询条件</param>
        /// <returns></returns>
        public StatementResult <ArrayList> QueryCategoryCustomers(QueryCategoryCustomersFilter filter)
        {
            StatementResult <ArrayList> data = null;

            switch (filter.Category)
            {
            case CustomerQueryCategory.ThirtyDayNotLogin:
                data = QueryCategoryCustomersDA.QueryThirtyDayNotLoginCustomers(filter);
                break;

            case CustomerQueryCategory.NotHaveOrder:
                data = QueryCategoryCustomersDA.QueryNotHaveOrderCustomers(filter);
                break;

            case CustomerQueryCategory.SevenDayNotHaveOrder:
                data = QueryCategoryCustomersDA.QuerySevenDayNotHaveOrder(filter);
                break;
            }

            return(data);
        }