AppProjectParamService.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using Attribute;
  2. using Model;
  3. using Model.Base;
  4. using Repository;
  5. using Service;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Vo.Admin;
  8. using Common;
  9. using System.Text.RegularExpressions;
  10. namespace Services
  11. {
  12. /// <summary>
  13. /// APP项目对应参数Service业务层处理
  14. /// </summary>
  15. [AppService(ServiceType = typeof(IAppProjectParamService), ServiceLifetime = LifeTime.Transient)]
  16. public class AppProjectParamService : BaseService<AppProjectParam>, IAppProjectParamService
  17. {
  18. /// <summary>
  19. /// APP项目对应参数-列表
  20. /// </summary>
  21. /// <param name="param">参数请求体</param>
  22. /// <param name="page">分页参数</param>
  23. /// <returns>列表</returns>
  24. public PagedInfo<GetAppProjectParamListVo> getAppProjectParamList([FromQuery] PagerInfo page, [FromQuery] AppProjectParam param)
  25. {
  26. //拼装查询条件
  27. var predicate = Expressionable.Create<AppProjectParam>();
  28. predicate = predicate.AndIF(param.appId > 0, m => m.appId == param.appId);
  29. predicate = predicate.AndIF(param.moduleId > 0, m => m.moduleId == param.moduleId);
  30. predicate = predicate.AndIF(!string.IsNullOrEmpty(param.paramTitle), m => m.paramTitle.Contains(param.paramTitle));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(param.paramName), m => m.paramName.Contains(param.paramName));
  32. var response = Queryable()
  33. .Where(predicate.ToExpression())
  34. .OrderByDescending(m => m.id)
  35. .ToPage<AppProjectParam, GetAppProjectParamListVo>(page);
  36. return response;
  37. }
  38. /// <summary>
  39. /// APP项目对应参数-初始化数据
  40. /// </summary>
  41. /// <param name="param">参数请求体</param>
  42. /// <returns>初始化数据</returns>
  43. public void initAppProjectParam(int appId,string moduleIds, List<AppModuleAndroidCode> moduleAndroidCodes, List<AppModuleIosCode> moduleIosCodes)
  44. {
  45. if (string.IsNullOrEmpty(moduleIds))
  46. {
  47. return;
  48. }
  49. var moduleList = Tools.SpitIntArrary(moduleIds).ToList();
  50. foreach (var moduleId in moduleList)
  51. {
  52. var moduleAndroidCode = moduleAndroidCodes.FirstOrDefault(m => m.moduleId == moduleId);
  53. var moduleIosCode = moduleIosCodes.FirstOrDefault(m => m.moduleId == moduleId);
  54. List<string> paramList = new List<string>();
  55. if (moduleAndroidCode != null)
  56. {
  57. paramList.Add(moduleAndroidCode.stringsParamCode ?? "");
  58. foreach (string item in paramList)
  59. {
  60. MatchCollection matches = Regex.Matches(item, "\\$\\{.*?\\}");
  61. foreach (Match match in matches)
  62. {
  63. string paramString = match.Value;
  64. string paramName = paramString.Replace("${", "").Replace("}", "");
  65. if (!Any(m => m.appId == appId && m.moduleId == moduleAndroidCode.moduleId && m.paramName == paramName))
  66. {
  67. AppProjectParam appProjectParam = new AppProjectParam
  68. {
  69. appId = appId,
  70. moduleId = moduleAndroidCode.moduleId,
  71. paramName = paramName,
  72. createTime = DateTime.Now,
  73. createBy = "admin",
  74. };
  75. Add(appProjectParam);
  76. }
  77. }
  78. }
  79. }
  80. if (moduleIosCode != null)
  81. {
  82. paramList.Add(moduleIosCode.rightCode ?? "");
  83. paramList.Add(moduleIosCode.appDelegateLaunchCode ?? "");
  84. paramList.Add(moduleIosCode.appDelegateLaunchAsyncCode ?? "");
  85. foreach (string item in paramList)
  86. {
  87. MatchCollection matches = Regex.Matches(item, "\\$\\{.*?\\}");
  88. foreach (Match match in matches)
  89. {
  90. string paramString = match.Value;
  91. string paramName = paramString.Replace("${", "").Replace("}", "");
  92. if (!Any(m => m.appId == appId && m.moduleId == moduleIosCode.moduleId && m.paramName == paramName))
  93. {
  94. AppProjectParam appProjectParam = new AppProjectParam
  95. {
  96. appId = appId,
  97. moduleId = moduleIosCode.moduleId,
  98. paramName = paramName,
  99. createTime = DateTime.Now,
  100. createBy = "admin",
  101. };
  102. Add(appProjectParam);
  103. }
  104. }
  105. }
  106. }
  107. }
  108. }
  109. }
  110. }