南骏 池
4 天以前 ea79dd023ae2785d301e88b8133c0d5f553674cb
service/base/LoginService.cs
@@ -1,46 +1,181 @@
using NewPdaSqlServer.DB;
using System.Dynamic;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.util;
using SqlSugar;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace NewPdaSqlServer.service.@base;
public class LoginService : RepositoryNoEntity
{
    public SysUser login(string name, string pwd)
    public dynamic login(string name, string pwd)
    {
        var strPass = UtilityHelper.MD5Encrypt32(pwd);
        var sysUser = Db.Queryable<SysUser>()
            .Where(s => s.Account == name
                        && s.Password == strPass).First();
        //var sysUser = Db.Queryable<SysUser>()
        //    .Where(s => s.Account == name
        //                && s.Password == strPass).First();
        if (sysUser == null) throw new Exception("用户不存在");
        var db_password = sysUser.Password;
        if (!strPass.Equals(db_password)) throw new Exception("用户名或者密码错误");
        return sysUser;
        var parameters = new[]
        {
        new SugarParameter("@pi_account", name),
        new SugarParameter("@pi_password", strPass),
        new SugarParameter("@inP1", null),
        new SugarParameter("@inP2", null),
        new SugarParameter("@inP3", null)
    };
        try
        {
            var sysUser = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_login_selUserOrgInfo @pi_account,@pi_password,@inP1,@inP2,@inP3", parameters).First();
            if (sysUser == null) throw new Exception("用户不存在");
            var db_password = sysUser.Password;
            if (!strPass.Equals(db_password)) throw new Exception("用户名或者密码错误");
            return sysUser;
        }
        catch (Exception ex)
        {
            // 保留原有异常处理逻辑
            throw new Exception($"{ex.Message}");
        }
    }
    public List<MesSysPageview> getUserMenu(string name)
    public List<dynamic> getUserMenu(string name)
    {
        var sql = "";
        var pageViewList = new List<MesSysPageview>();
        if ("admin".Equals(name))
            return Db.Queryable<MesSysPageview>()
        {
            pageViewList = Db.Queryable<MesSysPageview>()
           .Where(s => s.PageStatus == true)
           .OrderBy(s => s.PageIdx)
           .ToList();
        }
        else
        {
            string sql = string.Format(@"SELECT A.* FROM MES_SYS_PAGEVIEW A
         LEFT JOIN SYS_USER_BIND B ON CAST(A.guid AS VARCHAR(100)) = B.aboutGuid
         LEFT JOIN SYS_USER C ON C.GUID = B.userGuid
        WHERE C.ACCOUNT = '{0}'", name);
            pageViewList = Db.Ado.SqlQuery<MesSysPageview>(sql);
        }
        //if(pageViewList.Count < 0)
        //{
        //    throw new Exception("该用户没有权限访问");
        //}
        try
        {
            var result = new List<dynamic>();
            var groupedPageViews = pageViewList
                .GroupBy(p =>
                    string.IsNullOrEmpty(p.PageGroup) ? "未分组" : p.PageGroup)
                .ToList();
        return null;
            foreach (var group in groupedPageViews)
            {
                dynamic groupObj = new ExpandoObject();
                groupObj.groupName = group.Key; // 分组名
                groupObj.child = new List<MesSysPageview>();
                foreach (var pageView in group)
                {
                    var mesFile = Db.Queryable<MesFile>()
                        .Where(s => s.ParentGuid == pageView.Guid)
                        .OrderByDescending(s => s.CreateDate)
                        .First();
                    var icoimg = "";
                    if (mesFile != null)
                        icoimg = "http://192.168.1.145:81/upload/" +
                                 mesFile.UrlPath;
                    groupObj.child.Add(new MesSysPageview
                    {
                        Guid = pageView.Guid,
                        PageView = pageView.PageView,
                        Path = pageView.Path,
                        Icoimg = icoimg,
                        PageGroup = pageView.PageGroup,
                        PageIdx = pageView.PageIdx,
                        PageStatus = pageView.PageStatus
                    });
                }
                result.Add(groupObj);
            }
            return result;
        }
        catch(Exception e)
        {
            throw new Exception(e.Message);
        }
    }
    public int resetPassword(string newPwd, string name, string pwd)
    {
        login(name, pwd);
        var passwordHash = UtilityHelper.MD5Encrypt32(newPwd);
        return Db.Updateable<SysUser>()
            .SetColumns(s => s.Password == passwordHash)
            .Where(s => s.Account == name)
            .ExecuteCommand();
    }
    public List<dynamic> getUserInfo(string userGuid)
    {
        //string sql = string.Format(@"SELECT A.* FROM MES_SYS_PAGEVIEW A
        // LEFT JOIN SYS_USER_BIND B ON A.guid = B.aboutGuid
        // LEFT JOIN SYS_USER C ON C.GUID = B.userGuid
        //WHERE C.ACCOUNT = '{0}'", userGuid);
        //var sysUser = Db.Ado.SqlQuery<dynamic>(sql);
        //return sysUser;
        return null;
    }
    public dynamic changeOrg(dynamic query)
    {
        if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为 null");
        if (string.IsNullOrEmpty(query.userName?.ToString()))
            throw new ArgumentException("用户名不允许为空", nameof(query.userName));
        var parameters = new[]
        {
        new SugarParameter("@pi_account", query.userName),
        new SugarParameter("@inP1", null),
        new SugarParameter("@inP2", null),
        new SugarParameter("@inP3", null)
        };
        try
        {
            var orgInfo = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_my_selOrgInfo @pi_account,@inP1,@inP2,@inP3", parameters);
            //if (sysUser.Count < 1) throw new Exception("用户不存在关联组织");
            return orgInfo;
        }
        catch (Exception ex)
        {
            // 保留原有异常处理逻辑
            throw new Exception($"{ex.Message}");
        }
    }
}