EmailServices.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using FCS.Common;
  2. using FCS.Interface;
  3. using FCS.Models;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. using System.Text;
  9. namespace FCS.Services
  10. {
  11. /// <summary>
  12. /// 邮件相关服务
  13. /// </summary>
  14. public class EmailServices : BaseServices, IEmail
  15. {
  16. /// <summary>
  17. /// 添加邮件提醒记录
  18. /// </summary>
  19. /// <param name="LotteryName">彩种名称</param>
  20. /// <param name="QiHao">期号</param>
  21. /// <param name="OpenTime">开奖时间</param>
  22. /// <returns></returns>
  23. public bool AddEmail(string LotteryName, string QiHao, DateTime OpenTime, string Spare = "")
  24. {
  25. var param = new SqlParameter[]{
  26. new SqlParameter("@LotteryName",LotteryName),
  27. new SqlParameter("@QiHao",QiHao),
  28. new SqlParameter("@OpenTime",OpenTime),
  29. new SqlParameter("@ID",Guid.NewGuid().ToString().Replace("-", "")),
  30. new SqlParameter("@Spare",Spare)
  31. };
  32. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, AddEmailSql, param);
  33. return result > 0;
  34. }
  35. /// <summary>
  36. /// 获取所有待发送邮件列表
  37. /// </summary>
  38. /// <returns></returns>
  39. public List<EmailModel> GetAllNeedSendEmail()
  40. {
  41. List<EmailModel> result = new List<EmailModel>();
  42. var ds = SqlHelper.ExecuteDataset(CommandType.Text, GetAllNeedSendEmailSql);
  43. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  44. {
  45. result = LoadDataList<EmailModel>(ds.Tables[0]);
  46. }
  47. return result;
  48. }
  49. /// <summary>
  50. /// 更新邮件列表为已发送
  51. /// </summary>
  52. /// <param name="models">邮件列表</param>
  53. public void UpdateEmailToSend(List<EmailModel> models)
  54. {
  55. if (models.Count == 0) return;
  56. StringBuilder sb = new StringBuilder();
  57. foreach (var model in models)
  58. {
  59. sb.Append(string.Format("{0},", model.Id));
  60. }
  61. var exeSql = string.Format(UpdateEmailToSendSql, sb.ToString().Trim(','));
  62. SqlHelper.ExecuteNonQuery(CommandType.Text, exeSql, null);
  63. }
  64. #region Sql语句
  65. /// <summary>
  66. /// 添加邮件记录的Sql语句
  67. /// </summary>
  68. private static string AddEmailSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM FCSEmail WHERE LotteryName=@LotteryName AND QiHao=@QiHao)
  69. BEGIN
  70. INSERT INTO FCSEmail
  71. SELECT @ID,@LotteryName,@QiHao,@OpenTime,0,GETDATE(),@Spare
  72. END";
  73. /// <summary>
  74. /// 获取所有待发送邮件列表的Sql语句
  75. /// </summary>
  76. private static string GetAllNeedSendEmailSql = @"SELECT ID,LotteryName,QiHao,OpenTime From FCSEmail WHERE IsSend = 0";
  77. /// <summary>
  78. /// 更新邮件为已发送的Sql语句
  79. /// </summary>
  80. private static string UpdateEmailToSendSql = @"Update FCSEmail SET IsSend = 1 WHERE ID in ({0})";
  81. #endregion Sql语句
  82. }
  83. }