using Tiobon.Core.Common.Helper; using Tiobon.Core.IServices; using Tiobon.Core.Model; using Tiobon.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Tiobon.Core.Controllers { /// /// Tibug 管理 /// [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] public class TopicDetailController : ControllerBase { readonly ITopicServices _topicServices; readonly ITopicDetailServices _topicDetailServices; /// /// 构造函数 /// /// /// public TopicDetailController(ITopicServices topicServices, ITopicDetailServices topicDetailServices) { _topicServices = topicServices; _topicDetailServices = topicDetailServices; } /// /// 获取Bug数据列表(带分页) /// 【无权限】 /// /// 页数 /// 专题类型 /// 关键字 /// /// [HttpGet] [AllowAnonymous] public async Task>> Get(int page = 1, string tname = "", string key = "", int intPageSize = 12) { long tid = 0; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } if (string.IsNullOrEmpty(tname) || string.IsNullOrWhiteSpace(tname)) { tname = ""; } tname = UnicodeHelper.UnicodeToString(tname); if (!string.IsNullOrEmpty(tname)) { tid = ((await _topicServices.Query(ts => ts.tName == tname)).FirstOrDefault()?.Id).ObjToLong(); } var data = await _topicDetailServices.QueryPage(a => !a.tdIsDelete && a.tdSectendDetail == "tbug" && ((tid == 0 && true) || (tid > 0 && a.TopicId == tid)) && ((a.tdName != null && a.tdName.Contains(key)) || (a.tdDetail != null && a.tdDetail.Contains(key))), page, intPageSize, " Id desc "); return new MessageModel>() { msg = "获取成功", success = data.dataCount >= 0, response = data }; } /// /// 获取详情【无权限】 /// /// /// // GET: api/TopicDetail/5 [HttpGet("{id}")] [AllowAnonymous] public async Task> Get(long id) { var data = new MessageModel(); var response = id > 0 ? await _topicDetailServices.QueryById(id) : new TopicDetail(); data.response = (response?.tdIsDelete).ObjToBool() ? new TopicDetail() : response; if (data.response != null) { data.success = true; data.msg = ""; } return data; } /// /// 添加一个 BUG 【无权限】 /// /// /// // POST: api/TopicDetail [HttpPost] [AllowAnonymous] public async Task> Post([FromBody] TopicDetail topicDetail) { var data = new MessageModel(); topicDetail.tdCreatetime = DateTime.Now; topicDetail.tdRead = 0; topicDetail.tdCommend = 0; topicDetail.tdGood = 0; topicDetail.tdTop = 0; var id = (await _topicDetailServices.Add(topicDetail)); data.success = id > 0; if (data.success) { data.response = id.ObjToString(); data.msg = "添加成功"; } return data; } /// /// 更新 bug /// /// /// // PUT: api/TopicDetail/5 [HttpPut] public async Task> Update([FromBody] TopicDetail topicDetail) { var data = new MessageModel(); if (topicDetail != null && topicDetail.Id > 0) { data.success = await _topicDetailServices.Update(topicDetail); if (data.success) { data.msg = "更新成功"; data.response = topicDetail?.Id.ObjToString(); } } return data; } /// /// 删除 bug /// /// /// // DELETE: api/ApiWithActions/5 [HttpDelete] public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) { var topicDetail = await _topicDetailServices.QueryById(id); topicDetail.tdIsDelete = true; data.success = await _topicDetailServices.Update(topicDetail); if (data.success) { data.msg = "删除成功"; data.response = topicDetail?.Id.ObjToString(); } } return data; } } }