home page for App

This commit is contained in:
2023-07-27 22:07:24 +08:00
parent 02ac33fc07
commit befbc7fc9b
40 changed files with 1175 additions and 398 deletions

View File

@ -52,6 +52,7 @@ public partial class ApiController : BaseController
{
return Ok(new DefinitionResult
{
ApiVersion = Program.Version,
Categories = Constants.Categories,
Events = Constants.Events,
});

View File

@ -5,6 +5,11 @@
/// </summary>
public record DefinitionResult
{
/// <summary>
/// API 版本号
/// </summary>
public required string ApiVersion { get; init; }
/// <summary>
/// 花草分类
/// </summary>

View File

@ -218,6 +218,7 @@ public abstract partial class BaseController : ControllerBase
using var ms = new MemoryStream();
ms.Write(headers, 0, count);
#if __OLD_READER__
// reading
const int size = 16384;
var buffer = new byte[size];
@ -225,17 +226,24 @@ public abstract partial class BaseController : ControllerBase
{
ms.Write(buffer, 0, count);
}
#else
stream.CopyTo(ms);
#endif
var data = ms.ToArray();
var name = file.FileName;
var ext = Path.GetExtension(name);
var path = $"{WebUtility.UrlEncode(Path.GetFileNameWithoutExtension(name))}_{DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()}{ext}";
var image = SkiaSharp.SKImage.FromEncodedData(data);
return new FileResult
{
Filename = name,
FileType = ext,
Path = path,
Content = data
Content = data,
Width = image.Width,
Height = image.Height
};
}
}
@ -364,30 +372,20 @@ public record FileResult
/// <summary>
/// 储存路径
/// </summary>
public required string Path { get; set; }
public required string Path { get; init; }
/// <summary>
/// 文件内容
/// </summary>
[Required]
public required byte[] Content { get; init; }
/// <summary>
/// 照片宽度
/// </summary>
public required int Width { get; init; }
/// <summary>
/// 照片高度
/// </summary>
public required int Height { get; init; }
}
/// <summary>
/// 照片参数
/// </summary>
public record PhotoParameter
{
/// <summary>
/// 花草 id
/// </summary>
[Required]
public int Id { get; set; }
/// <summary>
/// 封面照片
/// </summary>
[Required]
public required IFormFile Photo { get; set; }
}

View File

@ -88,6 +88,6 @@ partial class BaseController
/// <returns></returns>
protected int AddPhotoItem(PhotoItem item)
{
return database.Database.ExecuteSql($"INSERT INTO \"photos\"(\"fid\",\"rid\",\"filetype\",\"filename\",\"path\",\"dateupload\") VALUES({item.FlowerId},{item.RecordId},{item.FileType},{item.FileName},{item.Path},{item.DateUploadUnixTime})");
return database.Database.ExecuteSql($"INSERT INTO \"photos\"(\"fid\",\"uid\",\"rid\",\"filetype\",\"filename\",\"path\",\"dateupload\",\"width\",\"height\") VALUES({item.FlowerId},{item.OwnerId},{item.RecordId},{item.FileType},{item.FileName},{item.Path},{item.DateUploadUnixTime},{item.Width},{item.Height})");
}
}

View File

@ -279,7 +279,9 @@ public class EventApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
AddPhotoItem(p);
@ -402,7 +404,9 @@ public class EventApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
AddPhotoItem(cover);
@ -498,7 +502,9 @@ public class EventApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = user.ActiveDateUnixTime ?? DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
DateUploadUnixTime = user.ActiveDateUnixTime ?? DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
Width = file.Width,
Height = file.Height
};
AddPhotoItem(p);
@ -594,7 +600,9 @@ public class EventApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = user.ActiveDateUnixTime ?? DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
DateUploadUnixTime = user.ActiveDateUnixTime ?? DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
Width = file.Width,
Height = file.Height
};
AddPhotoItem(p);

View File

@ -518,7 +518,9 @@ public class FlowerApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
AddPhotoItem(cover);
@ -639,7 +641,9 @@ public class FlowerApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
database.Photos.Add(item);
SaveDatabase();
@ -776,7 +780,9 @@ public class FlowerApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
AddPhotoItem(cover);
@ -893,7 +899,9 @@ public class FlowerApiController : BaseController
FileType = file.FileType,
FileName = file.Filename,
Path = file.Path,
DateUploadUnixTime = now
DateUploadUnixTime = now,
Width = file.Width,
Height = file.Height
};
AddPhotoItem(cover);