CommonLangService.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using Infrastructure.Attribute;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using ZR.Model;
  7. using ZR.Model.Dto;
  8. using ZR.Model.Models;
  9. using ZR.Repository;
  10. using ZR.Service.System.IService;
  11. namespace ZR.Service.System
  12. {
  13. /// <summary>
  14. /// 多语言配置Service业务层处理
  15. ///
  16. /// @author zr
  17. /// @date 2022-05-06
  18. /// </summary>
  19. [AppService(ServiceType = typeof(ICommonLangService), ServiceLifetime = LifeTime.Transient)]
  20. public class CommonLangService : BaseService<CommonLang>, ICommonLangService
  21. {
  22. #region 业务逻辑代码
  23. /// <summary>
  24. /// 查询多语言配置列表
  25. /// </summary>
  26. /// <param name="parm"></param>
  27. /// <returns></returns>
  28. public PagedInfo<CommonLang> GetList(CommonLangQueryDto parm)
  29. {
  30. //开始拼装查询条件
  31. var predicate = Expressionable.Create<CommonLang>();
  32. //搜索条件查询语法参考Sqlsugar
  33. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangCode), it => it.LangCode == parm.LangCode);
  34. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangKey), it => it.LangKey.Contains(parm.LangKey));
  35. predicate = predicate.AndIF(parm.BeginAddtime != null, it => it.Addtime >= parm.BeginAddtime && it.Addtime <= parm.EndAddtime);
  36. var response = Queryable()
  37. .Where(predicate.ToExpression())
  38. .ToPage(parm);
  39. return response;
  40. }
  41. /// <summary>
  42. /// 行转列
  43. /// </summary>
  44. /// <param name="parm"></param>
  45. /// <returns></returns>
  46. public dynamic GetListToPivot(CommonLangQueryDto parm)
  47. {
  48. //开始拼装查询条件
  49. var predicate = Expressionable.Create<CommonLang>();
  50. //搜索条件查询语法参考Sqlsugar
  51. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangCode), it => it.LangCode == parm.LangCode);
  52. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangKey), it => it.LangKey.Contains(parm.LangKey));
  53. predicate = predicate.AndIF(parm.BeginAddtime != null, it => it.Addtime >= parm.BeginAddtime && it.Addtime <= parm.EndAddtime);
  54. var response = Queryable()
  55. .Where(predicate.ToExpression())
  56. .ToPivotList(it => it.LangCode, it => it.LangKey, it => it.Max(f => f.LangName));
  57. return response;
  58. }
  59. public List<CommonLang> GetLangList(CommonLangQueryDto parm)
  60. {
  61. //开始拼装查询条件
  62. var predicate = Expressionable.Create<CommonLang>();
  63. //搜索条件查询语法参考Sqlsugar
  64. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangCode), it => it.LangCode == parm.LangCode);
  65. //predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.LangKey), it => it.LangKey.Contains(parm.LangKey));
  66. var response = Queryable()
  67. .Where(predicate.ToExpression())
  68. .ToList();
  69. return response;
  70. }
  71. public void StorageCommonLang(CommonLangDto parm)
  72. {
  73. List<CommonLang> langs = new();
  74. foreach (var item in parm.LangList)
  75. {
  76. langs.Add(new CommonLang()
  77. {
  78. Addtime = DateTime.Now,
  79. LangKey = parm.LangKey,
  80. LangCode = item.LangCode,
  81. LangName = item.LangName,
  82. });
  83. }
  84. var storage = Storageable(langs)
  85. .WhereColumns(it => new { it.LangKey, it.LangCode })
  86. .ToStorage();
  87. storage.AsInsertable.ExecuteReturnSnowflakeIdList();//执行插入
  88. storage.AsUpdateable.UpdateColumns(it => new { it.LangName }).ExecuteCommand();//执行修改
  89. }
  90. public Dictionary<string, object> SetLang(List<CommonLang> msgList)
  91. {
  92. Dictionary<string, object> dic = new();
  93. foreach (var item in msgList)
  94. {
  95. if (!dic.ContainsKey(item.LangKey))
  96. {
  97. dic.Add(item.LangKey, item.LangName);
  98. }
  99. }
  100. return dic;
  101. }
  102. #endregion
  103. }
  104. }