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
|
|
|
|
}
|
|
|
|
|
}
|