PageUpdateInfoController.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using Attribute;
  2. using Common;
  3. using Dto;
  4. using Vo;
  5. using Enums;
  6. using Filters;
  7. using Infrastructure;
  8. using Infrastructure.Model;
  9. using Mapster;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Middleware;
  12. using Model;
  13. using Services;
  14. using Model.Base;
  15. using System.IO.Compression;
  16. namespace Controllers
  17. {
  18. /// <summary>
  19. /// PageUpdateInfo)Controller
  20. /// </summary>
  21. // [Route("PageUpdateInfo")]
  22. // [ApiExplorerSettings(GroupName = "PageUpdateInfo")]
  23. public class PageUpdateInfoController : BaseController
  24. {
  25. private readonly IPageUpdateInfoService _PageUpdateInfoService;
  26. private readonly IAppBottomNavsService _AppBottomNavsService;
  27. private readonly IFileUpdateInfoService _FileUpdateInfoService;
  28. private readonly IAppSourceSetService _AppSourceSetService;
  29. public PageUpdateInfoController(IPageUpdateInfoService PageUpdateInfoService, IAppBottomNavsService AppBottomNavsService, IFileUpdateInfoService FileUpdateInfoService, IAppSourceSetService AppSourceSetService)
  30. {
  31. _PageUpdateInfoService = PageUpdateInfoService;
  32. _AppBottomNavsService = AppBottomNavsService;
  33. _FileUpdateInfoService = FileUpdateInfoService;
  34. _AppSourceSetService = AppSourceSetService;
  35. }
  36. public string makeAppInitData([FromQuery] MakeAppInitDataDto parm, string EncryptType = "des")
  37. {
  38. string AppInfoList = _AppBottomNavsService.makeAppInitData(parm.kind, parm.appVersion, EncryptType);
  39. // Function.WriteLog(AppInfoList);
  40. string FileInfoList = _FileUpdateInfoService.makeAppInitData(parm.kind, parm.appVersion, EncryptType);
  41. var set = _AppSourceSetService.GetFirst(m => m.projectId == parm.projectId && m.kind == parm.kind);
  42. string PageInfoList = _PageUpdateInfoService.makeAppInitData(set, parm.kind, parm.appVersion, EncryptType);
  43. return AppInfoList + "#cut#" + FileInfoList + "#cut#" + PageInfoList;
  44. }
  45. [HttpGet]
  46. [Route("/noauth/pageinfo")]
  47. public IActionResult page(string v = "4.4.0", string k = "creater", string c = "", string et = "des")
  48. {
  49. string appini = makeAppInitData(new MakeAppInitDataDto()
  50. {
  51. kind = k,
  52. appVersion = v,
  53. }, et);
  54. if (!string.IsNullOrEmpty(appini))
  55. {
  56. if (appini.Contains("#cut#"))
  57. {
  58. string[] appinidata = appini.Split(new string[] { "#cut#" }, StringSplitOptions.None);
  59. string AppInfoList = appinidata[0];
  60. string SystemSet = appinidata[1];
  61. string PageInfoList = appinidata[2];
  62. string GotoPages = appinidata[3];
  63. string LibFile = appinidata[4];
  64. AppInfoList = System.Text.RegularExpressions.Regex.Unescape(AppInfoList);
  65. SystemSet = System.Text.RegularExpressions.Regex.Unescape(SystemSet);
  66. PageInfoList = System.Text.RegularExpressions.Regex.Unescape(PageInfoList);
  67. GotoPages = System.Text.RegularExpressions.Regex.Unescape(GotoPages);
  68. LibFile = System.Text.RegularExpressions.Regex.Unescape(LibFile);
  69. string startPath = "";
  70. string zipPath = "";
  71. if(c == "ios")
  72. {
  73. Function.WritePage("ini", "AppInfoList.ini", AppInfoList);
  74. Function.WritePage("ini", "SystemSet.ini", SystemSet);
  75. Function.WritePage("ini", "PageInfoList.ini", PageInfoList);
  76. Function.WritePage("ini", "GotoPages.ini", GotoPages);
  77. Function.WritePage("ini", "LibFile.ini", LibFile);
  78. startPath = Function.getPath("ini");
  79. zipPath = Function.getPath("ini.zip");
  80. }
  81. else
  82. {
  83. Function.WritePage("txt", "AppInfoList.txt", AppInfoList);
  84. Function.WritePage("txt", "SystemSet.txt", SystemSet);
  85. Function.WritePage("txt", "PageInfoList.txt", PageInfoList);
  86. Function.WritePage("txt", "GotoPages.txt", GotoPages);
  87. Function.WritePage("txt", "LibFile.txt", LibFile);
  88. startPath = Function.getPath(path_str: "txt");
  89. zipPath = Function.getPath("txt.zip");
  90. }
  91. if(System.IO.File.Exists(zipPath))
  92. {
  93. System.IO.File.Delete(zipPath);
  94. }
  95. ZipFile.CreateFromDirectory(startPath, zipPath);
  96. var stream = System.IO.File.OpenRead(zipPath);
  97. return File(stream, "text/plain", Path.GetFileName(zipPath));
  98. }
  99. }
  100. return Content("fail");
  101. }
  102. [HttpGet]
  103. [Route("/noauth/static")]
  104. public IActionResult staticFile(int p, string v = "4.4.0", string k = "creater")
  105. {
  106. var set = _AppSourceSetService.GetFirst(m => m.projectId == p && m.kind == k);
  107. if(set != null)
  108. {
  109. }
  110. return Content("fail");
  111. }
  112. }
  113. }