2024-02-04 13:35:45 +08:00
|
|
|
|
using DM_Weight.Models;
|
2024-03-05 13:13:11 +08:00
|
|
|
|
using log4net;
|
|
|
|
|
using log4net.Repository.Hierarchy;
|
2024-02-04 13:35:45 +08:00
|
|
|
|
using MySqlConnector;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
2024-03-05 15:58:36 +08:00
|
|
|
|
using System.Threading;
|
2024-02-04 13:35:45 +08:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace DM_Weight.Services
|
|
|
|
|
{
|
|
|
|
|
public class UserService
|
|
|
|
|
{
|
2024-03-05 15:58:36 +08:00
|
|
|
|
private readonly ILog logger = LogManager.GetLogger(typeof(UserService));
|
2024-02-04 13:35:45 +08:00
|
|
|
|
//public static string connStr = ConfigurationManager.AppSettings["database"].ToString();
|
|
|
|
|
public static string connStr = ConfigurationManager.ConnectionStrings["database"].ToString();
|
2024-03-21 15:39:59 +08:00
|
|
|
|
public UserList CheckUserByFingerPrinter(int fingerPrinterId)
|
2024-02-04 13:35:45 +08:00
|
|
|
|
{
|
|
|
|
|
UserList? user = null;
|
|
|
|
|
|
|
|
|
|
using (MySqlConnection con = new MySqlConnection(connStr))
|
|
|
|
|
{
|
2024-03-05 15:58:36 +08:00
|
|
|
|
logger.Info($"connStr:{connStr}");
|
2024-03-21 15:39:59 +08:00
|
|
|
|
//try
|
|
|
|
|
//{
|
|
|
|
|
// con.Open();
|
|
|
|
|
//}
|
|
|
|
|
//catch (Exception ex)
|
|
|
|
|
//{
|
|
|
|
|
// logger.Info($"Open失败:{ex.ToString()}");
|
|
|
|
|
// if (con.State == System.Data.ConnectionState.Open)
|
|
|
|
|
// {
|
|
|
|
|
// con.Close();
|
|
|
|
|
// }
|
|
|
|
|
// Thread.Sleep(200);
|
|
|
|
|
// logger.Info("再次Open");
|
|
|
|
|
// con.Open();
|
|
|
|
|
//}
|
|
|
|
|
connOpen(con);
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
while(con.State != System.Data.ConnectionState.Open)
|
2024-03-05 15:58:36 +08:00
|
|
|
|
{
|
|
|
|
|
logger.Info("再次Open");
|
2024-03-21 15:39:59 +08:00
|
|
|
|
connOpen(con);
|
|
|
|
|
Thread.Sleep(100);
|
2024-03-05 15:58:36 +08:00
|
|
|
|
}
|
2024-03-21 15:39:59 +08:00
|
|
|
|
|
2024-03-05 15:58:36 +08:00
|
|
|
|
logger.Info("数据库连接已打开");
|
2024-02-04 13:35:45 +08:00
|
|
|
|
string sql = @"select ul.id as id,ul.User_name as userName,r.id,r.role_name,r.permissions,r.machine_id from user_list ul
|
|
|
|
|
INNER JOIN role r on ul.machine_role_id=r.id where ul.Id=@ID and ul.machine_id=@machine_id and r.machine_id=@machine_id;";
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand(sql, con);
|
|
|
|
|
cmd.Parameters.Clear();
|
2024-03-05 15:58:36 +08:00
|
|
|
|
MySqlParameter[] mySqlParameter = new MySqlParameter[] { new MySqlParameter("ID", fingerPrinterId), new MySqlParameter("machine_id", (ConfigurationManager.AppSettings["machineId"] ?? "DM1")) };
|
2024-02-04 13:35:45 +08:00
|
|
|
|
cmd.Parameters.AddRange(mySqlParameter);
|
|
|
|
|
//执行语句
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
2024-03-07 17:13:41 +08:00
|
|
|
|
logger.Info("MySqlDataReader读数据");
|
2024-02-04 13:35:45 +08:00
|
|
|
|
while (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
user = new UserList();
|
|
|
|
|
user.Id = reader.GetInt32("id");
|
|
|
|
|
user.UserName = reader["userName"] is DBNull ? "" : reader.GetString("userName");
|
|
|
|
|
//user.UserName = reader["id"] is DBNull ? "" : reader.GetString("id");
|
2024-03-05 15:58:36 +08:00
|
|
|
|
user.Nickname = reader["userName"] is DBNull ? "" : reader.GetString("userName");
|
2024-02-04 13:35:45 +08:00
|
|
|
|
user.MachineId = reader["machine_id"] is DBNull ? "" : reader.GetString("machine_id");
|
2024-03-05 15:58:36 +08:00
|
|
|
|
RoleDm role = new RoleDm();
|
|
|
|
|
role.Id = reader.GetInt32("id");
|
2024-02-04 13:35:45 +08:00
|
|
|
|
//role.Permissions = reader["permissions"] is DBNull ? "" : reader.GetString("permissions");
|
|
|
|
|
role.RoleName = reader["role_name"] is DBNull ? "" : reader.GetString("role_name");
|
|
|
|
|
role.Permissions = JsonConvert.DeserializeObject<List<PremissionDm>>(reader["permissions"] is DBNull ? "" : reader.GetString("permissions")); // JsonConvert.SerializeObject(reader.GetString("permissions")).ToList();
|
|
|
|
|
user.Role = role;
|
|
|
|
|
}
|
2024-03-21 15:39:59 +08:00
|
|
|
|
|
2024-02-04 13:35:45 +08:00
|
|
|
|
reader.Close();
|
2024-03-05 15:58:36 +08:00
|
|
|
|
logger.Info($"sql:{sql}");
|
2024-02-04 13:35:45 +08:00
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-03-21 15:39:59 +08:00
|
|
|
|
private Task connOpen(MySqlConnection con)
|
|
|
|
|
{
|
|
|
|
|
return Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
if (con.State == System.Data.ConnectionState.Open)
|
|
|
|
|
{
|
|
|
|
|
con.Close();
|
|
|
|
|
}
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"Open失败:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-02-04 13:35:45 +08:00
|
|
|
|
}
|
|
|
|
|
}
|