using APPUpgradeAPI.Models; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace APPUpgradeAPI.Controllers { [Route("api/[controller]")] [ApiController] public class UpgradePackageController : Controller { public SqlSugarClient db = BaseDB.GetClient(); /// /// 新增 /// /// /// [HttpPost] public JsonResult Add(UpgradePackage info = null) { if (info == null) { return Json("参数为空"); } var result = db.Insertable(info).IgnoreColumns(it => new { it.ID }).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false; return Json(result); } /// /// 修改 /// /// /// [HttpPost] [Route("Update")] public JsonResult Update(UpgradePackage info = null) { if (info == null) { return Json("参数为空"); } var result = db.Updateable(info).IgnoreColumns(it => new { it.ID }).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.ID == info.ID).ExecuteCommand() == 1 ? true : false; return Json(result); } /// /// 查询 /// /// /// [HttpGet] [Route("GET")] public JsonResult Get(string ID = null) { if (ID == null) { return Json("参数为空"); } var result = db.Queryable().Where(it => it.ID == ID).ToList(); return Json(result); } /// /// 查询列表 /// /// [HttpGet] [Route("GetPageList")] public JsonResult GetPageList(int pageIndex, int pageSize, string APPID) { int total = 0; List data = db.Queryable().Where(it => it.DeleteFlag == "0" && it.APPID == APPID).OrderBy(u => u.ID, OrderByType.Desc).ToPageList(pageIndex, pageSize, ref total); TableModel t = new TableModel(); t.Code = 0; t.PageCount = data.Count; t.TotalNumber = total; t.Data = data; t.Msg = "成功"; return Json(t); } /// /// 查询更新日志 /// /// /// [HttpGet] [Route("GetUpdateLog")] public JsonResult GetUpdateLog(string BaseUrl) { if (BaseUrl == null) { return Json("参数为空"); } var result = db.Queryable((a, u) => new JoinQueryInfos(JoinType.Right, a.APPID == u.APPID)).Where((a, u) => a.BaseURL == BaseUrl && u.DeleteFlag == "0" && a.DeleteFlag == "0").Select((a, u) => new UpgradePackage { ID = u.ID, APPID = u.APPID, UpdateTitle = u.UpdateTitle, UpdateLog = u.UpdateLog, UpgradePackageURL = u.UpgradePackageURL, UploadTime = Convert.ToDateTime(u.UploadTime).ToString("yyyy-MM-dd HH:mm:ss"), APPType = u.APPType, Platform = u.Platform, VersionNumber = u.VersionNumber, APPState = u.APPState, Delivery = u.Delivery, DeleteFlag = u.DeleteFlag }).MergeTable().OrderBy(u => u.ID, OrderByType.Desc).ToList(); return Json(result); } [HttpGet] [Route("CheckUpdate")] public JsonResult CheckUpdate(string VersionNumber, string BaseURL) { if (string.IsNullOrEmpty(VersionNumber) && string.IsNullOrEmpty(BaseURL)) { return Json("参数为空"); } var result = db.Queryable((a, p) => new JoinQueryInfos( JoinType.Inner, a.APPID == p.APPID)) .Where((a, p) => a.BaseURL == BaseURL && p.DeleteFlag == "0") .OrderBy((a, p) => p.ID, OrderByType.Desc) .Select((a, p) => new APPInfoAndUpgradePackage { APPID = a.APPID, BaseURL = a.BaseURL, APPName = a.APPName, APPDescribe = a.APPDescribe, CreationTime = a.CreationTime, ID = p.ID, UpdateTitle = p.UpdateTitle, UpdateLog = p.UpdateLog, APPType = p.APPType, Platform = p.Platform, VersionNumber = p.VersionNumber, APPState = p.APPState, UploadTime = p.UploadTime, UpgradePackageURL = p.UpgradePackageURL, DeleteFlag = p.DeleteFlag, Delivery = p.Delivery, }).First(); if (result == null) { return Json(true); } Version v1 = new Version(VersionNumber); Version v2 = new Version(result.VersionNumber); if (v1 == v2) { return Json(true); } else { return Json(result); } //return Json(result); } /// /// 删除 /// /// /// [HttpPost] [Route("Delete")] public JsonResult Delete(UpgradePackage info = null) { if (info == null) { return Json("参数为空"); } var result = db.Updateable().SetColumns(it => new UpgradePackage() { DeleteFlag = "1" }).Where(it => it.ID == info.ID).ExecuteCommand(); ; return Json(result); } /// /// 多文件上传 /// /// 表单集合值 /// /// [HttpPost] [Route("MultiFileUpload")] public JsonResult MultiFileUpload(IFormCollection formCollection, [FromServices] IWebHostEnvironment env) { //var uploadFileRequestList = new List(); string completeFilePath = ""; try { //FormCollection转化为FormFileCollection var files = (FormFileCollection)formCollection.Files; if (files.Any()) { foreach (var file in files) { var filePath = $"\\UpgradeFile\\"; var webRootPath = AppDomain.CurrentDomain.BaseDirectory + filePath;//运行目录 //var webRootPath = env.WebRootPath + filePath;//文件根目录 //创建每日存储文件夹 if (!Directory.Exists(webRootPath)) { Directory.CreateDirectory(webRootPath); } //文件后缀 var fileExtension = Path.GetExtension(file.FileName);//获取文件格式,拓展名 //判断文件大小 var fileSize = file.Length; if (fileSize > 1024 * 1024 * 300) //10M TODO:(1mb=1024X1024b) { return new JsonResult(new { isSuccess = false, returnMsg = "文件大小超过限制", res = completeFilePath }); } //保存的文件名称(以名称和保存时间命名) var saveName = file.FileName.Substring(0, file.FileName.LastIndexOf('.')) + fileExtension; //文件保存 using (var fs = System.IO.File.Create(webRootPath + saveName)) { file.CopyTo(fs); fs.Flush(); //完整的文件路径 completeFilePath = Path.Combine(webRootPath, saveName); } //uploadFileRequestList.Add(new UpgradePackage //{ // APPID = upgradePackage.APPID, // UpdateTitle = upgradePackage.UpdateTitle, // UpdateLog = upgradePackage.UpdateLog, // APPType = upgradePackage.APPType, // Platform = upgradePackage.Platform, // VersionNumber = upgradePackage.VersionNumber, // APPState = upgradePackage.APPState, // UploadTime = upgradePackage.UploadTime, // UpgradePackageURL = completeFilePath, // DeleteFlag = upgradePackage.DeleteFlag //}); //db.Insertable(uploadFileRequestList).ExecuteCommand(); } return new JsonResult(new { isSuccess = true, returnMsg = "上传成功", res = completeFilePath }); } else { return new JsonResult(new { isSuccess = false, resultMsg = "上传失败,未检测上传的文件信息~" }); } } catch (System.Exception ex) { return new JsonResult(new { isSuccess = false, resultMsg = "文件保存失败,异常信息为:" + ex.Message }); } } } }