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; }
/// <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; }
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 }); }
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 }); }
/// <summary> /// 从存储媒介删除实体数据 /// </summary> /// <param name="messageRecode">MessageRecodeEntity实体对象</param> /// <returns>true:删除成功 false:删除失败</returns> public bool DeleteMessageRecode(MessageRecodeEntity messageRecode) { return MessageRecodeDataAccess.Instance.DeleteMessageRecode(messageRecode); }
/// <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; }
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; }
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; }
/// <summary> /// 更新存储媒介中的实体数据 /// </summary> /// <param name="messageRecode">MessageRecodeEntity实体对象</param> /// <returns>true:更新成功 false:更新失败</returns> public bool UpdateMessageRecode(MessageRecodeEntity messageRecode) { return MessageRecodeBusProvider.UpdateMessageRecode(messageRecode); }
/// <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; }
/// <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; } }
/// <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; }
/// <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; }
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; }
/// <summary> /// 将实体数据存入存储媒介(持久化一个对象) /// </summary> /// <param name="messageRecode">MessageRecodeEntity实体对象</param> /// <returns>true:存储成功 false:存储失败</returns> public bool AddMessageRecode(MessageRecodeEntity messageRecode) { return MessageRecodeBusProvider.AddMessageRecode(messageRecode); }
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; }
/// <summary> /// 从存储媒介删除实体数据 /// </summary> /// <param name="messageRecode">MessageRecodeEntity实体对象</param> /// <returns>true:删除成功 false:删除失败</returns> public bool DeleteMessageRecode(MessageRecodeEntity messageRecode) { return MessageRecodeBusProvider.DeleteMessageRecode(messageRecode); }
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; }
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 }); }
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; }
/// <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; }
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 }); }
/// <summary> /// 将实体数据存入存储媒介(持久化一个对象) /// </summary> /// <param name="messageRecode">MessageRecodeEntity实体对象</param> /// <returns>true:存储成功 false:存储失败</returns> public bool AddMessageRecode(MessageRecodeEntity messageRecode) { return MessageRecodeDataAccess.Instance.AddMessageRecode(messageRecode); }
/// <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(); }
/// <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; }