src/ShenNius.Share.Domain/Services/Cms/ArticleService.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using ShenNius.Share.Domain.Repository;
using ShenNius.Share.Domain.Repository.Extensions;
using ShenNius.Share.Models.Configs;
using ShenNius.Share.Models.Dtos.Common;
using ShenNius.Share.Models.Dtos.Input.Cms;
using ShenNius.Share.Models.Entity.Cms;
using ShenNius.Share.Models.Entity.Sys;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
/*************************************
* 类名:ColumnService
* 作者:realyrare
* 邮箱:mhg215@yeah.net
* 时间:2021/3/11 17:15:30
*┌───────────────────────────────────┐
*│ 版权所有:神牛软件 │
*└───────────────────────────────────┘
**************************************/
namespace ShenNius.Share.Domain.Services.Cms
{
public interface IArticleService : IBaseServer<Article>
{
Task<Page<ArticleOutput>> GetArtcileByConditionAsync(Expression<Func<Article, Column, bool>> where, int pageIndex, int pageSize);
Task<List<string>> GetAllTagsAsync(List<int> columnIds);
Task<ArticleOutput> GetArtcileDetailAsync(Expression<Func<Article, Column, bool>> where);
Task<ArticleOutput> GetNextOrUpArticleAsync(Expression<Func<Article, Column, bool>> expression);
Task<ApiResult> GetPagesAsync(KeyListTenantQuery query);
}
public class ArticleService : BaseServer<Article>, IArticleService
{
public async Task<ApiResult> GetPagesAsync(KeyListTenantQuery query)
{
var res = await Db.Queryable<Article, Column>((a, c) => new JoinQueryInfos(JoinType.Inner, a.ColumnId == c.Id && a.Status == true))
.WhereIF(query.TenantId!=0,(a,c)=>a.TenantId==query.TenantId&&c.TenantId==query.TenantId)
.WhereIF(!string.IsNullOrEmpty(query.Key), (a, c) => a.Title.Contains(query.Key))
.OrderBy((a, c) => a.Id, OrderByType.Desc)
.Select((a, c) => new Article()
{
Title = a.Title,
CreateTime = a.CreateTime,
ModifyTime = a.ModifyTime,
Id = a.Id,
Audit = a.Audit,
Author = a.Author,
Source = a.Source,
ColumnName = c.Title,
TenantName = SqlFunc.Subqueryable<Tenant>().Where(s => s.Id == query.TenantId).Select(s => s.Name),
})
.ToPageAsync(query.Page, query.Limit);
return new ApiResult(data: new { count = res.TotalItems, items = res.Items });
}
public async Task<Page<ArticleOutput>> GetArtcileByConditionAsync(Expression<Func<Article, Column, bool>> where, int pageIndex, int pageSize)
{
return await Db.Queryable<Article, Column>((ca, cc) => new object[] { JoinType.Inner, ca.ColumnId == cc.Id })
后面还有 68 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
