HKC_Blazor/MasaBlazorApp3/DataAccess/Impl/UserDao.cs

167 lines
5.5 KiB
C#
Raw Normal View History

2025-04-18 11:01:56 +08:00
using Google.Protobuf.WellKnownTypes;
using LinqToDB;
2025-07-05 10:07:33 +08:00
using log4net;
2025-04-18 11:01:56 +08:00
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;
2025-07-05 10:07:33 +08:00
private readonly ILog logger = LogManager.GetLogger(typeof(OrderInfoDao));
2025-04-18 11:01:56 +08:00
//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)
{
2025-07-05 10:07:33 +08:00
return _connection.User.LoadWith(u => (u.role)).FirstOrDefault(u => u.Username == username && u.MachineId == _setting.machineId);
2025-04-18 11:01:56 +08:00
}
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)
{
2025-07-05 10:07:33 +08:00
var statement = _connection.User.Where(u => u.Id == id).Set(u => u.Password, MD5.GetMD5Hash("123456").ToLower());
2025-04-18 11:01:56 +08:00
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;
}
2025-05-20 11:17:07 +08:00
//修改密码
public bool UpdateUserPassword(User user)
{
var statement = _connection.User
.Where(u => u.Id == user.Id)
.Set(u => u.Password, MD5.GetMD5Hash(user.Password).ToLower());
return statement.Update() > 0;
}
2025-07-05 10:07:33 +08:00
//查询当前值班信息
public HkcChangeShifts GetOnDuty()
{
try
{
return _connection.HkcChangeShifts.Where(cs => cs.MachineId == _setting.machineId && cs.State == "0").FirstOrDefault();
}
catch (Exception ex)
{
logger.Info($"查询当前值班信息异常{ex.Message}");
return null;
}
}
//保存交接班信息
public async Task<bool> UpdateChangeShift(HkcChangeShifts changeShift, HkcChangeShifts changeShiftNew)
{
try
{
_connection.BeginTransaction();
var insertResult = _connection.InsertWithInt32Identity(changeShiftNew);
int updateResult = _connection.HkcChangeShifts
.Where(cs => cs.Id == changeShift.Id)
.Set(cs => cs.State, "1")
.Set(cs => cs.ToDate, DateTime.Now)
.Set(cs=>cs.ToOperator,changeShift.ToOperator).Update();
if (insertResult <= 0 || updateResult <= 0)
{
_connection.RollbackTransaction();
return false;
}
else
{
_connection.CommitTransaction();
return true;
}
}
catch (Exception ex)
{
logger.Error($"更新交接班信息异常: {ex.Message}");
return false;
}
}
2025-04-18 11:01:56 +08:00
}
}