using Dm; using Model.ModelDto.SysDto; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IDAL.ISysInterface; namespace WMS.DAL.SysInfrastructure { public class DictionaryRepository : BaseRepository<SysDictionary>, IDictionaryRepository { private static readonly SqlSugarScope Db = DataContext.Db; public DictionaryRepository() : base(Db) { } /// <summary> /// 获å–å—典信æ¯åˆ—表 /// </summary> /// <param name="DictName">å—å…¸åç§°</param> /// <param name="DictNo">父级å—å…¸å·</param> /// <param name="Level">层级</param> /// <param name="IsEdit">å…许编辑</param> /// <param name="IsAdd">å…许新增</param> /// <returns></returns> public List<DictionaryDto> GetDicList(string DictName, string DictNo, string Level, string IsEdit, string IsAdd) { string str = "select dic.*,user1.RealName CreateName from SysDictionary dic left join SysUserInfor user1 on dic.CreateUser = user1.Id where dic.IsDel = @isdel"; //判æ–层级 if (Level == "1") { str += " and dic.Level = @level"; } //判æ–å…许编辑 if (!string.IsNullOrEmpty(IsEdit)) { str += " and dic.IsEdit = @isedit"; } //判æ–å…许新增 if (!string.IsNullOrEmpty(IsAdd)) { str += " and dic.IsAdd = @isadd"; } //判æ–å—å…¸å称是å¦ä¸ºç©º if (!string.IsNullOrEmpty(DictName)) { if (Level == "1") { str += " and dic.ParentNo in (select DictNo from SysDictionary where DictName like @dictname)"; } if (Level == "0") { str += " and dic.DictName like @dictname"; } if (string.IsNullOrEmpty(Level)) { str += " and dic.DictName like @dictname or dic.ParentNo in (select DictNo from SysDictionary where DictName like @dictname)"; } } //判æ–父级å—兏巿˜¯å¦ä¸ºç©º if (!string.IsNullOrEmpty(DictNo)) { if (Level == "1") { str += " and dic.ParentNo = @dictno"; } if (Level == "0") { str += " and dic.DictNo = @dictno"; } if (string.IsNullOrEmpty(Level)) { str += " and dic.DictNo = @dictno or dic.ParentNo = @dictno"; } } //判æ–层级 if (Level == "0") { str += " and dic.Level = @level"; } //排åº(æ ¹æ®ord显示顺åº) str += " and dic.IsPublic ='0'"; List<DictionaryDto> diclist = Db.Ado.SqlQuery<DictionaryDto>(str, new { isdel = "0", //是å¦åˆ 除 dictname = "%" + DictName + "%", //å—å…¸åç§° dictno = DictNo, //å—å…¸å· level = Level, //层级 isedit = IsEdit, //å…许编辑 isadd = IsAdd //å…许新增 }); diclist = diclist.OrderBy(a => int.Parse(a.Ord)).ToList(); return diclist; } /// <summary> /// æ ¹æ®id获å–å—å…¸ä¿¡æ¯ /// </summary> /// <param name="id">å—å…¸id</param> /// <returns></returns> public SysDictionary GetDicById(int id) { string str = "select dic.*,user1.UserName CreateName from SysDictionary dic left join SysUserInfor user1 on dic.CreateUser = user1.Id where dic.IsDel = @isdel and dic.Id = @id"; SysDictionary dic = Db.Ado.SqlQuery<SysDictionary>(str, new { isdel = "0", //是å¦åˆ 除 id //id }).First(); return dic; } /// <summary> /// 获å–父级å—å…¸å·(æ ¹æ®å±‚çº§æ ¹ç›®å½•) /// </summary> /// <returns></returns> public List<SysDictionary> GetDicParentListByLevel() { string str = "select Id,DictNo,DictName,ParentNo,Level from SysDictionary where Level = @level and IsDel = @isdel and IsAdd = @isadd"; List<SysDictionary> diclist = Db.Ado.SqlQuery<SysDictionary>(str, new { level = "0", //层级 isdel = "0", //是å¦åˆ 除 isadd = "0" //å…è®¸æ·»åŠ }); return diclist; } /// <summary> /// æ ¹æ®ç¼–å·æŸ¥è¯¢å—å…¸ä¿¡æ¯ /// </summary> /// <param name="DictNo">å—典编å·</param> /// <returns></returns> public List<SysDictionary> GetDicByNo(string DictNo) { string str = $"select * from SysDictionary where DictNo = @dictno"; List<SysDictionary> diclist = Db.Ado.SqlQuery<SysDictionary>(str, new { dictno = DictNo //å—å…¸ç¼–å· }); return diclist; } /// <summary> /// 新增å—å…¸ä¿¡æ¯ /// </summary> /// <param name="dic">æ•°æ®å—典实体模型</param> /// <returns></returns> public async Task<int> AddDic(SysDictionary dic) { //èŽ·å–æ˜¯å¦æ‹¥æœ‰ç›¸åŒå—å…¸åç§° if (!string.IsNullOrEmpty(dic.DictName)) { var dicno = Db.Queryable<SysDictionary>().First(a => a.DictName == dic.DictName); if (dicno != null) { throw new Exception("èŽ·å–æ˜¯å¦æ‹¥æœ‰ç›¸åŒå—å…¸åç§°"); } } else { throw new Exception("å—å…¸åç§°ä¸ºç©ºï¼Œè¯·æ ¸å®žï¼"); } string str = "insert into SysDictionary values(@dictno, @dictname, @parentno, @ord, @level, @ispublic, @isedit, @isadd, @isdel, @createtime, @createuser, null, null)"; //int i = await CudAsync(str, new int i = await Db.Ado.ExecuteCommandAsync(str, new { dictno = dic.DictNo, //å—å…¸ç¼–å· dictname = dic.DictName, //å—å…¸åç§° parentno = dic.ParentNo, //父级å—å…¸å· ord = dic.Ord, //æ˜¾ç¤ºé¡ºåº level = dic.Level, //层级 ispublic = dic.IsPublic, //是å¦å…¬å¼€ isedit = dic.IsEdit, //å…许编辑 isadd = dic.IsAdd, //å…è®¸æ·»åŠ isdel = "0", //是å¦åˆ 除 createtime = Db.GetDate(), //创建时间 createuser = dic.CreateUser //创建人 }); return i; } /// <summary> /// åˆ é™¤å—å…¸ä¿¡æ¯ /// </summary> /// <param name="dic">æ•°æ®å—典实体模型</param> /// <returns></returns> public async Task<int> DelDic(SysDictionary dic) { string str = $"update SysDictionary set IsDel = @isdel, UpdateTime = @updatetime, UpdateUser = @updateuser where id = @id"; int i = await Db.Ado.ExecuteCommandAsync(str, new { isdel = "1", //是å¦åˆ 除 updatetime = Db.GetDate(), //更改时间 updateuser = dic.UpdateUser, //更改人 id = dic.Id //id }); return i; } /// <summary> /// 编辑å—å…¸ä¿¡æ¯ /// </summary> /// <param name="dic">æ•°æ®å—典实体模型</param> /// <returns></returns> public async Task<int> ExitDic(SysDictionary dic) { //èŽ·å–æ˜¯å¦æ‹¥æœ‰ç›¸åŒå—å…¸åç§° if (!string.IsNullOrEmpty(dic.DictName)) { var dicno = Db.Queryable<SysDictionary>().First(a => a.DictName == dic.DictName); if (dicno != null) { throw new Exception("èŽ·å–æ˜¯å¦æ‹¥æœ‰ç›¸åŒå—å…¸åç§°"); } } else { throw new Exception("å—å…¸åç§°ä¸ºç©ºï¼Œè¯·æ ¸å®žï¼"); } string str = "update SysDictionary set DictNo = @dictno, DictName = @dictname, ParentNo = @parentno, Ord = @ord, IsPublic = @ispublic, IsEdit = @isedit, IsAdd = @isadd, UpdateTime = @updatetime, UpdateUser = @updateuser where id = @id"; int i = await Db.Ado.ExecuteCommandAsync(str, new { dictno = dic.DictNo, //å—å…¸ç¼–å· dictname = dic.DictName, //å—å…¸åç§° parentno = dic.ParentNo, //父级å—å…¸å· ord = dic.Ord, //æ˜¾ç¤ºé¡ºåº //level = dic.Level, //层级 ispublic = dic.IsPublic, //是å¦å…¬å¼€ isedit = dic.IsEdit, //å…许编辑 isadd = dic.IsAdd, //å…è®¸æ·»åŠ updatetime = Db.GetDate(), //更改时间 updateuser = dic.UpdateUser, //更改人 id = dic.Id //id }); return i; } } internal class NewClass { public NewClass() { } public override bool Equals(object obj) { return obj is NewClass other; } public override int GetHashCode() { return 0; } } }