Browse Source

一点优化

懒得勤快 5 years ago
parent
commit
020f915f20

+ 4 - 12
src/Masuit.MyBlogs.Core/Controllers/AdvertisementController.cs

@@ -30,7 +30,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// </summary>
         /// <param name="id">广告id</param>
         /// <returns></returns>
-        [HttpGet("{id:int}")]
+        [HttpGet("{id:int}"), ResponseCache(Duration = 3600)]
         public async Task<IActionResult> Redirect(int id)
         {
             var ad = await AdsService.GetByIdAsync(id) ?? throw new NotFoundException("推广链接不存在");
@@ -57,7 +57,7 @@ namespace Masuit.MyBlogs.Core.Controllers
                 where = where.And(p => p.Title.Contains(kw) || p.Description.Contains(kw));
             }
 
-            var list = AdsService.GetQuery(where).OrderByDescending(p => p.Price).ThenByDescending(a => a.Weight).ToCachedPagedList<Advertisement, AdvertisementViewModel>(page, size, MapperConfig);
+            var list = AdsService.GetQuery(where).OrderByDescending(p => p.Price).ThenByDescending(a => a.Weight).ToPagedList<Advertisement, AdvertisementViewModel>(page, size, MapperConfig);
             var cids = list.Data.Where(m => !string.IsNullOrEmpty(m.CategoryIds)).SelectMany(m => m.CategoryIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(int.Parse)).Distinct().ToArray();
             var dic = CategoryService.GetQuery(c => cids.Contains(c.Id)).ToDictionary(c => c.Id + "", c => c.Name);
             foreach (var ad in list.Data.Where(ad => !string.IsNullOrEmpty(ad.CategoryIds)))
@@ -77,16 +77,8 @@ namespace Masuit.MyBlogs.Core.Controllers
         public async Task<IActionResult> Save(AdvertisementDto model)
         {
             model.CategoryIds = model.CategoryIds?.Replace("null", "");
-            var entity = await AdsService.GetByIdAsync(model.Id);
-            if (entity != null)
-            {
-                Mapper.Map(model, entity);
-                bool b1 = await AdsService.SaveChangesAsync() > 0;
-                return ResultData(null, b1, b1 ? "修改成功" : "修改失败");
-            }
-
-            bool b = await AdsService.AddEntitySavedAsync(model.Mapper<Advertisement>()) > 0;
-            return ResultData(null, b, b ? "添加成功" : "添加失败");
+            var b = await AdsService.AddOrUpdateSavedAsync(a => a.Id, model.Mapper<Advertisement>()) > 0;
+            return ResultData(null, b, b ? "保存成功" : "保存失败");
         }
 
         /// <summary>

+ 3 - 4
src/Masuit.MyBlogs.Core/Controllers/CategoryController.cs

@@ -1,5 +1,4 @@
-using EFSecondLevelCache.Core;
-using Masuit.MyBlogs.Core.Common;
+using Masuit.MyBlogs.Core.Common;
 using Masuit.MyBlogs.Core.Extensions;
 using Masuit.MyBlogs.Core.Infrastructure.Services.Interface;
 using Masuit.MyBlogs.Core.Models.Command;
@@ -29,7 +28,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [ResponseCache(Duration = 600)]
         public ActionResult GetCategories()
         {
-            var list = CategoryService.GetQuery<string, CategoryDto>(c => c.Status == Status.Available, c => c.Name).Cacheable().ToList();
+            var list = CategoryService.GetQuery<string, CategoryDto>(c => c.Status == Status.Available, c => c.Name).ToList();
             return ResultData(list);
         }
 
@@ -73,7 +72,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// <returns></returns>
         public async Task<ActionResult> Edit(CategoryCommand dto)
         {
-            Category cat = await CategoryService.GetByIdAsync(dto.Id) ?? throw new NotFoundException("分类不存在!");
+            var cat = await CategoryService.GetByIdAsync(dto.Id) ?? throw new NotFoundException("分类不存在!");
             cat.Name = dto.Name;
             cat.Description = dto.Description;
             bool b = await CategoryService.SaveChangesAsync() > 0;

+ 2 - 19
src/Masuit.MyBlogs.Core/Controllers/DonateController.cs

@@ -25,7 +25,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// <returns></returns>
         public ActionResult GetPageData([Range(1, int.MaxValue, ErrorMessage = "页码必须大于0")]int page = 1, [Range(1, 50, ErrorMessage = "页大小必须在0到50之间")]int size = 15)
         {
-            var list = DonateService.GetPagesFromCache(page, size, d => true, d => d.DonateTime, false);
+            var list = DonateService.GetPages(page, size, d => true, d => d.DonateTime, false);
             return Ok(list);
         }
 
@@ -47,24 +47,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// <returns></returns>
         public async Task<ActionResult> Save(Donate donate)
         {
-            var entry = await DonateService.GetByIdAsync(donate.Id);
-            bool b;
-            if (entry is null)
-            {
-                b = await DonateService.AddEntitySavedAsync(donate) > 0;
-            }
-            else
-            {
-                entry.NickName = donate.NickName;
-                entry.Amount = donate.Amount;
-                entry.DonateTime = donate.DonateTime;
-                entry.Email = donate.Email;
-                entry.EmailDisplay = donate.EmailDisplay;
-                entry.QQorWechat = donate.QQorWechat;
-                entry.QQorWechatDisplay = donate.QQorWechatDisplay;
-                entry.Via = donate.Via;
-                b = await DonateService.SaveChangesAsync() > 0;
-            }
+            var b = await DonateService.AddOrUpdateSavedAsync(d => d.Id, donate) > 0;
             return ResultData(null, b, b ? "保存成功!" : "保存失败!");
         }
 

+ 1 - 1
src/Masuit.MyBlogs.Core/Controllers/MergeController.cs

@@ -52,7 +52,7 @@ namespace Masuit.MyBlogs.Core.Controllers
                 where = where.And(r => r.Title.Contains(kw) || r.Content.Contains(kw) || r.Modifier.Contains(kw) || r.ModifierEmail.Contains(kw));
             }
 
-            var list = PostMergeRequestService.GetQuery(where).OrderByDescending(d => d.MergeState == MergeStatus.Pending).ThenByDescending(r => r.Id).ToCachedPagedList<PostMergeRequest, PostMergeRequestDtoBase>(page, size, MapperConfig);
+            var list = PostMergeRequestService.GetQuery(where).OrderByDescending(d => d.MergeState == MergeStatus.Pending).ThenByDescending(r => r.Id).ToPagedList<PostMergeRequest, PostMergeRequestDtoBase>(page, size, MapperConfig);
             return Ok(list);
         }
 

+ 1 - 1
src/Masuit.MyBlogs.Core/Controllers/MiscController.cs

@@ -160,7 +160,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [MyAuthorize]
         public ActionResult GetPageData(int page = 1, int size = 10)
         {
-            var list = MiscService.GetPagesFromCache(page, size, n => true, n => n.ModifyDate, false);
+            var list = MiscService.GetPages(page, size, n => true, n => n.ModifyDate, false);
             return Ok(list);
         }
 

+ 1 - 1
src/Masuit.MyBlogs.Core/Controllers/PostController.cs

@@ -614,7 +614,7 @@ namespace Masuit.MyBlogs.Core.Controllers
                 where = where.And(p => p.Title.Contains(kw) || p.Author.Contains(kw) || p.Email.Contains(kw) || p.Label.Contains(kw) || p.Content.Contains(kw));
             }
 
-            var list = PostService.GetQuery(where).OrderBy($"{nameof(Post.Status)} desc,{nameof(Post.IsFixedTop)} desc,{orderby.GetDisplay()} desc").ToCachedPagedList<Post, PostDataModel>(page, size, MapperConfig);
+            var list = PostService.GetQuery(where).OrderBy($"{nameof(Post.Status)} desc,{nameof(Post.IsFixedTop)} desc,{orderby.GetDisplay()} desc").ToPagedList<Post, PostDataModel>(page, size, MapperConfig);
             return Ok(list);
         }
 

+ 4 - 15
src/Masuit.MyBlogs.Core/Controllers/SubscribeController.cs

@@ -19,6 +19,7 @@ using System.Linq;
 using System.Linq.Expressions;
 using System.Net;
 using System.Text;
+using System.Threading.Tasks;
 using WilderMinds.RssSyndication;
 
 namespace Masuit.MyBlogs.Core.Controllers
@@ -389,22 +390,10 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// <param name="model"></param>
         /// <returns></returns>
         [MyAuthorize]
-        public ActionResult Save(Broadcast model)
+        public async Task<ActionResult> Save(Broadcast model)
         {
             model.UpdateTime = DateTime.Now;
-            var entry = BroadcastService.Get(c => c.Email.Equals(model.Email));
-            bool b;
-            if (entry is null)
-            {
-                b = BroadcastService.AddEntitySaved(model) != null;
-            }
-            else
-            {
-                entry.Email = model.Email;
-                entry.SubscribeType = model.SubscribeType;
-                entry.UpdateTime = DateTime.Now;
-                b = BroadcastService.SaveChanges() > 0;
-            }
+            var b = await BroadcastService.AddOrUpdateSavedAsync(c => c.Id, model) > 0;
             return ResultData(model, b, b ? "更新订阅成功!" : "更新订阅失败!");
         }
 
@@ -460,7 +449,7 @@ namespace Masuit.MyBlogs.Core.Controllers
                 where = where.And(b => b.Email.Contains(search));
             }
 
-            var list = BroadcastService.GetPagesFromCache(page, size, @where, b => b.UpdateTime, false);
+            var list = BroadcastService.GetPagesNoTracking(page, size, @where, b => b.UpdateTime, false);
             return Ok(list);
         }