/// <summary>
        /// 查询子级分类
        /// </summary>
        /// <param name="parentId">父级分类id</param>
        /// <param name="recursive">是否无限向下查询</param>
        /// <returns></returns>
        protected async Task <List <CourseCategory> > FindChildrenAsync(long?parentId, bool recursive = false)
        {
            if (!recursive)
            {
                return(await EntityRepo.GetAllListAsync(ou => ou.ParentId == parentId));
            }

            if (!parentId.HasValue)
            {
                return(await EntityRepo.GetAllListAsync());
            }

            var code = await GetCodeAsync(parentId.Value);

            return(await EntityRepo.GetAllListAsync(
                       ou => ou.Code.StartsWith(code) && ou.Id != parentId.Value
                       ));
        }
        /// <summary>
        /// 获取最后一个分类
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        protected virtual async Task <CourseCategory> GetLastChildOrNullAsync(long?parentId)
        {
            var children = await EntityRepo.GetAllListAsync(ou => ou.ParentId == parentId);

            return(children.OrderBy(c => c.Code).LastOrDefault());
        }