using MyCode.Project.Domain.Message.Response.User;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Extensions;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Menus
{
///
/// 菜单模块
///
public class MenuModule
{
///
/// 模块ID
///
public Guid? Id { get; set; }
///
/// 菜单ID
///
public Guid? MenuId { get; set; }
///
/// 功能类型。1:WebApi,2:函数,3:存储过程
///
public int FuncType { get; set; }
///
/// 路径
///
public string Path { get; set; }
///
/// 功能点
///
[JsonIgnore]
public string FuncPoint { get; set; }
///
/// 菜单按钮
///
public MenuButton MenuPower { get; set; }
///
/// 备注
///
public string Note { get; set; }
///
/// 系统类型。0:公用,11:公司系统,12:加盟商系统,13:店铺系统
///
public int SystemType { get; set; }
///
/// 初始化菜单按钮
///
public void InitPower()
{
if (FuncPoint.IsEmpty())
{
return;
}
this.MenuPower = JsonHelper.ToObject(FuncPoint);
}
///
/// 转换成菜单按钮
///
/// 是否加盟商
///
public MenuButtonView ToMenuButtonView(bool isCustomer)
{
if (MenuPower == null)
{
return null;
}
MenuButtonView button = new MenuButtonView();
if (MenuPower.Page.Any())
{
button.Page = MenuPower.Page.Where(x => !isCustomer || x.SysType == 0).Select(x => x.Name).ToList();
}
if (MenuPower.PageList.Any())
{
button.PageList = MenuPower.PageList.Where(x => !isCustomer || x.SysType == 0).Select(x => x.Name).ToList();
}
if (MenuPower.ChildrenList.Any())
{
button.ChildrenList = MenuPower.ChildrenList.Where(x => !isCustomer || x.SysType == 0).Select(x => x.Name).ToList();
}
return button;
}
}
}