using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
using WMS.Entity;
using WMS.Entity.Context;
using WMS.IDAL;
using WMS.IDAL.ISysInterface;
namespace WMS.DAL.SysInfrastructure
{
    /// 
    /// RBAC仓储实践
    /// 
    public class RBACRepository : IRBACRepository
    {
        private static readonly SqlSugarScope Db = DataContext.Db;
        public RBACRepository()
        {
        }
        /// 
        /// 获取rbac信息列表
        /// 
        /// 
        public async Task> GetRBACLists(int roleid)
        {
            string str = "select userinfo.UserNo,userinfo.UserName,userinfo.RealName,userinfo.Status,userinfo.Sex,userinfo.Nationality,userinfo.Paper,userinfo.Phone,userinfo.Email,userinfo.Addres,userinfo.LoginTime,userinfo.SetPasswordTime,role.RoleNo,role.RoleName,menu.MenuNo,menu.MenuName,menu.ParentNo,menu.Ord,menu.Url,menu.level from SysUserInfor userinfo join SysRoles role on userinfo.RoleNo = role.RoleNo join SysRoleRight roleright on roleright.RoleNo = role.RoleNo join SysFunctionMenu menu on roleright.MenuNo = menu.MenuNo";
            List rbaclist = new List();
            if (roleid != 0)
            {
                str += " where role.Id = @id";
                rbaclist = await Db.Ado.SqlQueryAsync(str, new
                {
                    id = roleid //角色id
                });
            }
            else
            {
                rbaclist = await Db.Ado.SqlQueryAsync(str);
            }
            return rbaclist;
        }
    }
}