コード例 #1
0
        public bool AddMessageRecode(MessageRecodeEntity messageRecodeEntity)
        {
            bool flag = false;
            StringBuilder sqlCommandText = new StringBuilder();
            sqlCommandText.Append(" @JournalID");
            sqlCommandText.Append(", @CID");
            sqlCommandText.Append(", @SendUser");
            sqlCommandText.Append(", @ReciveUser");
            sqlCommandText.Append(", @ReciveAddress");
            sqlCommandText.Append(", @SendDate");
            sqlCommandText.Append(", @MsgType");
            sqlCommandText.Append(", @SendType");
            sqlCommandText.Append(", @MsgTitle");
            sqlCommandText.Append(", @MsgContent");

            DbCommand cmd = db.GetSqlStringCommand(String.Format("INSERT INTO dbo.MessageRecode ({0},AddDate) VALUES ({1},getdate()) SELECT @@IDENTITY as RecodeID", sqlCommandText.ToString().Replace("@", ""), sqlCommandText.ToString()));

            db.AddInParameter(cmd, "@JournalID", DbType.Int64, messageRecodeEntity.JournalID);
            db.AddInParameter(cmd, "@CID", DbType.Int64, messageRecodeEntity.CID);
            db.AddInParameter(cmd, "@SendUser", DbType.Int64, messageRecodeEntity.SendUser);
            db.AddInParameter(cmd, "@ReciveUser", DbType.Int64, messageRecodeEntity.ReciveUser);
            db.AddInParameter(cmd, "@ReciveAddress", DbType.AnsiString, messageRecodeEntity.ReciveAddress);
            db.AddInParameter(cmd, "@SendDate", DbType.DateTime, messageRecodeEntity.SendDate);
            db.AddInParameter(cmd, "@MsgType", DbType.Byte, messageRecodeEntity.MsgType);
            db.AddInParameter(cmd, "@SendType", DbType.Int32, messageRecodeEntity.SendType);
            db.AddInParameter(cmd, "@MsgTitle", DbType.AnsiString, messageRecodeEntity.MsgTitle);
            db.AddInParameter(cmd, "@MsgContent", DbType.AnsiString, messageRecodeEntity.MsgContent);
            try
            {

                IDataReader dr = db.ExecuteReader(cmd);
                if (dr.Read())
                {
                    long recodeID = Convert.ToInt64(dr["RecodeID"]);
                    MessageRecodeEntity currentEntity = new MessageRecodeEntity() { RecodeID = recodeID, JournalID = messageRecodeEntity.JournalID, TemplateID = messageRecodeEntity.TemplateID };
                    AddMessageRecodeAndTemplate(currentEntity);
                    flag = true;
                }

            }
            catch (SqlException sqlEx)
            {
                throw sqlEx;
            }
            return flag;
        }
コード例 #2
0
        /// <summary>
        /// 批量保存缴费通知数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ExecResult BatchSavePayNotice(IList<PayNoticeEntity> list)
        {
            ExecResult result = new ExecResult();
            if (list != null && list.Count > 0)
            {
                HttpClientHelper clientHelper = new HttpClientHelper();
                result = clientHelper.Post<ExecResult, IList<PayNoticeEntity>>(GetAPIUrl(APIConstant.PAYNOTICE_BATCHSAVE), list);
                if (result.result == EnumJsonResult.success.ToString())
                {
                    int index = 0;
                    string returnData = string.Empty;
                    foreach (var model in list)
                    {
                        SiteConfigFacadeAPIService service = new SiteConfigFacadeAPIService();
                        MessageRecodeEntity logModel = new MessageRecodeEntity();
                        logModel.MsgType = 1;
                        logModel.JournalID = model.JournalID;
                        logModel.SendUser = model.SendUser;
                        logModel.MsgTitle = model.Title;
                        logModel.MsgContent = model.Body;
                        logModel.CID = model.CID;
                        if (model.PayType == 1)
                            logModel.SendType = -3;
                        else if (model.PayType == 2)
                            logModel.SendType = -4;
                        IList<Int64> userList = new List<Int64>() { model.AuthorID };
                        var emailResult = service.SendEmailOrSms(userList, logModel);
                        index++;
                        returnData = emailResult.msg;
                        if (model.IsSms && !string.IsNullOrWhiteSpace(model.SmsContent))
                        {
                            logModel.MsgType = 2;
                            logModel.MsgContent = model.SmsContent;
                            var smsResult = service.SendEmailOrSms(userList, logModel);
                            result.msg += smsResult.msg;
                        }

                    }
                    result.msg += returnData + "共计通知 " + index + " 人";
                }
            }

            return result;
        }
コード例 #3
0
        public ActionResult AuthorSendSms(Int64 CID, Int32 Status, MessageRecodeEntity model)
        {
            var user = GetAuthorInfo(CID, Status);
            if (user == null)
                return Json(new { result = EnumJsonResult.failure.ToString(), msg = "获取接收人失败,发送短信失败!" });

            ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
            ExecResult result = new ExecResult();
            model.JournalID = CurAuthor.JournalID;
            model.SendUser = CurAuthor.AuthorID;
            model.MsgType = 2;
            model.SendDate = DateTime.Now;
            model.SendType = 0;

            //通过稿件编号获取接收人、接受地址
            model.ReciveUser = user.AuthorID;
            model.ReciveAddress = user.Mobile;

            result = service.SendEmailOrSms(model);
            return Json(new { result = result.result, msg = result.msg });
        }
コード例 #4
0
        public ActionResult SendIssueListSelectAuthor(string RecEmail, string Content)
        {
            ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
            MessageRecodeEntity model = new MessageRecodeEntity();
            model.ReciveAddress = RecEmail;
            model.JournalID = CurAuthor.JournalID;
            model.MsgType = 1;
            model.MsgTitle = "《" + SiteConfig.SiteName + "》期刊目录推送";
            model.MsgContent = Content;

            ExecResult result = new ExecResult();
            var strList = RecEmail.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList();

            IAuthorPlatformFacadeService AuthorService = ServiceContainer.Instance.Container.Resolve<IAuthorPlatformFacadeService>();
            AuthorDetailQuery query = new AuthorDetailQuery();
            query.JournalID = CurAuthor.JournalID;
            query.CurrentPage = 1;
            query.PageSize = 1;

            for (int i = 0; i < strList.Count; i++)
            {
                query.LoginName = strList[i];
                Pager<AuthorDetailEntity> pager = AuthorService.GetAuthorDetailPageList(query);
                if (i == 0)
                    Content = Content.Replace("%Name%", pager.ItemList[0].AuthorName);
                else
                {
                    query.LoginName = strList[i - 1];
                    Pager<AuthorDetailEntity> pagerTemp = AuthorService.GetAuthorDetailPageList(query);
                    Content = Content.Replace(pagerTemp.ItemList[0].AuthorName, pager.ItemList[0].AuthorName);
                }
                service.SendEmail("《" + SiteConfig.SiteName + "》期刊目录推送", Content, strList[i], SiteConfig.SiteName, CurAuthor.JournalID);
            }

            return Json(new { flag = 1 });
        }
コード例 #5
0
 /// <summary>
 /// 从存储媒介删除实体数据
 /// </summary>
 /// <param name="messageRecode">MessageRecodeEntity实体对象</param>
 /// <returns>true:删除成功 false:删除失败</returns>
 public bool DeleteMessageRecode(MessageRecodeEntity messageRecode)
 {
     return MessageRecodeDataAccess.Instance.DeleteMessageRecode(messageRecode);
 }
コード例 #6
0
        /// <summary>
        /// 发送短信或邮件(不使用模版发送)   选择作者信息
        /// </summary>
        /// <param name="ReciveUserList"></param>
        ///<param name="entity">(必填项 MsgType,JournalID,SendUser,MsgTitle,MsgContent)</param>      
        /// <returns></returns>
        public ExecResult SendEmailOrSms(IList<Int64> ReciveUserList, MessageRecodeEntity entity, bool isRecode = true)
        {
            ExecResult result = new ExecResult();
            bool isEmail = entity.MsgType == 1;
            string msg = isEmail ? "邮件" : "短信";
            if (ReciveUserList == null || ReciveUserList.Count == 0)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,请选择" + msg + "接收人!";
                return result;
            }
            IDictionary<Int64, string> userDcit = null;
            bool isCard=false;
            //发送贺卡  需要人名
            if (entity.MsgContent.Contains("{贺卡}"))
            {
                userDcit = GetAuthorDcit(ReciveUserList, entity.JournalID);
                isCard=true;
            }
            else
            {
                userDcit = GetAuthorDcit(ReciveUserList, entity.JournalID, isEmail);
                if(userDcit==null)
                    userDcit = GetContributionAuthorDcit(ReciveUserList, entity.JournalID, isEmail);
            }
            if (userDcit == null || userDcit.Count == 0)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,接收人的" + msg + "非法!";
                return result;
            }
            IList<MessageRecodeEntity> list = new List<MessageRecodeEntity>();
            MessageRecodeEntity model = null;
            int index = 0;

            string error = string.Empty;
            bool flag = false;
            if (isCard)
            {
                foreach (var item in userDcit)
                {
                    string[] strs = item.Value.Split(',');
                    model = new MessageRecodeEntity();
                    model.JournalID = entity.JournalID;
                    model.CID = entity.CID;
                    model.ReciveUser = item.Key;
                    model.ReciveAddress =strs[0];
                    model.MsgType = (Byte)(isEmail ? 1 : 2);
                    model.SendType = entity.SendType == null ? 0 : entity.SendType;
                    model.SendUser = entity.SendUser;
                    model.SendDate = DateTime.Now;
                    model.MsgTitle = entity.MsgTitle.HtmlFilter();
                    model.MsgContent = entity.MsgContent.HtmlFilter().Replace("{贺卡}",strs[1]);
                    model.AddDate = DateTime.Now;
                    model.FilePath = entity.FilePath;
                    model.Index = index;
                    model.TemplateID = entity.TemplateID;
                    list.Add(model);
                    index++;
                }

                flag=SendEmailOrSms(list, isEmail, false, entity, ref error);
            }
            else
            {
                foreach (var item in userDcit)
                {
                    model = new MessageRecodeEntity();
                    model.JournalID = entity.JournalID;
                    model.CID = entity.CID;
                    model.ReciveUser = item.Key;
                    model.ReciveAddress = item.Value;
                    model.MsgType = (Byte)(isEmail ? 1 : 2);
                    model.SendType = entity.SendType == null ? 0 : entity.SendType;
                    model.SendUser = entity.SendUser;
                    model.SendDate = DateTime.Now;
                    model.MsgTitle = entity.MsgTitle.HtmlFilter();
                    model.MsgContent = entity.MsgContent.HtmlFilter();
                    model.AddDate = DateTime.Now;
                    model.FilePath = entity.FilePath;
                    model.Index = index;
                    model.TemplateID = entity.TemplateID;
                    list.Add(model);
                    index++;
                }
               flag=SendEmailOrSms(list, isEmail, true, entity, ref error);
            }
            if (flag)
            {
                result.result = EnumJsonResult.success.ToString();
                result.msg = msg + "发送成功!";
                var except = ReciveUserList.Except(userDcit.Select(p => p.Key));
                if (except.Count() > 0)
                {
                    result.msg += string.Format("部分作者[{0}]发送失败", string.Join(",", except));
                }
            }
            else
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败!" + error;
            }
            return result;
        }
コード例 #7
0
        public List<MessageRecodeEntity> MakeMessageRecodeList(IDataReader dr)
        {
            List<MessageRecodeEntity> list = new List<MessageRecodeEntity>();
            while (dr.Read())
            {
                MessageRecodeEntity messageRecodeEntity = new MessageRecodeEntity();

                messageRecodeEntity.RecodeID = (Int64)dr["RecodeID"];
                messageRecodeEntity.JournalID = (Int64)dr["JournalID"];
                messageRecodeEntity.CID = (Int64)dr["CID"];
                messageRecodeEntity.SendUser = (Int64)dr["SendUser"];
                messageRecodeEntity.ReciveUser = (Int64)dr["ReciveUser"];
                messageRecodeEntity.ReciveAddress = (String)dr["ReciveAddress"];
                messageRecodeEntity.SendDate = (DateTime)dr["SendDate"];
                messageRecodeEntity.MsgType = (Byte)dr["MsgType"];
                messageRecodeEntity.SendType = Convert.IsDBNull(dr["SendType"]) ? null : (Int32?)dr["SendType"];
                messageRecodeEntity.MsgTitle = (String)dr["MsgTitle"];
                messageRecodeEntity.MsgContent = (String)dr["MsgContent"];
                messageRecodeEntity.AddDate = (DateTime)dr["AddDate"];
                list.Add(messageRecodeEntity);
            }
            dr.Close();
            return list;
        }
コード例 #8
0
        public bool DeleteMessageRecode(MessageRecodeEntity messageRecodeEntity)
        {
            bool flag = false;
            StringBuilder sqlCommandText = new StringBuilder();
            sqlCommandText.Append("DELETE FROM dbo.MessageRecode");
            sqlCommandText.Append(" WHERE  RecodeID=@RecodeID");

            DbCommand cmd = db.GetSqlStringCommand(sqlCommandText.ToString());

            db.AddInParameter(cmd, "@RecodeID", DbType.Int64, messageRecodeEntity.RecodeID);

            try
            {
                db.ExecuteNonQuery(cmd);
                flag = true;
            }
            catch (SqlException sqlEx)
            {
                throw sqlEx;
            }
            return flag;
        }
コード例 #9
0
 /// <summary>
 /// 更新存储媒介中的实体数据
 /// </summary>
 /// <param name="messageRecode">MessageRecodeEntity实体对象</param>
 /// <returns>true:更新成功 false:更新失败</returns>
 public bool UpdateMessageRecode(MessageRecodeEntity messageRecode)
 {
     return MessageRecodeBusProvider.UpdateMessageRecode(messageRecode);
 }
コード例 #10
0
 /// <summary>
 /// 保存缴费通知数据
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public ExecResult SavePayNotice(PayNoticeEntity model)
 {
     HttpClientHelper clientHelper = new HttpClientHelper();
     ExecResult result = clientHelper.Post<ExecResult, PayNoticeEntity>(GetAPIUrl(APIConstant.PAYNOTICE_SAVE), model);
     if (result.result == EnumJsonResult.success.ToString())
     {
         SiteConfigFacadeAPIService service = new SiteConfigFacadeAPIService();
         MessageRecodeEntity logModel = new MessageRecodeEntity();
         logModel.MsgType = 1;
         logModel.JournalID = model.JournalID;
         logModel.SendUser = model.SendUser;
         logModel.MsgTitle = model.Title;
         logModel.MsgContent = model.Body;
         logModel.CID = model.CID;
         if (model.PayType == 1)
             logModel.SendType = -3;
         else if (model.PayType == 2)
             logModel.SendType = -4;
         IList<Int64> userList = new List<Int64>() { model.AuthorID };
         var emailResult = service.SendEmailOrSms(userList, logModel);
         result.msg += emailResult.msg;
         if (model.IsSms && !string.IsNullOrWhiteSpace(model.SmsContent))
         {
             logModel.MsgType = 2;
             logModel.MsgContent = model.SmsContent;
             var smsResult = service.SendEmailOrSms(userList, logModel);
             result.msg += smsResult.msg;
         }
     }
     return result;
 }
コード例 #11
0
        /// <summary>
        /// 发送邮件短信
        /// </summary>
        /// <param name="list"></param>
        /// <param name="isEmail">true:邮件 false:短信</param>
        /// <param name="isMass">true:群发(没有使用模版) false:一条一条发</param>
        /// <param name="sendMailName">邮件发件人称呼</param>
        /// <returns></returns>
        private bool SendEmailOrSms(IList<MessageRecodeEntity> list, bool isEmail, bool isMass, MessageRecodeEntity entity, ref string errorMsg, SiteConfigEntity config = null, bool IsRecode = true)
        {
            try
            {
                if (config == null)
                    config = GetSiteConfig(list[0].JournalID);
                List<Int32> errorList = new List<Int32>();
                if (isEmail)   //发送邮件
                {
                    if (string.IsNullOrWhiteSpace(config.MailServer)
                        || string.IsNullOrWhiteSpace(config.MailAccount)
                        || string.IsNullOrWhiteSpace(config.MailPwd))
                    {
                        errorMsg = "请配置邮件发送相关信息!";
                        return false;
                    }
                    if (entity != null)
                    {
                        if (!string.IsNullOrWhiteSpace(entity.sendMailName))
                            config.SendMail = entity.sendMailName;
                    }
                    if (isMass)  //群发
                    {
                        if (!EmailUtils.SendMailEx(config.MailServer, config.MailPort, config.MailAccount, config.MailPwd, config.SendMail
                            , string.Join(",", list.Select(p => p.ReciveAddress)), string.Empty, string.Empty, list[0].MsgTitle, list[0].MsgContent
                            , list[0].FilePath, 2, true, "UTF-8", true, config.MailIsSSL))
                            errorList.AddRange(list.Select(p => p.Index));
                    }
                    else  //一条一条的发
                    {
                        foreach (var model in list)
                        {
                            if (!EmailUtils.SendMailEx(config.MailServer, config.MailPort, config.MailAccount, config.MailPwd, config.SendMail
                            , model.ReciveAddress, string.Empty, string.Empty, model.MsgTitle, model.MsgContent
                            , model.FilePath, 2, true, "UTF-8", true, config.MailIsSSL))
                                errorList.Add(model.Index);
                        }
                    }
                }
                else //发送短信
                {
                    if (string.IsNullOrWhiteSpace(config.SMSUserName))
                    {
                        errorMsg = "请配置短信发送相关信息!";
                        return false;
                    }
                    if (isMass)
                    {
                        if (entity != null)
                        {
                            if (!SmsHelper.SendSmsSHP(string.Join(",", list.Select(p => p.ReciveAddress)), list[0].MsgContent, config.SMSUserName, config.SMSPwd))
                                errorList.AddRange(list.Select(p => p.Index));

                        }

                    }
                    else
                    {
                        if (entity != null)
                        {
                            foreach (var model in list)
                            {
                                if (!SmsHelper.SendSmsSHP(model.ReciveAddress, model.MsgContent, config.SMSUserName, config.SMSPwd))
                                    errorList.Add(model.Index);
                            }

                        }

                    }
                }

                var listResult = list.Where(p => !errorList.Contains(p.Index)).ToList();

                if (listResult == null || listResult.Count == 0)
                    return false;

                if (IsRecode)
                {
                    SaveSendRecode(listResult);
                }

                return true;
            }
            catch (Exception ex)
            {
                LogProvider.Instance.Error("发送邮件短信异常:" + ex.Message);
                errorMsg = ex.Message;
                return false;
            }
        }
コード例 #12
0
        /// <summary>
        /// 发送短信或邮件(使用模版)
        /// </summary>
        /// <param name="ReciveUserdict">子级键值对中必须包含 $稿件主键$ </param>
        /// <param name="entity">(必填项 MsgType,JournalID,SendType,SendUser)</param>      
        /// <returns></returns>
        public ExecResult SendEmailOrSms(IDictionary<Int64, IDictionary<string, string>> ReciveUserdict, MessageRecodeEntity entity, bool isRecode = true)
        {
            ExecResult result = new ExecResult();
            bool isEmail = entity.MsgType == 1;
            string msg = isEmail ? "邮件" : "短信";
            if (ReciveUserdict == null || ReciveUserdict.Count == 0)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,请选择" + msg + "接收人!";
                return result;
            }
            MessageTemplateEntity temp = GetMessageTemplate(entity.JournalID, entity.SendType.Value, entity.MsgType);
            if (temp == null)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,获取模版信息失败!";
                return result;

            }
            IDictionary<Int64, string> userDcit = GetAuthorDcit(ReciveUserdict.Keys.ToList(), entity.JournalID, isEmail);
            if (userDcit == null || userDcit.Count == 0)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,接收人的" + msg + "非法!";
                return result;
            }
            SiteConfigEntity config = GetSiteConfig(entity.JournalID);
            if (config == null)
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败,请先配置站点的" + msg + "信息!";
                return result;
            }
            IList<MessageRecodeEntity> list = new List<MessageRecodeEntity>();
            MessageRecodeEntity model = null;
            int index = 0;
            foreach (var item in userDcit)
            {
                model = new MessageRecodeEntity();
                model.JournalID = entity.JournalID;
                model.CID = ReciveUserdict[item.Key]["$稿件主键$"].TryParse<Int64>();
                model.ReciveUser = item.Key;
                model.ReciveAddress = item.Value;
                model.MsgType = entity.MsgType;
                model.SendType = entity.SendType;
                model.SendUser = entity.SendUser;
                model.SendDate = DateTime.Now;
                model.MsgTitle = temp.Title.HtmlFilter();
                model.MsgContent = GetEmailOrSmsContent(ReciveUserdict[item.Key], config, temp.TContent).HtmlFilter();
                model.AddDate = DateTime.Now;
                model.FilePath = entity.FilePath;
                model.Index = index;
                list.Add(model);
                index++;
            }
            string error = string.Empty;
            bool flag = SendEmailOrSms(list, isEmail, false, model, ref error, null, isRecode);
            if (flag)
            {
                result.result = EnumJsonResult.success.ToString();
                result.msg = msg + "发送成功!";
            }
            else
            {
                result.result = EnumJsonResult.failure.ToString();
                result.msg = msg + "发送失败!" + error;
            }
            return result;
        }
コード例 #13
0
 /// <summary>
 /// 发送短信或邮件(不使用模版发送)  直接使用短信号码或邮件地址
 /// </summary>
 /// <param name="ReciveAddressList"></param>
 /// <param name="entity">(必填项 MsgType,JournalID,SendUser,MsgTitle,MsgContent)</param>
 /// <returns></returns>
 public ExecResult SendEmailOrSms(IList<String> ReciveAddressList, MessageRecodeEntity entity, bool isRecode = true)
 {
     ExecResult result = new ExecResult();
     bool isEmail = entity.MsgType == 1;
     string msg = isEmail ? "邮件地址" : "短信号码";
     if (ReciveAddressList == null || ReciveAddressList.Count == 0)
     {
         result.result = EnumJsonResult.failure.ToString();
         result.msg = msg + "发送失败,请输入正确" + msg + "!";
         return result;
     }
     if (isEmail)
         ReciveAddressList = ReciveAddressList.Where(p => !string.IsNullOrWhiteSpace(p))
             .Where(p => p.IsEmail()).ToList();
     else
         ReciveAddressList = ReciveAddressList.Where(p => !string.IsNullOrWhiteSpace(p))
            .Where(p => p.IsMobilePhone()).ToList();
     if (ReciveAddressList == null || ReciveAddressList.Count == 0)
     {
         result.result = EnumJsonResult.failure.ToString();
         result.msg = msg + "发送失败,请输入正确" + msg + "!";
         return result;
     }
     IList<MessageRecodeEntity> list = new List<MessageRecodeEntity>();
     MessageRecodeEntity model = null;
     int index = 0;
     foreach (var item in ReciveAddressList)
     {
         model = new MessageRecodeEntity();
         model.JournalID = entity.JournalID;
         model.CID = entity.CID;
         model.ReciveUser = entity.ReciveUser;
         model.ReciveAddress = item;
         model.MsgType = entity.MsgType;
         model.SendType = entity.SendType == null ? 0 : entity.SendType;
         model.SendUser = entity.SendUser;
         model.SendDate = DateTime.Now;
         model.MsgTitle = entity.MsgTitle.HtmlFilter();
         model.MsgContent = entity.MsgContent.HtmlFilter();
         model.AddDate = DateTime.Now;
         model.FilePath = entity.FilePath;
         model.Index = index;
         list.Add(model);
         index++;
     }
     string error = string.Empty;
     bool flag = SendEmailOrSms(list, isEmail, true, entity, ref error, null, isRecode);
     if (flag)
     {
         result.result = EnumJsonResult.success.ToString();
         result.msg = msg + "发送成功!";
     }
     else
     {
         result.result = EnumJsonResult.failure.ToString();
         result.msg = msg + "发送失败!" + error;
     }
     return result;
 }
コード例 #14
0
 private MessageRecodeEntity GetMsgModel(Int64 RecodeID)
 {
     MessageRecodeEntity model = null;
     if (RecodeID > 0)
     {
         ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
         MessageRecodeQuery query = new MessageRecodeQuery();
         query.JournalID = CurAuthor.JournalID;
         query.RecodeID = RecodeID;
         model = service.GetMsgRecodeModel(query);
     }
     if (model == null)
         model = new MessageRecodeEntity();
     return model;
 }
コード例 #15
0
 /// <summary>
 /// 将实体数据存入存储媒介(持久化一个对象)
 /// </summary>
 /// <param name="messageRecode">MessageRecodeEntity实体对象</param>
 /// <returns>true:存储成功 false:存储失败</returns>
 public bool AddMessageRecode(MessageRecodeEntity messageRecode)
 {
     return MessageRecodeBusProvider.AddMessageRecode(messageRecode);
 }
コード例 #16
0
        public bool AddMessageRecodeAndTemplate(MessageRecodeEntity messageRecodeEntity)
        {
            bool flag = false;
            StringBuilder sqlCommandText = new StringBuilder();
            sqlCommandText.Append(" @JournalID");
            sqlCommandText.Append(", @TemplateID");
            sqlCommandText.Append(", @RecodeID");
            DbCommand cmd = db.GetSqlStringCommand(String.Format("INSERT INTO dbo.MessageRecodeAndTemplate ({0},AddTime) VALUES ({1},getdate())", sqlCommandText.ToString().Replace("@", ""), sqlCommandText.ToString()));

            db.AddInParameter(cmd, "@JournalID", DbType.Int64, messageRecodeEntity.JournalID);
            db.AddInParameter(cmd, "@TemplateID", DbType.Int64, messageRecodeEntity.TemplateID);
            db.AddInParameter(cmd, "@RecodeID", DbType.Int64, messageRecodeEntity.RecodeID);

            try
            {
                db.ExecuteNonQuery(cmd);
                flag = true;
            }
            catch (SqlException sqlEx)
            {
                throw sqlEx;
            }
            return flag;
        }
コード例 #17
0
 /// <summary>
 /// 从存储媒介删除实体数据
 /// </summary>
 /// <param name="messageRecode">MessageRecodeEntity实体对象</param>
 /// <returns>true:删除成功 false:删除失败</returns>
 public bool DeleteMessageRecode(MessageRecodeEntity messageRecode)
 {
     return MessageRecodeBusProvider.DeleteMessageRecode(messageRecode);
 }
コード例 #18
0
 public MessageRecodeEntity MakeMessageRecode(DataRow dr)
 {
     MessageRecodeEntity messageRecodeEntity = null;
     if (dr != null)
     {
         messageRecodeEntity = new MessageRecodeEntity();
         messageRecodeEntity.RecodeID = (Int64)dr["RecodeID"];
         messageRecodeEntity.JournalID = (Int64)dr["JournalID"];
         messageRecodeEntity.CID = (Int64)dr["CID"];
         messageRecodeEntity.SendUser = (Int64)dr["SendUser"];
         messageRecodeEntity.ReciveUser = (Int64)dr["ReciveUser"];
         messageRecodeEntity.ReciveAddress = (String)dr["ReciveAddress"];
         messageRecodeEntity.SendDate = (DateTime)dr["SendDate"];
         messageRecodeEntity.MsgType = (Byte)dr["MsgType"];
         messageRecodeEntity.SendType = Convert.IsDBNull(dr["SendType"]) ? null : (Int32?)dr["SendType"];
         messageRecodeEntity.MsgTitle = (String)dr["MsgTitle"];
         messageRecodeEntity.MsgContent = (String)dr["MsgContent"];
         messageRecodeEntity.AddDate = (DateTime)dr["AddDate"];
     }
     return messageRecodeEntity;
 }
コード例 #19
0
 public ActionResult SendEmail(MessageRecodeEntity model, bool IsAuthor, string ReciveUserStr,string file)
 {
     ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
     ExecResult result = new ExecResult();
     model.JournalID = CurAuthor.JournalID;
     model.SendUser = CurAuthor.AuthorID;
     model.MsgType = 1;
     model.MsgContent = Server.UrlDecode(model.MsgContent);
     model.SendDate = DateTime.Now;
     model.SendType = 0;
     model.sendMailName= CurAuthor.LoginName;
     if (ReciveUserStr.EndsWith(","))
         ReciveUserStr = ReciveUserStr.Substring(0, ReciveUserStr.Length - 1);
     ReciveUserStr = ReciveUserStr.Replace(",", ",");
     if (!string.IsNullOrWhiteSpace(file))   //附件处理
     {
         string folder = SiteConfig.UploadPath;
         var arry = file.Split(',');
         for (int i = 0; i < arry.Length; i++)
         {
             if (!string.IsNullOrWhiteSpace(folder))
             {
                 arry[i] = folder + arry[i];
             }
             else
             {
                 arry[i] = Server.MapPath(arry[i]);
             }
         }
         model.FilePath = arry;
     }
     if (!ReciveUserStr.Contains(",") && !IsAuthor)
     {
         model.ReciveAddress = ReciveUserStr;
         result = service.SendEmailOrSms(model);
     }
     else
     {
         var strList = ReciveUserStr.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList();
         if (IsAuthor)
         {
             result = service.SendEmailOrSms(strList.Select(p => TypeParse.ToLong(p)).ToList(), model);
         }
         else
         {
             result = service.SendEmailOrSms(strList, model);
         }
     }
     return Json(new { result = result.result, msg = result.msg });
 }
コード例 #20
0
        public bool UpdateMessageRecode(MessageRecodeEntity messageRecodeEntity)
        {
            bool flag = false;
            StringBuilder whereCommandText = new StringBuilder();
            whereCommandText.Append("  RecodeID=@RecodeID");
            StringBuilder sqlCommandText = new StringBuilder();
            sqlCommandText.Append(", SendUser=@SendUser");
            sqlCommandText.Append(", ReciveUser=@ReciveUser");
            sqlCommandText.Append(", ReciveAddress=@ReciveAddress");
            sqlCommandText.Append(", SendDate=@SendDate");
            sqlCommandText.Append(", MsgType=@MsgType");
            sqlCommandText.Append(", SendType=@SendType");
            sqlCommandText.Append(", MsgTitle=@MsgTitle");
            sqlCommandText.Append(", MsgContent=@MsgContent");

            DbCommand cmd = db.GetSqlStringCommand(String.Format("UPDATE dbo.MessageRecode SET {0} WHERE  {1}", sqlCommandText.ToString(), whereCommandText.ToString()));

            db.AddInParameter(cmd, "@RecodeID", DbType.Int64, messageRecodeEntity.RecodeID);
            db.AddInParameter(cmd, "@SendUser", DbType.Int64, messageRecodeEntity.SendUser);
            db.AddInParameter(cmd, "@ReciveUser", DbType.Int64, messageRecodeEntity.ReciveUser);
            db.AddInParameter(cmd, "@ReciveAddress", DbType.AnsiString, messageRecodeEntity.ReciveAddress);
            db.AddInParameter(cmd, "@SendDate", DbType.DateTime, messageRecodeEntity.SendDate);
            db.AddInParameter(cmd, "@MsgType", DbType.Byte, messageRecodeEntity.MsgType);
            db.AddInParameter(cmd, "@SendType", DbType.Int32, messageRecodeEntity.SendType);
            db.AddInParameter(cmd, "@MsgTitle", DbType.AnsiString, messageRecodeEntity.MsgTitle);
            db.AddInParameter(cmd, "@MsgContent", DbType.AnsiString, messageRecodeEntity.MsgContent);

            try
            {
                db.ExecuteNonQuery(cmd);
                flag = true;
            }
            catch (SqlException sqlEx)
            {
                throw sqlEx;
            }
            return flag;
        }
コード例 #21
0
        /// <summary>
        /// 投稿
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ExecResult SaveContributionInfo(ContributionInfoEntity model)
        {
            HttpClientHelper clientHelper = new HttpClientHelper();
            ExecResult result = clientHelper.Post<ExecResult, ContributionInfoEntity>(GetAPIUrl(APIConstant.CONTRIBUTIONINFO_SAVE), model);
            if (result.result.Equals(EnumJsonResult.success.ToString()) && model.CID == 0 && model.Status != -1)//新投稿,不是草稿
            {
                #region 投稿回执
                Action action = () =>
                    {
                        try
                        {
                            SiteConfigFacadeAPIService service = new SiteConfigFacadeAPIService();

                            MessageTemplateQuery queryTemp = new MessageTemplateQuery();
                            queryTemp.JournalID = model.JournalID;
                            queryTemp.TCategory = -5;//回执
                            var tempList = service.GetMessageTempList(queryTemp).ToList();
                            if (tempList == null)
                                return;
                            var EmailModel = tempList.Find(p => p.TType == 1);
                            var SmsModel = tempList.Find(p => p.TType == 2);
                            if (EmailModel == null && SmsModel == null)
                                return;

                            MessageRecodeEntity LogModel = new MessageRecodeEntity();
                            LogModel.JournalID = model.JournalID;
                            LogModel.SendType = -5;
                            LogModel.SendUser = model.AuthorID;

                            IDictionary<string, string> dict = service.GetEmailVariable();
                            var user = new AuthorFacadeAPIService().GetAuthorInfo(new AuthorInfoQuery() { JournalID = model.JournalID, AuthorID = model.AuthorID });
                            dict["${接收人}$"] = user.RealName;
                            dict["${邮箱}$"] = user.LoginName;
                            dict["${手机}$"] = user.Mobile;
                            dict["${稿件编号}$"] = result.resultStr;
                            dict["${稿件标题}$"] = model.Title;
                            dict["$稿件主键$"] = result.resultID.ToString();

                            ExecResult execResult = new ExecResult();
                            if (EmailModel != null)
                            {
                                LogModel.MsgType = 1;
                                execResult = service.SendEmailOrSms(new Dictionary<Int64, IDictionary<string, string>>() { { model.AuthorID, dict } }, LogModel);
                            }
                            if (SmsModel != null)
                            {
                                LogModel.MsgType = 2;
                                execResult = service.SendEmailOrSms(new Dictionary<Int64, IDictionary<string, string>>() { { model.AuthorID, dict } }, LogModel);
                            }

                            if (!execResult.result.Equals(EnumJsonResult.success.ToString()))
                                throw new Exception(execResult.msg);
                        }
                        catch (Exception ex)
                        {
                            LogProvider.Instance.Error("发送投稿回执失败,稿件编码【" + result.resultStr + "】:" + ex.ToString());
                        }
                    };
                action.BeginInvoke(null, null);
                #endregion
            }
            return result;
        }
コード例 #22
0
 public ActionResult SendSms(MessageRecodeEntity model, bool IsAuthor, string ReciveUserStr)
 {
     ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
     ExecResult result = new ExecResult();
     model.JournalID = CurAuthor.JournalID;
     model.SendUser = CurAuthor.AuthorID;
     model.MsgType = 2;
     model.SendDate = DateTime.Now;
     model.SendType = 0;
     model.SMServices = 1;
     if (ReciveUserStr.EndsWith(","))
         ReciveUserStr = ReciveUserStr.Substring(0, ReciveUserStr.Length - 1);
     ReciveUserStr = ReciveUserStr.Replace(",", ",");
     if (!ReciveUserStr.Contains(",") && !IsAuthor)
     {
         model.ReciveAddress = ReciveUserStr;
         result = service.SendEmailOrSms(model);
     }
     else
     {
         var strList = ReciveUserStr.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList();
         if (IsAuthor)
         {
             result = service.SendEmailOrSms(strList.Select(p => TypeParse.ToLong(p)).ToList(), model);
         }
         else
         {
             result = service.SendEmailOrSms(strList, model);
         }
     }
     return Json(new { result = result.result, msg = result.msg });
 }
コード例 #23
0
 /// <summary>
 /// 将实体数据存入存储媒介(持久化一个对象)
 /// </summary>
 /// <param name="messageRecode">MessageRecodeEntity实体对象</param>
 /// <returns>true:存储成功 false:存储失败</returns>
 public bool AddMessageRecode(MessageRecodeEntity messageRecode)
 {
     return MessageRecodeDataAccess.Instance.AddMessageRecode(messageRecode);
 }
コード例 #24
0
        /// <summary>
        /// 获取消息记录
        /// </summary>
        /// <param name="CID"></param>
        /// <param name="AuthorID"></param>
        /// <returns></returns>
        private IList<MessageRecodeEntity> GetMsgList(Int64 CID, Int64 AuthorID, Byte GroupID)
        {
            if (CID == 0)
                return new List<MessageRecodeEntity>();
            IList<MessageRecodeEntity> list = null;
            ISiteConfigFacadeService service = ServiceContainer.Instance.Container.Resolve<ISiteConfigFacadeService>();
            MessageRecodeQuery query = new MessageRecodeQuery();
            query.JournalID = CurAuthor.JournalID;
            query.CID = CID;
            if (GroupID != 1)
            {
                query.SendUser = AuthorID;
                query.ReciveUser = AuthorID;
                query.IsUserRelevant = true;
            }
            list = service.GetMessageRecodeList(query);

            if (list == null)
                list = new List<MessageRecodeEntity>();

            SiteMessageQuery msgQuery = new SiteMessageQuery();
            msgQuery.JournalID = CurAuthor.JournalID;
            msgQuery.CID = CID;
            if (GroupID != 1)
            {
                msgQuery.SendUser = AuthorID;
                msgQuery.ReciverID = AuthorID;
                msgQuery.IsUserRelevant = true;
            }
            var msgList = service.GetSiteMessageList(msgQuery).ToList();
            if (msgList != null && msgList.Count > 0)
            {
                MessageRecodeEntity model = null;
                foreach (var item in msgList)
                {
                    model = new MessageRecodeEntity();
                    model.JournalID = item.JournalID;
                    model.CID = item.CID;
                    model.SendUser = item.SendUser;
                    model.SendUserName = item.SendUserName;
                    model.ReciveUser = item.ReciverID;
                    model.ReciveUserName = item.ReciverName;
                    model.ReciveAddress = string.Empty;
                    model.SendDate = item.SendDate;
                    model.MsgType = 3;
                    model.SendType = 0;
                    model.MsgTitle = item.Title;
                    model.MsgContent = item.Content;
                    list.Add(model);
                }

            }

            return list.OrderBy(p => p.SendDate).ToList();
        }
コード例 #25
0
 /// <summary>
 /// 发送短信或邮件(不使用模版发送)
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public ExecResult SendEmailOrSms(MessageRecodeEntity model)
 {
     ExecResult result = new ExecResult();
     IList<MessageRecodeEntity> list = new List<MessageRecodeEntity>();
     model.Index = 0;
     model.MsgTitle = model.MsgTitle.HtmlFilter();
     model.MsgContent = model.MsgContent.HtmlFilter();
     list.Add(model);
     string error = string.Empty;
     bool flag = SendEmailOrSms(list, model.MsgType == 1, true, model, ref error);
     if (flag)
     {
         result.result = EnumJsonResult.success.ToString();
         result.msg = "发送成功!";
     }
     else
     {
         result.result = EnumJsonResult.failure.ToString();
         result.msg = "发送失败!" + error;
     }
     return result;
 }