/// <summary>
        /// 获取用户列表分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="size"></param>
        /// <param name="kw"></param>
        /// <param name="appid"></param>
        /// <returns></returns>
        public ActionResult Page(int page = 1, int size = 10, string kw = "", string appid = "")
        {
            Expression <Func <UserInfo, bool> > @where;

            if (string.IsNullOrEmpty(kw))
            {
                if (string.IsNullOrEmpty(appid))
                {
                    where = u => true;
                }
                else
                {
                    where = u => u.ClientApp.Any(a => a.AppId.Equals(appid));
                }
            }
            else
            {
                if (string.IsNullOrEmpty(appid))
                {
                    where = u => u.Username.Contains(kw) || u.Email.Contains(kw) || u.PhoneNumber.Contains(kw);
                }
                else
                {
                    where = u => u.ClientApp.Any(a => a.AppId.Equals(appid)) && u.Username.Contains(kw) || u.Email.Contains(kw) || u.PhoneNumber.Contains(kw);
                }
            }

            List <UserInfoDto> list = UserInfoBll.LoadPageEntitiesNoTracking <DateTime, UserInfoDto>(page, size, out int total, where, u => u.LastLoginTime, false).ToList();

            return(PageResult(list, size, total));
        }