111
啊鑫
2025-08-29 d1dc6aaa453c38c6282930d85c58388b89aac065
MES.Service/service/LoginService.cs
@@ -1,6 +1,7 @@
using System.Data;
using System.Text;
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service;
@@ -10,51 +11,86 @@
    public DataTable login(string name, string pwd)
    {
        var sql = string.Format(@"select * from SYS_USER where FCODE = '{0}'",
            name);
        var dataTable = SQLHelper.ExecuteQuery(sql);
        if (dataTable.Rows.Count <= 0) throw new Exception("用户不存在");
        using var db = SqlSugarHelper.GetInstance();
        var row = dataTable.Rows[0];
        var db_password = row["FPASSWORD"].ToString();
        db_password = ProPass(db_password);
        var user = db.Queryable<SysUser>()
            .Where(u => u.Fcode == name)
            .First();
        if (user == null) throw new Exception("用户不存在");
        var db_password = ProPass(user.Fpassword);
        if (!pwd.Equals(db_password)) throw new Exception("用户名或者密码错误");
        // 转换为DataTable以保持兼容性
        var userList = new List<SysUser> { user };
        var dataTable = new DataTable();
        // 添加需要的列
        dataTable.Columns.Add("FID", typeof(string));
        dataTable.Columns.Add("FCODE", typeof(string));
        dataTable.Columns.Add("FNAME", typeof(string));
        dataTable.Columns.Add("FPASSWORD", typeof(string));
        dataTable.Columns.Add("DEPARTMENTID", typeof(string));
        dataTable.Columns.Add("FACTORY", typeof(string));
        dataTable.Columns.Add("FCOMPANY", typeof(string));
        var row = dataTable.NewRow();
        row["FID"] = user.Fid;
        row["FCODE"] = user.Fcode;
        row["FNAME"] = user.Fname;
        row["FPASSWORD"] = user.Fpassword;
        row["DEPARTMENTID"] = user.Departmentid;
        row["FACTORY"] = user.Factory;
        row["FCOMPANY"] = user.Fcompany;
        dataTable.Rows.Add(row);
        return dataTable;
    }
    public DataTable getUserMenu(string name)
    {
        var sql = "";
        using var db = SqlSugarHelper.GetInstance();
        DataTable dataTable;
        if ("PL017".Equals(name))
            sql = "select PAGE_VIEW,PATH,ICOIMG from  MES_SYS_PAGEVIEW";
        {
            var sql = "select PAGE_VIEW,PATH,ICOIMG from MES_SYS_PAGEVIEW";
            dataTable = db.Ado.GetDataTable(sql);
        }
        else
            sql = string.Format(@"select PAGE_VIEW,PATH,ICOIMG
        {
            var sql = @"select PAGE_VIEW,PATH,ICOIMG
                    from (select PAGE_VIEW,PATH,ICOIMG
                          from MES_SYS_GUP_USER a
                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                                   join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID
                          where USERID = (select fid from SYS_USER where FCODE = '{0}')
                          where USERID = (select fid from SYS_USER where FCODE = @name)
                          union all
                          select PAGE_VIEW,PATH,ICOIMG
                          from MES_SYS_GUP_USER a
                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
                          where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}'))
                    group by PATH, PAGE_VIEW, ICOIMG", name);
                          where a.ROLEID = (select FCODE from SYS_USER where FCODE = @name))
                    group by PATH, PAGE_VIEW, ICOIMG";
            dataTable = db.Ado.GetDataTable(sql, new { name = name });
        }
        return SQLHelper.ExecuteQuery(sql);
        return dataTable;
    }
    public int resetPassword(string newPwd, string name, string pwd)
    {
        login(name, pwd);
        var passwordHash = encryptPass(newPwd);
        var sql = string.Format(
            @"update SYS_USER set FPASSWORD = '{0}' where FCODE = '{1}'",
            passwordHash,
            name);
        return SQLHelper.ExecuteNonQuery(sql);
        using var db = SqlSugarHelper.GetInstance();
        return db.Updateable<SysUser>()
            .SetColumns(u => u.Fpassword == passwordHash)
            .Where(u => u.Fcode == name)
            .ExecuteCommand();
    }
    private string encryptPass(string str)