76 lines
3.5 KiB
C#
76 lines
3.5 KiB
C#
using DM_Weight.Models;
|
||
using log4net;
|
||
using log4net.Repository.Hierarchy;
|
||
using MySqlConnector;
|
||
using Newtonsoft.Json;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace DM_Weight.Services
|
||
{
|
||
public class UserService
|
||
{
|
||
private readonly ILog logger = LogManager.GetLogger(typeof(UserService));
|
||
//public static string connStr = ConfigurationManager.AppSettings["database"].ToString();
|
||
public static string connStr = ConfigurationManager.ConnectionStrings["database"].ToString();
|
||
public UserList CheckUserByFingerPrinter(int fingerPrinterId)
|
||
{
|
||
UserList? user = null;
|
||
|
||
using (MySqlConnection con = new MySqlConnection(connStr))
|
||
{
|
||
logger.Info($"connStr:{connStr}");
|
||
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();
|
||
}
|
||
logger.Info("数据库连接已打开");
|
||
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();
|
||
MySqlParameter[] mySqlParameter = new MySqlParameter[] { new MySqlParameter("ID", fingerPrinterId), new MySqlParameter("machine_id", (ConfigurationManager.AppSettings["machineId"] ?? "DM1")) };
|
||
cmd.Parameters.AddRange(mySqlParameter);
|
||
//执行语句
|
||
MySqlDataReader reader = cmd.ExecuteReader();
|
||
logger.Info("MySqlDataReader读数据");
|
||
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");
|
||
user.Nickname = reader["userName"] is DBNull ? "" : reader.GetString("userName");
|
||
user.MachineId = reader["machine_id"] is DBNull ? "" : reader.GetString("machine_id");
|
||
RoleDm role = new RoleDm();
|
||
role.Id = reader.GetInt32("id");
|
||
//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;
|
||
}
|
||
reader.Close();
|
||
logger.Info($"sql:{sql}");
|
||
return user;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|