MailSettingsDal.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. using Cksoft.Data;
  2. using Cksoft.Unity;
  3. using DllEapCommon.Extensions;
  4. using DllEapEntity;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace DllEapDal
  11. {
  12. public class MailSettingsDal
  13. {
  14. private IDatabase CurrDb;
  15. public MailSettingsDal(IDatabase db)
  16. {
  17. CurrDb = db;
  18. }
  19. #region MailSettings
  20. /// <summary>
  21. /// 获取列表
  22. /// </summary>
  23. /// <param name="start"></param>
  24. /// <param name="end"></param>
  25. /// <param name="filter"></param>
  26. /// <param name="sort"></param>
  27. /// <param name="order"></param>
  28. /// <returns></returns>
  29. public IEnumerable<MailSettings> GetMailSettingsList(int start, int length, string filter, string sort, string order, ref string errorinfo)
  30. {
  31. var list = CurrDb.FindListForCondition<MailSettings>($" {filter} order by {sort} {order} limit {start - 1},{length}",
  32. ref errorinfo);
  33. return list;
  34. }
  35. /// <summary>
  36. /// 获取单个实体
  37. /// </summary>
  38. /// <param name="id"></param>
  39. /// <returns></returns>
  40. public MailSettings GetMailSettings(int id)
  41. {
  42. string errorinfo = string.Empty;
  43. var model = CurrDb.FindEntityFor<MailSettings>(id);
  44. return model;
  45. }
  46. public MailSettings GetMailSettingsByCode(string code)
  47. {
  48. var model = CurrDb.FindList<MailSettings>($"select * from MailSettings where FCode='{code}'").FirstOrDefault();
  49. return model;
  50. }
  51. /// <summary>
  52. /// 更新
  53. /// </summary>
  54. /// <param name="t"></param>
  55. /// <returns></returns>
  56. public int UpdateMailSettings(MailSettings model, string usercode, ref string errorinfo)
  57. {
  58. try
  59. {
  60. var sql = $"select * from MailSettings where fcode='{model.FCode}' and id<>'{model.ID}'";
  61. var temp = CurrDb.FindList<MailSettings>(sql).FirstOrDefault();
  62. if (temp != null)
  63. {
  64. errorinfo = "邮件类别代码已存在";
  65. return 0;
  66. }
  67. return CurrDb.UpdateFor<MailSettings>(model, usercode);
  68. }
  69. catch (Exception e)
  70. {
  71. errorinfo = e.Message;
  72. return 0;
  73. }
  74. }
  75. /// <summary>
  76. /// 新增
  77. /// </summary>
  78. /// <param name="t"></param>
  79. /// <returns></returns>
  80. public int InsertMailSettings(MailSettings model, ref string errorinfo)
  81. {
  82. try
  83. {
  84. var sql = $"select * from mailsettings where fcode='{model.FCode}'";
  85. var temp = CurrDb.FindList<MailSettings>(sql).FirstOrDefault();
  86. if (temp != null)
  87. {
  88. errorinfo = "邮件类别代码已存在";
  89. return 0;
  90. }
  91. return CurrDb.InsertFor(model, model.RecCode);
  92. }
  93. catch (Exception e)
  94. {
  95. errorinfo = e.Message;
  96. return 0;
  97. }
  98. }
  99. /// <summary>
  100. /// 删除邮件配置
  101. /// </summary>
  102. /// <param name="id"></param>
  103. /// <returns></returns>
  104. public async Task<EapResponse> DeleteMailSetting(int id)
  105. {
  106. // 删除邮件配置下的收件人信息
  107. var sql = "delete from mailreceiver where MailSettingsId=" + id;
  108. CurrDb.ExecuteBySql(sql);
  109. // 删除邮件配置
  110. CurrDb.DeleteFor<MailSettings>(id);
  111. await Task.CompletedTask;
  112. return new EapResponse() { Code = 1 };
  113. }
  114. /// <summary>
  115. /// 获取邮件配置总的记录数
  116. /// </summary>
  117. /// <param name="filter"></param>
  118. /// <returns></returns>
  119. public int GetMailSettingsCount(string filter)
  120. {
  121. string sql = string.Format($"SELECT COUNT(1) FROM mailsettings a WHERE 1=1 {filter}");
  122. return Convert.ToInt32(CurrDb.FindList<string>(sql).FirstOrDefault() ?? "0");
  123. }
  124. #endregion
  125. #region MailReceiver
  126. /// <summary>
  127. /// 获取列表
  128. /// </summary>
  129. /// <param name="start"></param>
  130. /// <param name="end"></param>
  131. /// <param name="filter"></param>
  132. /// <param name="sort"></param>
  133. /// <param name="order"></param>
  134. /// <returns></returns>
  135. public IEnumerable<MailReceiver> GetMailReceiverList(int start, int length, string filter, string sort, string order, ref string errorinfo)
  136. {
  137. var list = CurrDb.FindListForCondition<MailReceiver>($" {filter} order by {sort} {order} limit {start - 1},{length}",
  138. ref errorinfo);
  139. return list;
  140. }
  141. /// <summary>
  142. /// 获取单个实体
  143. /// </summary>
  144. /// <param name="id"></param>
  145. /// <returns></returns>
  146. public MailReceiver GetMailReceiver(int id)
  147. {
  148. string errorinfo = string.Empty;
  149. var model = CurrDb.FindEntityFor<MailReceiver>(id);
  150. return model;
  151. }
  152. public IEnumerable<MailReceiver> GetMailReceiverByMailId(int id)
  153. {
  154. return CurrDb.FindList<MailReceiver>($"select * from MailReceiver where MailSettingsId={id} and IsValid=1");
  155. }
  156. /// <summary>
  157. /// 更新
  158. /// </summary>
  159. /// <param name="t"></param>
  160. /// <returns></returns>
  161. public int UpdateMailReceiver(MailReceiver model, string usercode, ref string errorinfo)
  162. {
  163. var sql = $@"select * from mailreceiver where MailSettingsId={model.MailSettingsId}
  164. and MailAddress='{model.MailAddress}' and IsValid=1 and id<>'{model.ID}'";
  165. var temp = CurrDb.FindList<MailReceiver>(sql).FirstOrDefault();
  166. if (temp != null)
  167. {
  168. errorinfo = "此邮箱已存在";
  169. return 0;
  170. }
  171. return CurrDb.UpdateFor<MailReceiver>(model, usercode);
  172. }
  173. /// <summary>
  174. /// 新增收件人
  175. /// </summary>
  176. /// <param name="t"></param>
  177. /// <returns></returns>
  178. public int InsertMailReceiver(MailReceiver model, ref string errorinfo)
  179. {
  180. try
  181. {
  182. var sql = $"select * from mailreceiver where MailSettingsId={model.MailSettingsId} and MailAddress='{model.MailAddress}' and IsValid=1";
  183. var temp = CurrDb.FindList<MailReceiver>(sql).FirstOrDefault();
  184. if (temp != null)
  185. {
  186. errorinfo = "此邮箱已存在";
  187. return 0;
  188. }
  189. return CurrDb.InsertFor(model, model.RecCode);
  190. }
  191. catch (Exception e)
  192. {
  193. errorinfo = e.Message;
  194. return 0;
  195. }
  196. }
  197. /// <summary>
  198. /// 删除收件人
  199. /// </summary>
  200. /// <param name="ids"></param>
  201. /// <returns></returns>
  202. public int DeleteMailReceiver(int id, string usercode, ref string errorinfo)
  203. {
  204. if (id <= 0)
  205. {
  206. errorinfo = "收件人不存在";
  207. return 0;
  208. }
  209. try
  210. {
  211. var entity = CurrDb.FindEntity<MailReceiver>(id);
  212. if (entity == null)
  213. {
  214. errorinfo = "收件人不存在";
  215. return 0;
  216. }
  217. entity.IsValid = 0;
  218. entity.ModCode = usercode;
  219. //entity.ModTime = DateTime.Now;
  220. return CurrDb.UpdateFor(entity, usercode);
  221. }
  222. catch (Exception e)
  223. {
  224. errorinfo = e.Message;
  225. return 0;
  226. }
  227. }
  228. /// <summary>
  229. /// 获取收件人总的记录数
  230. /// </summary>
  231. /// <param name="filter"></param>
  232. /// <returns></returns>
  233. public int GetMailReceiverCount(string filter)
  234. {
  235. string sql = string.Format($"SELECT COUNT(1) FROM mailreceiver a WHERE 1=1 {filter}");
  236. return Convert.ToInt32(CurrDb.FindList<string>(sql).FirstOrDefault() ?? "0");
  237. }
  238. #endregion
  239. }
  240. }