using Cksoft.Data; using DllEapEntity; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DllEapDal.OFILM { public class NoticeConfigDal { private IDatabase CurrDb = null; public NoticeConfigDal(IDatabase db) { CurrDb = db; } public IEnumerable Get(int start, int length, string order, string sort, string filter, string errorinfo) { var pros = CurrDb.FindListForCondition($" {filter} order by {sort} {order} limit {start - 1},{length}", ref errorinfo); if (pros != null && pros.Count() > 0) { foreach (var item in pros) { item.NoticeConfigDetails = CurrDb.FindListForCondition($" and a.MstId={item.Id}", ref errorinfo); item.PushNames = string.Join("|", item.NoticeConfigDetails.Select(c => c.FName)); } } return pros; } public int GetCount(string filter) { string errorinfo = string.Empty; var entities = CurrDb.FindListForCondition(filter, ref errorinfo); if (entities != null) { return entities.Count(); } return 0; } public NoticeConfig Get(int id) { var pro = CurrDb.FindEntityFor(id); string errorinfo = string.Empty; if (pro != null) { pro.NoticeConfigDetails = CurrDb.FindListForCondition($" and a.MstId={pro.Id}", ref errorinfo); } return pro; } public NoticeConfig GetByFactory(int factoryId) { string errorinfo = string.Empty; var pro = CurrDb.FindListForCondition($" and a.factoryId={factoryId} and a.isUse=1", ref errorinfo).FirstOrDefault(); if (pro != null) { pro.NoticeConfigDetails = CurrDb.FindListForCondition($" and a.MstId={pro.Id}", ref errorinfo); } return pro; } public int Add(NoticeConfig pro, string userCode, ref string errorinfo) { var entities = CurrDb.FindListForCondition($" and a.factoryId='{pro.FactoryId}' ", ref errorinfo); if (entities != null && entities.Count() > 0) { errorinfo = "已存在该园区的蓝信推送人员配置,请不要重复添加"; return -1; } pro.IsUse = 1; CurrDb.InsertFor(pro, userCode); var sql = "select @@identity;"; var id = Convert.ToInt32(CurrDb.FindList(sql).FirstOrDefault() ?? "-1"); if (pro.NoticeConfigDetails != null && pro.NoticeConfigDetails.Count() > 0) { var details = new List(); foreach (var item in pro.NoticeConfigDetails) { details.Add(new NoticeConfigDetail { MstId = id, RecCode = userCode, ModCode = userCode, StaffId = item.StaffId }); } if (CurrDb.InsertFor(details, string.Empty) < 0) { errorinfo = "新增人员配置信息失败"; return -1; } } return id; } public int Update(NoticeConfig role, string userCode, ref string errorinfo) { var entities = CurrDb.FindListForCondition($" and a.FactoryId='{role.FactoryId}' " + $"and a.ID<>{role.Id}", ref errorinfo); if (entities != null && entities.Count() > 0) { errorinfo = "已存在该园区的蓝信推送人员配置,请不要重复添加"; return -1; } var sql = $"delete from noticeconfigdetail where mstid={role.Id}"; if (CurrDb.ExecuteBySql(sql) < 0) { errorinfo = "删除原人员信息失败"; return -1; } if (role.NoticeConfigDetails != null && role.NoticeConfigDetails.Count() > 0) { var details = new List(); foreach (var item in role.NoticeConfigDetails) { details.Add(new NoticeConfigDetail { MstId = role.Id, StaffId = item.StaffId }); } if (CurrDb.InsertFor(details, string.Empty) < 0) { errorinfo = "修改人员配置信息失败"; return -1; } } role.ModTime = DateTime.Now; if (CurrDb.UpdateFor(role, userCode) < 0) { return -1; } return role.Id; } public int Delete(int id, ref string msg) { if (CurrDb.DeleteFor(id) < 0) { msg = "删除失败"; return -1; } msg = string.Empty; return 1; } public int ChangeIsUse(NoticeConfig noticeConfig, ref string errorinfo) { var sql = $"update NoticeConfig set isUse={noticeConfig.IsUse} " + $"where id={noticeConfig.Id}"; if (CurrDb.ExecuteBySql(sql) < 0) { errorinfo = "修改失败"; return -1; } return 1; } } }