253 lines
10 KiB
C#
253 lines
10 KiB
C#
using Models;
|
||
using Models.ModelItems;
|
||
using Services.Cache;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using Newtonsoft.Json;
|
||
|
||
namespace Services.Manager
|
||
{
|
||
public class AppServer
|
||
{
|
||
/// <summary>
|
||
/// 查询 app 不查询禁用的权限
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="IsValid"></param>
|
||
/// <returns></returns>
|
||
#region 单个App权限信息
|
||
private static dynamic GetAppInfo(int id,int IsValid = 10,bool reauthorities = true)
|
||
{
|
||
ApplicationDomain app = Cache.CacheHelp.cacheSysApp.FirstOrDefault(x=>x.Id == id);
|
||
if(app == null)
|
||
return null;
|
||
List<AppAutho> autho = Cache.CacheHelp.cacheSysAppAutho.Where(x => x.AppId == id).ToList();
|
||
List<Authority> authorities = new List<Authority>();
|
||
if(reauthorities)
|
||
authorities = Cache.CacheHelp.cacheSysAutho.Where(x=> autho.FirstOrDefault(y=>y.AuthorityId == x.Id)!=null && x.IsValid != IsValid).ToList();
|
||
return new
|
||
{
|
||
data = authorities,
|
||
AppName = app.AppName,
|
||
AppId = app.Id,
|
||
Desc = app.Desc,
|
||
app.WebSite,
|
||
app.AppType,
|
||
app.Version,
|
||
app.ReleaseDate,
|
||
app.Icon,
|
||
app.DowSum
|
||
};
|
||
}
|
||
#endregion
|
||
#region 所有App权限信息
|
||
/// <summary>
|
||
/// 所有正常App权限信息 查询所有就默认值即可 查询正常的权限 输入1 查询关闭的权限 输入 0
|
||
/// </summary>
|
||
/// <param name="IsValid"></param>
|
||
/// <param name="reauthorities">是否返回权限信息</param>
|
||
/// <returns></returns>
|
||
public static List<dynamic> GetAppInfo( int appid = 0, int appIsValid = 0 ,int IsValid = 0,bool reauthorities = true)
|
||
{
|
||
List<dynamic> res = new List<dynamic>();
|
||
foreach (var app in CacheHelp.cacheSysApp.Where(x =>( x.IsValid == appIsValid || appIsValid == -1) && (appid == x.Id || appid == 0)).ToList())
|
||
{
|
||
res.Add(GetAppInfo(app.Id, IsValid,reauthorities));
|
||
}
|
||
return res;
|
||
}
|
||
#endregion
|
||
#region 查询App名是否存
|
||
public static bool CheckName(string name)
|
||
{
|
||
return Cache.CacheHelp.cacheSysApp.FirstOrDefault(x=>x.AppName == name && x.IsValid == 0) == null;
|
||
}
|
||
#endregion
|
||
#region 添加App
|
||
public static int? AddApp(string name, string Desc = "", string uid = "", string Version = "1.0", string appicon = null, DateTime ReleaseDate = default, string WebSite = "",int AppType =0)
|
||
{
|
||
if (CacheHelp.cacheSysApp.FirstOrDefault(u => u.AppName == name && u.IsValid == 0) != null)
|
||
return null;
|
||
ApplicationDomain app = new ApplicationDomain {
|
||
AppName = name,
|
||
Desc = Desc,
|
||
CreatedBy = uid,
|
||
ReleaseDate = ReleaseDate,
|
||
WebSite = WebSite,
|
||
Version = Version,
|
||
AppType = AppType,
|
||
CreateTime = DateTime.Now,
|
||
Icon = appicon
|
||
};
|
||
int id= SqlSugarBase.Db.Insertable(app).ExecuteReturnIdentity();
|
||
DbLogServer.WriteDbLog($"添加了应用{app.AppName}({id})");
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppsListKey);
|
||
return id;
|
||
}
|
||
#endregion
|
||
#region 删除应用
|
||
public static bool DelApp(int appid,int IsValid, string uid = null)
|
||
{
|
||
try
|
||
{
|
||
|
||
|
||
|
||
ApplicationDomain app = SqlSugarBase.Db.Queryable<ApplicationDomain>().First(x => x.Id == appid);
|
||
if (app == null)
|
||
return false;
|
||
app.IsValid = IsValid;
|
||
app.CreatedBy = uid;
|
||
SqlSugarBase.Db.Updateable(app).ExecuteCommand();
|
||
|
||
|
||
|
||
|
||
|
||
if (IsValid!=0)
|
||
DbLogServer.WriteDbLog($"删除了应用{app.AppName}({app.Id})",2);
|
||
else
|
||
DbLogServer.WriteDbLog($"恢复了应用{app.AppName}({app.Id})", 1);
|
||
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppsListKey);
|
||
return true;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelp.WriteExceptionLog(ex);
|
||
return false;
|
||
}
|
||
finally
|
||
{
|
||
CacheHelp.Removesys(CacheHelp.syskey.Appversions);
|
||
}
|
||
}
|
||
#endregion
|
||
#region 检测权限名
|
||
public static bool Checkautho(int AppId, string AuthoNmae)
|
||
{
|
||
var au = CacheHelp.cacheView_AppAutho.FirstOrDefault(x => x.AppId == AppId && x.AuthorityName == AuthoNmae);
|
||
if (au == null)
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
#endregion
|
||
#region 添加权限
|
||
public static int? Addautho(int AppId, string AuthoNmae, string Desc = "", string uid = null, string authoStatusTypeId = null)
|
||
{
|
||
try {
|
||
dynamic au = CacheHelp.cacheView_AppAutho.FirstOrDefault(x => x.AppId == AppId && x.AuthorityName == AuthoNmae);
|
||
if (au != null)
|
||
return null;
|
||
au = CacheHelp.cacheSysApp.FirstOrDefault(x => x.Id == AppId);
|
||
if (au == null)
|
||
return null;
|
||
|
||
Authority authority = new Authority { AuthorityName = AuthoNmae, Desc = Desc,CreatedBy = uid, AuthoStatusTypeId = authoStatusTypeId };
|
||
int id= SqlSugarBase.Db.Insertable(new Authority { AuthorityName = AuthoNmae, Desc = Desc, CreatedBy = uid, AuthoStatusTypeId = authoStatusTypeId }).ExecuteReturnIdentity();
|
||
SqlSugarBase.Db.Insertable(new AppAutho() { AppId = AppId, AuthorityId = id, CreatedBy = uid }).ExecuteCommand();
|
||
DbLogServer.WriteDbLog($"给应用{au.AppName}({au.Id})添加了权限'{AuthoNmae}({id})'",0);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysView_AppAuthoListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAuthorityListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppAuthoListKey);
|
||
return id;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelp.WriteExceptionLog(ex);
|
||
return null;
|
||
}
|
||
finally
|
||
{
|
||
CacheHelp.Removesys(CacheHelp.syskey.Appversions);
|
||
}
|
||
}
|
||
#endregion
|
||
#region 删除权限
|
||
public static bool Delautho(int authoId, int status = 0, string uid = null)
|
||
{
|
||
var au = CacheHelp.cacheSysAutho.FirstOrDefault(x=>x.Id == authoId);
|
||
var app = CacheHelp.cacheView_AppAutho.FirstOrDefault(x=>x.AuthorityId == authoId);
|
||
if (au == null || app == null)
|
||
return false;
|
||
|
||
var autho = SqlSugarBase.Db.Queryable<Authority>().First(x => x.Id == authoId);
|
||
|
||
autho.IsValid = status;
|
||
SqlSugarBase.Db.Updateable(autho).ExecuteCommand();
|
||
|
||
|
||
if(status==1)
|
||
DbLogServer.WriteDbLog($"禁用了应用{app.AppName}({app.AppId})权限{au.AuthorityName}({au.Id}).",2);
|
||
else
|
||
DbLogServer.WriteDbLog( $"恢复了应用{app.AppName}({app.AppId})权限{au.AuthorityName}({au.Id}).", 2);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysView_AppAuthoListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAuthorityListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppAuthoListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppAuthoListKey);
|
||
return true;
|
||
}
|
||
#endregion
|
||
#region 编辑权限
|
||
public static bool Editautho(Authority authority, string uid)
|
||
{
|
||
try {
|
||
if (authority.Id <= 0)
|
||
return false;
|
||
var auc = CacheHelp.cacheSysAutho.FirstOrDefault(x => x.Id == authority.Id);
|
||
var app = CacheHelp.cacheView_AppAutho.FirstOrDefault(x => x.AuthorityId == authority.Id);
|
||
if (auc == null || app == null)
|
||
return false;
|
||
|
||
var au = SqlSugarBase.Db.Queryable<Authority>().First(x => x.Id == authority.Id);
|
||
au.Desc = authority.Desc ?? au.Desc;
|
||
au.AuthoStatusTypeId = authority.AuthoStatusTypeId ?? au.AuthoStatusTypeId;
|
||
au.AuthorityName = authority.AuthorityName ?? au.AuthorityName;
|
||
SqlSugarBase.Db.Updateable(au).ExecuteCommand();
|
||
DbLogServer.WriteDbLog( $"修改了{app.AuthorityName} ({app.AppId})权限{au.AuthorityName}({au.Id}).修改后为:" + JsonConvert.SerializeObject(au), 1);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysView_AppAuthoListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAuthorityListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppAuthoListKey);
|
||
CacheHelp.Removesys(CacheHelp.syskey.sysAppAuthoListKey);
|
||
return true;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelp.WriteExceptionLog(ex);
|
||
return false;
|
||
}
|
||
finally
|
||
{
|
||
CacheHelp.Removesys(CacheHelp.syskey.Appversions);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
#region 下载量添加
|
||
public static bool AddDown( int AppId,int sum = 1)
|
||
{
|
||
try
|
||
{
|
||
var app = SqlSugarBase.Db.Queryable<ApplicationDomain>().First(x => x.Id == AppId);
|
||
app.DowSum+=sum;
|
||
|
||
return SqlSugarBase.Db.Updateable(app).ExecuteCommand()>0;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelp.WriteExceptionLog(ex);
|
||
return false;
|
||
}finally
|
||
{
|
||
CacheHelp.Removesys( CacheHelp.syskey.Appversions);
|
||
CacheHelp.Removesys( CacheHelp.syskey.sysAppsListKey);
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|