EmailServices.cs 3.3 KB

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