using System.Dynamic;
|
using NewPdaSqlServer.DB;
|
using NewPdaSqlServer.entity;
|
using NewPdaSqlServer.util;
|
|
namespace NewPdaSqlServer.service.@base;
|
|
public class LoginService : RepositoryNoEntity
|
{
|
public SysUser login(string name, string pwd)
|
{
|
var strPass = UtilityHelper.MD5Encrypt32(pwd);
|
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;
|
}
|
|
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 A.guid = 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;
|
}
|
}
|