266 lines
10 KiB
C#
266 lines
10 KiB
C#
|
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();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 新增
|
|||
|
/// </summary>
|
|||
|
/// <param name="user"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[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);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 修改
|
|||
|
/// </summary>
|
|||
|
/// <param name="user"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[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);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询
|
|||
|
/// </summary>
|
|||
|
/// <param name="user"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpGet]
|
|||
|
[Route("GET")]
|
|||
|
public JsonResult Get(string ID = null)
|
|||
|
{
|
|||
|
if (ID == null)
|
|||
|
{
|
|||
|
return Json("参数为空");
|
|||
|
}
|
|||
|
var result = db.Queryable<UpgradePackage>().Where(it => it.ID == ID).ToList();
|
|||
|
return Json(result);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询列表
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpGet]
|
|||
|
[Route("GetPageList")]
|
|||
|
public JsonResult GetPageList(int pageIndex, int pageSize, string APPID)
|
|||
|
{
|
|||
|
int total = 0;
|
|||
|
List<UpgradePackage> data = db.Queryable<UpgradePackage>().Where(it => it.DeleteFlag == "0" && it.APPID == APPID).OrderBy(u => u.ID, OrderByType.Desc).ToPageList(pageIndex, pageSize, ref total);
|
|||
|
TableModel<UpgradePackage> t = new TableModel<UpgradePackage>();
|
|||
|
t.Code = 0;
|
|||
|
t.PageCount = data.Count;
|
|||
|
t.TotalNumber = total;
|
|||
|
t.Data = data;
|
|||
|
t.Msg = "成功";
|
|||
|
return Json(t);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询更新日志
|
|||
|
/// </summary>
|
|||
|
/// <param name="APPID"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpGet]
|
|||
|
[Route("GetUpdateLog")]
|
|||
|
public JsonResult GetUpdateLog(string BaseUrl)
|
|||
|
{
|
|||
|
if (BaseUrl == null)
|
|||
|
{
|
|||
|
return Json("参数为空");
|
|||
|
}
|
|||
|
var result = db.Queryable<APPInfo, UpgradePackage>((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<APPInfo, UpgradePackage>((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);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 删除
|
|||
|
/// </summary>
|
|||
|
/// <param name="user"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpPost]
|
|||
|
[Route("Delete")]
|
|||
|
public JsonResult Delete(UpgradePackage info = null)
|
|||
|
{
|
|||
|
if (info == null)
|
|||
|
{
|
|||
|
return Json("参数为空");
|
|||
|
}
|
|||
|
var result = db.Updateable<UpgradePackage>().SetColumns(it => new UpgradePackage() { DeleteFlag = "1" }).Where(it => it.ID == info.ID).ExecuteCommand(); ;
|
|||
|
return Json(result);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 多文件上传
|
|||
|
/// </summary>
|
|||
|
/// <param name="formCollection">表单集合值</param>
|
|||
|
/// <param name="env"></param>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpPost]
|
|||
|
[Route("MultiFileUpload")]
|
|||
|
public JsonResult MultiFileUpload(IFormCollection formCollection, [FromServices] IWebHostEnvironment env)
|
|||
|
{
|
|||
|
//var uploadFileRequestList = new List<UpgradePackage>();
|
|||
|
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<UpgradePackage>(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 });
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|