ZhouliProject/Zhouli.DAL/Implements/BlogArticleDAL.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Zhouli.DAL.Interface;
using Zhouli.DbEntity.Models;
using Microsoft.Extensions.Configuration;
using System.Linq;
using Zhouli.DbEntity.Views;
using System.Linq.Expressions;
using Zhouli.Enum;
using Dapper;
namespace Zhouli.DAL.Implements
{
public class BlogArticleDAL : BaseDAL<BlogArticle>, IBlogArticleDAL
{
public BlogArticleDAL(ZhouLiContext db, IDbConnection dbConnection) : base(db, dbConnection)
{
}
/// <summary>
/// 获取文章详情
/// </summary>
/// <param name="articleId"></param>
/// <returns></returns>
public dynamic GetArticleDetails(int articleId)
{
return GetModels(t => t.ArticleId == articleId).Select(t => new
{
t.ArticleId,
t.ArticleTitle,
t.CreateTime,
t.ArticleBody,
CreateUser = _db.SysUser.Where(s => s.UserId.Equals(t.CreateUserId)).Select(s => s.UserNikeName).First(),
LableInfo = _db.BlogLable.Where(s => _db.BlogRelated
.Where(ss => ss.RelatedArticleId.Equals(articleId))
.Select(tt => tt.RelatedLableId).Contains(s.LableId))
.Select(q => new { q.LableName, q.LableId }).ToArray(),
ArticleBrowsingNum = _db.BlogArticleBrowsing.Count(b => b.ArticleId == articleId),
ArticleCommentNum = 0,
ArticleLikeNum = _db.BlogArticleLike.Count(b => b.ArticleId == articleId),
LastArticle = _db.BlogArticle.Where(b => b.ArticleId < articleId).OrderByDescending(b => b.ArticleId).Select(s => new { s.ArticleId, s.ArticleTitle }).FirstOrDefault(),
NextArticle = _db.BlogArticle.Where(b => b.ArticleId > articleId).OrderBy(b => b.ArticleId).Select(s => new { s.ArticleId, s.ArticleTitle }).FirstOrDefault()
}).First();
}
/// <summary>
/// 获取文章列表
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="searchstr"></param>
/// <returns></returns>
public PageModel GetBlogArticleList(string page, string limit, string searchstr, int lableId)
{
Expression<Func<BlogArticle, bool>> expression =
t => t.ArticleTitle.Contains(searchstr) ||
string.IsNullOrEmpty(searchstr)
&& t.DeleteSign.Equals((int)DeleteSign.Sing_Deleted) &&
((_db.BlogRelated.Where(r => r.RelatedLableId == lableId).Select(s => s.RelatedArticleId).Contains(t.ArticleId))
后面还有 69 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。