using Attribute; using Common; using Dto; using Vo; using Enums; using Filters; using Infrastructure; using Infrastructure.Model; using Mapster; using Microsoft.AspNetCore.Mvc; using Middleware; using Model; using Services; using Model.Base; using System.IO.Compression; namespace Controllers { /// /// PageUpdateInfo)Controller /// // [Route("PageUpdateInfo")] // [ApiExplorerSettings(GroupName = "PageUpdateInfo")] public class PageUpdateInfoController : BaseController { private readonly IPageUpdateInfoService _PageUpdateInfoService; private readonly IAppBottomNavsService _AppBottomNavsService; private readonly IFileUpdateInfoService _FileUpdateInfoService; private readonly IAppSourceSetService _AppSourceSetService; public PageUpdateInfoController(IPageUpdateInfoService PageUpdateInfoService, IAppBottomNavsService AppBottomNavsService, IFileUpdateInfoService FileUpdateInfoService, IAppSourceSetService AppSourceSetService) { _PageUpdateInfoService = PageUpdateInfoService; _AppBottomNavsService = AppBottomNavsService; _FileUpdateInfoService = FileUpdateInfoService; _AppSourceSetService = AppSourceSetService; } public string makeAppInitData([FromQuery] MakeAppInitDataDto parm, string EncryptType = "des") { string AppInfoList = _AppBottomNavsService.makeAppInitData(parm.kind, parm.appVersion, EncryptType); // Function.WriteLog(AppInfoList); string FileInfoList = _FileUpdateInfoService.makeAppInitData(parm.kind, parm.appVersion, EncryptType); var set = _AppSourceSetService.GetFirst(m => m.projectId == parm.projectId && m.kind == parm.kind); string PageInfoList = _PageUpdateInfoService.makeAppInitData(set, parm.kind, parm.appVersion, EncryptType); return AppInfoList + "#cut#" + FileInfoList + "#cut#" + PageInfoList; } [HttpGet] [Route("/noauth/pageinfo")] public IActionResult page(string v = "4.4.0", string k = "creater", string c = "", string et = "des") { string appini = makeAppInitData(new MakeAppInitDataDto() { kind = k, appVersion = v, }, et); if (!string.IsNullOrEmpty(appini)) { if (appini.Contains("#cut#")) { string[] appinidata = appini.Split(new string[] { "#cut#" }, StringSplitOptions.None); string AppInfoList = appinidata[0]; string SystemSet = appinidata[1]; string PageInfoList = appinidata[2]; string GotoPages = appinidata[3]; string LibFile = appinidata[4]; AppInfoList = System.Text.RegularExpressions.Regex.Unescape(AppInfoList); SystemSet = System.Text.RegularExpressions.Regex.Unescape(SystemSet); PageInfoList = System.Text.RegularExpressions.Regex.Unescape(PageInfoList); GotoPages = System.Text.RegularExpressions.Regex.Unescape(GotoPages); LibFile = System.Text.RegularExpressions.Regex.Unescape(LibFile); string startPath = ""; string zipPath = ""; if(c == "ios") { Function.WritePage("ini", "AppInfoList.ini", AppInfoList); Function.WritePage("ini", "SystemSet.ini", SystemSet); Function.WritePage("ini", "PageInfoList.ini", PageInfoList); Function.WritePage("ini", "GotoPages.ini", GotoPages); Function.WritePage("ini", "LibFile.ini", LibFile); startPath = Function.getPath("ini"); zipPath = Function.getPath("ini.zip"); } else { Function.WritePage("txt", "AppInfoList.txt", AppInfoList); Function.WritePage("txt", "SystemSet.txt", SystemSet); Function.WritePage("txt", "PageInfoList.txt", PageInfoList); Function.WritePage("txt", "GotoPages.txt", GotoPages); Function.WritePage("txt", "LibFile.txt", LibFile); startPath = Function.getPath(path_str: "txt"); zipPath = Function.getPath("txt.zip"); } if(System.IO.File.Exists(zipPath)) { System.IO.File.Delete(zipPath); } ZipFile.CreateFromDirectory(startPath, zipPath); var stream = System.IO.File.OpenRead(zipPath); return File(stream, "text/plain", Path.GetFileName(zipPath)); } } return Content("fail"); } [HttpGet] [Route("/noauth/static")] public IActionResult staticFile(int p, string v = "4.4.0", string k = "creater") { var set = _AppSourceSetService.GetFirst(m => m.projectId == p && m.kind == k); if(set != null) { } return Content("fail"); } } }