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 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 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<dynamic> getUserMenu(string name)
|
{
|
var pageViewList = new List<MesSysPageview>();
|
if ("admin".Equals(name))
|
{
|
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();
|
|
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}");
|
}
|
|
}
|
}
|