76 lines
2.6 KiB
C#
76 lines
2.6 KiB
C#
using Blahblah.FlowerStory.Server.Data.Model;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Blahblah.FlowerStory.Server.Controller;
|
|
|
|
partial class BaseController
|
|
{
|
|
|
|
/// <summary>
|
|
/// 根据 uid 获取用户对象
|
|
/// </summary>
|
|
/// <param name="uid">用户唯一 id</param>
|
|
/// <returns></returns>
|
|
protected UserItem? QueryUserItem(int uid)
|
|
{
|
|
return database.Users
|
|
.FromSql($"SELECT \"uid\",\"id\",\"\" AS \"password\",\"level\",\"regdate\",\"activedate\",\"name\",\"email\",\"mobile\",NULL AS \"avatar\" FROM [users] WHERE \"uid\" = {uid} LIMIT 1")
|
|
.SingleOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据 id 获取登录使用的用户对象
|
|
/// </summary>
|
|
/// <param name="id">用户 id</param>
|
|
/// <returns></returns>
|
|
protected UserItem? QueryUserItemForAuthentication(string id)
|
|
{
|
|
return database.Users
|
|
.FromSql($"SELECT \"uid\",\"id\",\"password\",0 AS \"level\",0 AS \"regdate\",\"activedate\",\"\" AS \"name\",NULL AS \"email\",NULL AS \"mobile\",NULL as \"avatar\" FROM [users] WHERE \"id\" = {id} LIMIT 1")
|
|
.SingleOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取用户头像数据
|
|
/// </summary>
|
|
/// <param name="uid">用户唯一 id</param>
|
|
/// <returns></returns>
|
|
protected byte[]? QueryUserAvatar(int uid)
|
|
{
|
|
return database.Database.SqlQuery<byte[]>($"SELECT \"avatar\" AS \"Value\" FROM \"users\" WHERE \"uid\" = {uid} LIMIT 1").SingleOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 移除用户头像
|
|
/// </summary>
|
|
/// <param name="uid">用户唯一 id</param>
|
|
/// <returns></returns>
|
|
protected int RemoveUserAvatar(int uid)
|
|
{
|
|
return database.Database.ExecuteSql($"UPDATE \"users\" SET \"avatar\" = NULL WHERE \"uid\" = {uid}");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 移除用户名下的花草
|
|
/// </summary>
|
|
/// <param name="uid">用户唯一 id</param>
|
|
/// <param name="fid">花草唯一 id</param>
|
|
/// <returns></returns>
|
|
protected int RemoveUserFlower(int uid, int fid)
|
|
{
|
|
return database.Database.ExecuteSql($"DELETE FROM \"flowers\" WHERE \"uid\" = {uid} AND \"fid\" = {fid}");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量移除用户名下的花草
|
|
/// </summary>
|
|
/// <param name="uid">用户唯一 id</param>
|
|
/// <param name="fids">花草唯一 id 的数组</param>
|
|
/// <returns></returns>
|
|
protected int RemoveUserFlowers(int uid, int[] fids)
|
|
{
|
|
var idfilter = string.Join(", ", fids);
|
|
return database.Database.ExecuteSql($"DELETE FROM \"flowers\" WHERE \"uid\" = {uid} AND \"fid\" IN ({idfilter})");
|
|
}
|
|
}
|