HKC_Blazor/MasaBlazorApp3/DataAccess/Impl/UserDao.cs

112 lines
3.5 KiB
C#

using Google.Protobuf.WellKnownTypes;
using LinqToDB;
using MasaBlazorApp3.DataAccess.Dao;
using MasaBlazorApp3.Pojo;
using MasaBlazorApp3.Pojo.Config;
using MasaBlazorApp3.Util;
using Microsoft.Extensions.Options;
using System.Data;
using System.Xml.Linq;
namespace MasaBlazorApp3.DataAccess.Impl
{
public class UserDao : IUserDao
{
//private MyContext Context;
private readonly AppDataConnection _connection;
private readonly SettingConfig _setting;
//public UserDao(MyContext context)
//{
// Context = context;
//}
public UserDao(AppDataConnection connection, IOptions<SettingConfig> setting)
{
_connection = connection;
_setting = setting.Value;
}
public async Task<PageData<User>> GetAllByNickname(string nickname, int? take, int? skip)
{
var query = _connection.User.AsQueryable();
if (!String.IsNullOrEmpty(nickname))
{
query = query.Where(r => r.NickName.IndexOf(nickname) > -1);
}
query = query.Where(u => u.MachineId == _setting.machineId);
List<User> list = await query
.LoadWith(u => u.role)
.OrderBy(u => u.Id)
.Skip((int)skip)
.Take((int)take)
.ToListAsync();
int pagedData = await query.CountAsync();
return new PageData<User>()
{
TotalDesserts = pagedData,
Desserts = list
};
}
public User GetById(int id)
{
return _connection.User.LoadWith(u => u.role).FirstOrDefault(u => u.Id == id);
}
public User GetByUsername(string username)
{
return _connection.User.LoadWith(u => (u.role)).FirstOrDefault(u => u.Username == username&&u.MachineId== _setting.machineId);
}
public int InsertUser(User user)
{
user.MachineId = _setting.machineId;
user.Password = MD5.GetMD5Hash("123456").ToLower();
return _connection.InsertWithInt32Identity(user);
}
public bool UpdateUser(User user)
{
var statement = _connection.User
.Where(u => u.Id == user.Id)
.Set(u => u.NickName, user.NickName)
.Set(u => u.Username, user.Username)
.Set(u => u.RoleId, user.RoleId);
//if(!String.IsNullOrEmpty(user.Password))
//{
// statement.Set(u => user.Password, MD5.GetMD5Hash(user.Password).ToLower());
//}
return statement.Update() > 0;
}
public bool DeleteeUser(int id)
{
return _connection.User.Where(u => u.Id == id).Delete() > 0;
}
//重置用户密码
public bool ResetPassword(int id)
{
var statement= _connection.User.Where(u => u.Id == id).Set(u=>u.Password, MD5.GetMD5Hash("123456").ToLower());
return statement.Update() > 0;
}
public async Task<bool> UpdateSign(int id, string sign)
{
var statement = _connection.User
.Where(u => u.Id == id)
.Set(u => u.Sign, Convert.FromBase64String(sign));
//if(!String.IsNullOrEmpty(user.Password))
//{
// statement.Set(u => user.Password, MD5.GetMD5Hash(user.Password).ToLower());
//}
return (await statement.UpdateAsync()) > 0;
}
}
}