EmailServices.cs 3.3 KB

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