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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。