using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using PMS.DBService.SysManager;
using PMS.Interface.SysManager;
using QWPlatform.IService;
using QWPlatform.SystemLibrary.Utils;
using QWPlatform.SystemLibrary;
using System.Data;
using PMS.BusinessModels.SysManager;
namespace PMS.BusinessService.SysManager
{
///
/// 创 建 人:王海洋
/// 创建日期:2018-12-7
/// 功能描述:系统模块业务层
///
public class XTMKBuiness : ISystemModule
{
//数据服务
private XTMKService db_sysMenu = DataServiceBase.Instance();
#region 系统模块基础操作
//根据用户id获取对应的菜单目录
public string GetTreeMenu(List roleids, bool isAdmin)
{
var list = db_sysMenu.GetSysMenus(roleids, isAdmin);
return Strings.ObjectToJson(list, true);
}
//获取easyui treeGridView
public string GetTreeGridView()
{
var dt = db_sysMenu.GetList();
var column = new string[] { "ID", "上级ID", "名称", "地址", "启用", "图标", "序号", "备注", "首页" };
return dt.ToEasyUITreeGridJson("ID", "上级ID", null, column, "");
//return dt.ToJson();
}
//获取module信息
public DataTable GetModuleInfo(int id)
{
return db_sysMenu.GetInfoById(id);
}
//获取EasyuiTreejson
public string GetEasyUIJson()
{
var dt = db_sysMenu.GetList();
return dt.ToEasyUITreeJson("ID", "名称", "上级ID", null, "");
}
//保存
public bool SaveInfo(form_menu_model model)
{
var emodel = new PMS.EntityModels.SysManager.XTMKModel();
emodel.MC = model.name;
emodel.DZ = model.address;
emodel.QY = model.GetIsActive ? 1 : 0;
emodel.TB = model.icons;
emodel.XH = model.ordnum;
emodel.BZ = model.remark;
emodel.SY = model.ishome == "on" ? 1 : 0;
if (model.parentid > 0)
{//设置为上级ID
emodel.SJID = model.parentid;
}
if (model.id > 0)
{//存在ID,说明是编辑
emodel.ID = model.id;
return db_sysMenu.Update(emodel) > 0;
}
else
{//不存在ID,需要创建一个新记录
return db_sysMenu.Add(emodel) > 0;
}
}
//检查数据库是否重复名称
public bool CheckNameExists(string name, int id)
{
return db_sysMenu.CheckNameExists(name, id);
}
//删除模块
public bool DeleteModule(int id)
{
var model = new EntityModels.SysManager.XTMKModel();
model.ID = id;
return db_sysMenu.Delete(model) > 0;
}
#endregion
#region 系统模块授权操作
//根据ID查询已授权的功能列表
public DataTable GetButtonListByID(int id)
{
return this.db_sysMenu.SelectButtonsByMid(id);
}
//对模块分配按钮
public bool AuthButtons(int id, string buttonids, string group)
{
if (!string.IsNullOrEmpty(buttonids))
{
group = group.Trim();
var btns = buttonids.Split(',');
int orderNum = 0;
foreach (var bid in btns)
{
if (!string.IsNullOrEmpty(bid))
{//按钮id不为空
int buttonId = 0;
if (int.TryParse(bid, out buttonId))
{
orderNum++;
//同一个模块,同一个按钮,同一个分组不能重复
bool r = db_sysMenu.CheckModuleButtonExists(id, group, buttonId);
if (!r)
{//只有不存在时才添加该按钮
db_sysMenu.AddModuleButton(id, group, buttonId, orderNum);
}
}//end if
}//end if
}
return true;
}
return false;
}
//移除指定模块的授权功能
public bool RemoveAuthButtons(string ids)
{
if (!string.IsNullOrEmpty(ids))
{//检查是否为空
var mids = ids.Split(',');
foreach (var id in mids)
{
if (!string.IsNullOrEmpty(id))
{//id不为空,删除
int mid = 0;
if (int.TryParse(id, out mid))
{
db_sysMenu.RemoveModuleButton(mid);
}
}
}
return true;
}
return false;
}
//获取所有的模块授权(已启用的模块)
public string GetActiveTreemenu()
{
//获取模块的列表
var dt = db_sysMenu.GetMenuActiveList();
return dt.ToEasyUITreeJson("ID", "名称", "上级ID", null, null);
}
#endregion
}
}