using Cksoft.Data; using Cksoft.Unity; using DllEapCommon.Extensions; using DllEapEntity; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DllEapDal { public class MailSettingsDal { private IDatabase CurrDb; public MailSettingsDal(IDatabase db) { CurrDb = db; } #region MailSettings /// /// 获取列表 /// /// /// /// /// /// /// public IEnumerable GetMailSettingsList(int start, int length, string filter, string sort, string order, ref string errorinfo) { var list = CurrDb.FindListForCondition($" {filter} order by {sort} {order} limit {start - 1},{length}", ref errorinfo); return list; } /// /// 获取单个实体 /// /// /// public MailSettings GetMailSettings(int id) { string errorinfo = string.Empty; var model = CurrDb.FindEntityFor(id); return model; } public MailSettings GetMailSettingsByCode(string code) { var model = CurrDb.FindList($"select * from MailSettings where FCode='{code}'").FirstOrDefault(); return model; } /// /// 更新 /// /// /// public int UpdateMailSettings(MailSettings model, string usercode, ref string errorinfo) { try { var sql = $"select * from MailSettings where fcode='{model.FCode}' and id<>'{model.ID}'"; var temp = CurrDb.FindList(sql).FirstOrDefault(); if (temp != null) { errorinfo = "邮件类别代码已存在"; return 0; } return CurrDb.UpdateFor(model, usercode); } catch (Exception e) { errorinfo = e.Message; return 0; } } /// /// 新增 /// /// /// public int InsertMailSettings(MailSettings model, ref string errorinfo) { try { var sql = $"select * from mailsettings where fcode='{model.FCode}'"; var temp = CurrDb.FindList(sql).FirstOrDefault(); if (temp != null) { errorinfo = "邮件类别代码已存在"; return 0; } return CurrDb.InsertFor(model, model.RecCode); } catch (Exception e) { errorinfo = e.Message; return 0; } } /// /// 删除邮件配置 /// /// /// public async Task DeleteMailSetting(int id) { // 删除邮件配置下的收件人信息 var sql = "delete from mailreceiver where MailSettingsId=" + id; CurrDb.ExecuteBySql(sql); // 删除邮件配置 CurrDb.DeleteFor(id); await Task.CompletedTask; return new EapResponse() { Code = 1 }; } /// /// 获取邮件配置总的记录数 /// /// /// public int GetMailSettingsCount(string filter) { string sql = string.Format($"SELECT COUNT(1) FROM mailsettings a WHERE 1=1 {filter}"); return Convert.ToInt32(CurrDb.FindList(sql).FirstOrDefault() ?? "0"); } #endregion #region MailReceiver /// /// 获取列表 /// /// /// /// /// /// /// public IEnumerable GetMailReceiverList(int start, int length, string filter, string sort, string order, ref string errorinfo) { var list = CurrDb.FindListForCondition($" {filter} order by {sort} {order} limit {start - 1},{length}", ref errorinfo); return list; } /// /// 获取单个实体 /// /// /// public MailReceiver GetMailReceiver(int id) { string errorinfo = string.Empty; var model = CurrDb.FindEntityFor(id); return model; } public IEnumerable GetMailReceiverByMailId(int id) { return CurrDb.FindList($"select * from MailReceiver where MailSettingsId={id} and IsValid=1"); } /// /// 更新 /// /// /// public int UpdateMailReceiver(MailReceiver model, string usercode, ref string errorinfo) { var sql = $@"select * from mailreceiver where MailSettingsId={model.MailSettingsId} and MailAddress='{model.MailAddress}' and IsValid=1 and id<>'{model.ID}'"; var temp = CurrDb.FindList(sql).FirstOrDefault(); if (temp != null) { errorinfo = "此邮箱已存在"; return 0; } return CurrDb.UpdateFor(model, usercode); } /// /// 新增收件人 /// /// /// public int InsertMailReceiver(MailReceiver model, ref string errorinfo) { try { var sql = $"select * from mailreceiver where MailSettingsId={model.MailSettingsId} and MailAddress='{model.MailAddress}' and IsValid=1"; var temp = CurrDb.FindList(sql).FirstOrDefault(); if (temp != null) { errorinfo = "此邮箱已存在"; return 0; } return CurrDb.InsertFor(model, model.RecCode); } catch (Exception e) { errorinfo = e.Message; return 0; } } /// /// 删除收件人 /// /// /// public int DeleteMailReceiver(int id, string usercode, ref string errorinfo) { if (id <= 0) { errorinfo = "收件人不存在"; return 0; } try { var entity = CurrDb.FindEntity(id); if (entity == null) { errorinfo = "收件人不存在"; return 0; } entity.IsValid = 0; entity.ModCode = usercode; //entity.ModTime = DateTime.Now; return CurrDb.UpdateFor(entity, usercode); } catch (Exception e) { errorinfo = e.Message; return 0; } } /// /// 获取收件人总的记录数 /// /// /// public int GetMailReceiverCount(string filter) { string sql = string.Format($"SELECT COUNT(1) FROM mailreceiver a WHERE 1=1 {filter}"); return Convert.ToInt32(CurrDb.FindList(sql).FirstOrDefault() ?? "0"); } #endregion } }