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
}
}