SysDictDataService.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. using Infrastructure.Attribute;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using ZR.Common;
  7. using ZR.Model;
  8. using ZR.Model.System;
  9. using ZR.Service.System.IService;
  10. namespace ZR.Service.System
  11. {
  12. /// <summary>
  13. /// 字典数据类
  14. /// </summary>
  15. [AppService(ServiceType = typeof(ISysDictDataService), ServiceLifetime = LifeTime.Transient)]
  16. public class SysDictDataService : BaseService<SysDictData>, ISysDictDataService
  17. {
  18. /// <summary>
  19. /// 查询字典数据
  20. /// </summary>
  21. /// <param name="dictData"></param>
  22. /// <param name="pagerInfo"></param>
  23. /// <returns></returns>
  24. public PagedInfo<SysDictData> SelectDictDataList(SysDictData dictData, PagerInfo pagerInfo)
  25. {
  26. //return SysDictDataRepository.SelectDictDataList(dictData, pagerInfo);
  27. var exp = Expressionable.Create<SysDictData>();
  28. exp.AndIF(!string.IsNullOrEmpty(dictData.DictLabel), it => it.DictLabel.Contains(dictData.DictLabel));
  29. exp.AndIF(!string.IsNullOrEmpty(dictData.Status), it => it.Status == dictData.Status);
  30. exp.AndIF(!string.IsNullOrEmpty(dictData.DictType), it => it.DictType == dictData.DictType);
  31. return GetPages(exp.ToExpression(), pagerInfo);
  32. }
  33. /// <summary>
  34. /// 根据字典类型查询
  35. /// </summary>
  36. /// <param name="dictType"></param>
  37. /// <returns></returns>
  38. public List<SysDictData> SelectDictDataByType(string dictType)
  39. {
  40. string CK = $"SelectDictDataByType_{dictType}";
  41. if (CacheHelper.GetCache(CK) is not List<SysDictData> list)
  42. {
  43. list = Queryable().Where(f => f.Status == "0" && f.DictType == dictType)
  44. .OrderBy(it => it.DictSort)
  45. .ToList();
  46. CacheHelper.SetCache(CK, list, 30);
  47. }
  48. return list;
  49. }
  50. public List<SysDictData> SelectDictDataByTypes(string[] dictTypes)
  51. {
  52. string CK = $"SelectDictDataByTypes_{dictTypes}";
  53. if (CacheHelper.GetCache(CK) is not List<SysDictData> list)
  54. {
  55. list = Queryable().Where(f => f.Status == "0" && dictTypes.Contains(f.DictType))
  56. .OrderBy(it => it.DictSort)
  57. .ToList();
  58. //CacheHelper.SetCache(CK, list, 30);
  59. }
  60. return list;
  61. }
  62. /// <summary>
  63. /// 根据字典数据ID查询信息
  64. /// </summary>
  65. /// <param name="dictCode"></param>
  66. /// <returns></returns>
  67. public SysDictData SelectDictDataById(long dictCode)
  68. {
  69. string CK = $"SelectDictDataByCode_{dictCode}";
  70. if (CacheHelper.GetCache(CK) is not SysDictData list)
  71. {
  72. list = GetFirst(f => f.DictCode == dictCode);
  73. CacheHelper.SetCache(CK, list, 5);
  74. }
  75. return list;
  76. }
  77. /// <summary>
  78. /// 插入数据
  79. /// </summary>
  80. /// <param name="dict"></param>
  81. /// <returns></returns>
  82. public long InsertDictData(SysDictData dict)
  83. {
  84. return Insertable(dict).ExecuteReturnBigIdentity();
  85. }
  86. /// <summary>
  87. /// 修改数据
  88. /// </summary>
  89. /// <param name="dict"></param>
  90. /// <returns></returns>
  91. public long UpdateDictData(SysDictData dict)
  92. {
  93. var result = Update(w => w.DictCode == dict.DictCode, it => new SysDictData()
  94. {
  95. Remark = dict.Remark,
  96. Update_time = DateTime.Now,
  97. DictSort = dict.DictSort,
  98. DictLabel = dict.DictLabel,
  99. DictValue = dict.DictValue,
  100. Status = dict.Status,
  101. CssClass = dict.CssClass,
  102. ListClass = dict.ListClass
  103. });
  104. CacheHelper.Remove($"SelectDictDataByCode_{dict.DictCode}");
  105. return result;
  106. }
  107. /// <summary>
  108. /// 批量删除字典数据信息
  109. /// </summary>
  110. /// <param name="dictCodes"></param>
  111. /// <returns></returns>
  112. public int DeleteDictDataByIds(long[] dictCodes)
  113. {
  114. return Delete(dictCodes);
  115. }
  116. /// <summary>
  117. /// 同步修改字典类型
  118. /// </summary>
  119. /// <param name="old_dictType">旧字典类型</param>
  120. /// <param name="new_dictType">新字典类型</param>
  121. /// <returns></returns>
  122. public int UpdateDictDataType(string old_dictType, string new_dictType)
  123. {
  124. //只更新DictType字段根据where条件
  125. return Context.Updateable<SysDictData>()
  126. .SetColumns(t => new SysDictData() { DictType = new_dictType })
  127. .Where(f => f.DictType == old_dictType)
  128. .ExecuteCommand();
  129. }
  130. /// <summary>
  131. /// 根据字典类型查询自定义sql
  132. /// </summary>
  133. /// <param name="sysDictType"></param>
  134. /// <returns></returns>
  135. public List<SysDictData> SelectDictDataByCustomSql(SysDictType sysDictType)
  136. {
  137. return Context.Ado.SqlQuery<SysDictData>(sysDictType?.CustomSql).ToList();
  138. }
  139. }
  140. }