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]")][Authorize][ApiController]public class LinkController : ControllerBase{private readonly DatabaseContext db;private readonly SnowflakeHelper snowflakeHelper;private readonly long userId;public LinkController(DatabaseContext db, SnowflakeHelper snowflakeHelper, IHttpContextAccessor httpContextAccessor){this.db = db;this.snowflakeHelper = snowflakeHelper;var userIdStr = httpContextAccessor.HttpContext?.GetClaimByAuthorization("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("GetLinkList")]public DtoPageList<DtoLink> GetLinkList(int pageNum, int pageSize, string? searchKey){var data = new DtoPageList<DtoLink>();int skip = (pageNum - 1) * pageSize;var query = db.TLink.Where(t => t.IsDelete == false);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("GetLink")]public DtoLink? GetLink(long linkId){var link = db.TLink.Where(t => t.IsDelete == false && 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("CreateLink")]public long CreateLink(DtoEditLink createLink){TLink link = new(){Id = snowflakeHelper.GetId(),Name = createLink.Name,Url = createLink.Url,CreateTime = DateTime.UtcNow,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("UpdateLink")]public bool UpdateLink(long linkId, DtoEditLink updateLink){var link = db.TLink.Where(t => t.IsDelete == false && 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("DeleteLink")]public bool DeleteLink(long id){var link = db.TLink.Where(t => t.IsDelete == false && t.Id == id).FirstOrDefault();if (link != null){link.IsDelete = true;link.DeleteTime = DateTime.UtcNow;link.DeleteUserId = userId;db.SaveChanges();return true;}else{return false;}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。