提交功能
This commit is contained in:
161
Http/Page/ApiController.cs
Normal file
161
Http/Page/ApiController.cs
Normal file
@@ -0,0 +1,161 @@
|
||||
// Controllers/ApiController.cs
|
||||
|
||||
using ACBuildService.Filters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace ACBuildService.Controllers;
|
||||
|
||||
[ApiController]
|
||||
[Route("api")]
|
||||
[SignValidation]
|
||||
public class ApiController : NBControllerBase
|
||||
{
|
||||
#region 信息增删改
|
||||
|
||||
[HttpPost("list")]
|
||||
public async Task<IActionResult> List([FromForm] PageFormArgs data)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (data.Page < 1) data.Page = 1;
|
||||
if (data.PageSize < 1) data.PageSize = 50;
|
||||
|
||||
int totalCount = 0;
|
||||
|
||||
var list = DB.Main.Queryable<VideoTable>().ToPageList(data.Page, data.PageSize, ref totalCount);
|
||||
List<VideoRetData> retList = [];
|
||||
var retData = new PageListData<VideoRetData>
|
||||
{
|
||||
TotalCount = totalCount,
|
||||
Page = data.Page,
|
||||
List = retList,
|
||||
PageSize = data.PageSize
|
||||
};
|
||||
foreach (var video in list)
|
||||
{
|
||||
var r = new VideoRetData
|
||||
{
|
||||
Id = video.Id,
|
||||
FilePath = video.FilePath,
|
||||
Title = video.Title,
|
||||
Desc = video.Desc,
|
||||
Like = video.Like,
|
||||
Message = video.Message,
|
||||
Share = video.Share,
|
||||
Collect = video.Collect,
|
||||
AuthorName = video.AuthorName
|
||||
};
|
||||
retList.Add(r);
|
||||
}
|
||||
|
||||
|
||||
await Task.CompletedTask;
|
||||
|
||||
return Success(retData);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return StatusCode(500, new { error = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("add")]
|
||||
public async Task<IActionResult> Add([FromForm] AddFormArgs data)
|
||||
{
|
||||
VideoDownload.Add(data.Text);
|
||||
await Task.CompletedTask;
|
||||
return Success();
|
||||
}
|
||||
|
||||
[HttpPost("edit")]
|
||||
public async Task<IActionResult> Edit([FromForm] EditFormArgs data)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
DB.Main.Updateable(new VideoTable()
|
||||
{
|
||||
Id = data.Id,
|
||||
Title = data.Title,
|
||||
Desc = data.Desc,
|
||||
Like = data.Like,
|
||||
Message = data.Message,
|
||||
Share = data.Share,
|
||||
Collect = data.Collect,
|
||||
AuthorName = data.AuthorName
|
||||
}).ExecuteCommand();
|
||||
return Success();
|
||||
}
|
||||
|
||||
|
||||
[HttpPost("remove")]
|
||||
public async Task<IActionResult> Remove([FromForm] IdFormArgs data)
|
||||
{
|
||||
var video = await DB.Main.Queryable<VideoTable>().FirstAsync(t => t.Id == data.Id);
|
||||
if (video != null)
|
||||
{
|
||||
//删除本地文件
|
||||
var filePath = FileUtil.GetVideoPath(video.FilePath);
|
||||
if (System.IO.File.Exists(filePath))
|
||||
{
|
||||
System.IO.File.Delete(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
await DB.Main.Deleteable<VideoTable>().Where(it => it.Id == data.Id).ExecuteCommandAsync();
|
||||
return Success();
|
||||
}
|
||||
|
||||
[HttpPost("info")]
|
||||
public async Task<IActionResult> Info()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
|
||||
var list = DB.Main.Queryable<DeviceTable>().ToList();
|
||||
return Success(list);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 信息统计
|
||||
|
||||
[HttpPost("device")]
|
||||
public async Task<IActionResult> Device([FromForm] DeviceFormArgs data)
|
||||
{
|
||||
var now = DateTime.Now.AddDays(-1);
|
||||
var device = await DB.Main.Queryable<DeviceTable>().FirstAsync(t => t.Id == data.Device);
|
||||
if (device == null)
|
||||
{
|
||||
device = new DeviceTable
|
||||
{
|
||||
Id = data.Device,
|
||||
Name = data.DeviceName,
|
||||
WatchId = data.Id,
|
||||
TotalTime = 0,
|
||||
TodayTime = data.Time,
|
||||
LastTime = now
|
||||
};
|
||||
|
||||
await DB.Main.Insertable(device).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
if (!now.IsSameDay(device.LastTime))
|
||||
{
|
||||
device.TodayTime = data.Time; //重置今日时长
|
||||
}
|
||||
else
|
||||
{
|
||||
device.TodayTime += data.Time; //今日时长增加
|
||||
}
|
||||
|
||||
device.WatchId = data.Id;
|
||||
device.TotalTime += data.Time;
|
||||
|
||||
device.LastTime = now;
|
||||
|
||||
await DB.Main.Updateable(device).ExecuteCommandAsync();
|
||||
|
||||
return Success();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user