using AdminAPI.Filters;using AdminAPI.Libraries;using AdminShared.Models;using AdminShared.Models.Link;using Common;using Microsoft.AspNetCore.Authorization;using Microsoft.AspNetCore.Mvc;using Repository.Database;namespace AdminAPI.Controllers{[SignVerifyFilter][Route("[controller]/[action]")][Authorize][ApiController]public class LinkController : ControllerBase{private readonly DatabaseContext db;private readonly IDHelper idHelper;private readonly long userId;public LinkController(DatabaseContext db, IDHelper idHelper, IHttpContextAccessor httpContextAccessor){this.db = db;this.idHelper = idHelper;var userIdStr = httpContextAccessor.HttpContext?.GetClaimByUser("userId");if (userIdStr != null){userId = long.Parse(userIdStr);}}/// <summary>/// 获取友情链接列表/// </summary>/// <param name="pageNum">页码</param>/// <param name="pageSize">单页数量</param>/// <param name="searchKey">搜索关键词</param>/// <returns></returns>[HttpGet]public DtoPageList<DtoLink> GetLinkList(int pageNum, int pageSize, string? searchKey){DtoPageList<DtoLink> data = new();int skip = (pageNum - 1) * pageSize;var query = db.TLink.AsQueryable();if (!string.IsNullOrEmpty(searchKey)){query = query.Where(t => t.Name.Contains(searchKey));}data.Total = query.Count();data.List = query.OrderByDescending(t => t.CreateTime).Select(t => new DtoLink{Id = t.Id,Name = t.Name,Url = t.Url,Sort = t.Sort,CreateTime = t.CreateTime}).Skip(skip).Take(pageSize).ToList();return data;}/// <summary>/// 获取友情链接/// </summary>/// <param name="linkId">链接ID</param>/// <returns></returns>[HttpGet]public DtoLink? GetLink(long linkId){var link = db.TLink.Where(t => t.Id == linkId).Select(t => new DtoLink{Id = t.Id,Name = t.Name,Url = t.Url,Sort = t.Sort,CreateTime = t.CreateTime}).FirstOrDefault();return link;}/// <summary>/// 创建友情链接/// </summary>/// <param name="createLink"></param>/// <returns></returns>[HttpPost]public long CreateLink(DtoEditLink createLink){TLink link = new(){Id = idHelper.GetId(),Name = createLink.Name,Url = createLink.Url,CreateUserId = userId,Sort = createLink.Sort};db.TLink.Add(link);db.SaveChanges();return link.Id;}/// <summary>/// 更新友情链接/// </summary>/// <param name="linkId"></param>/// <param name="updateLink"></param>/// <returns></returns>[HttpPost]public bool UpdateLink(long linkId, DtoEditLink updateLink){var link = db.TLink.Where(t => t.Id == linkId).FirstOrDefault();if (link != null){link.Name = updateLink.Name;link.Url = updateLink.Url;link.Sort = updateLink.Sort;db.SaveChanges();}return true;}/// <summary>/// 删除友情链接/// </summary>/// <param name="id"></param>/// <returns></returns>[HttpDelete]public bool DeleteLink(long id){var link = db.TLink.Where(t => t.Id == id).FirstOrDefault();if (link != null){link.IsDelete = true;link.DeleteUserId = userId;db.SaveChanges();return true;}else{return false;}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。