using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Bowin.Common.ServiceToken.Permission; using Bowin.Common.WebModels; using YLShipBuildLandMap.Entity.ViewModel; using YLShipBuildLandMap.Entity.ViewModel.SystemSetting; using YLShipBuildLandMap.Services.SystemSetting; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; namespace YLShipBuildLandMap.Web.Controllers.SystemSetting { [Route("api/systemsetting/[controller]/[action]")] [ApiController] [Authorize] public class AnnounceController : ControllerBase { private IAnnouncementService AnnouncementService { get; set; } public AnnounceController(IAnnouncementService announcementService) { AnnouncementService = announcementService; } [HttpPost] [FunctionCode("9901")] public ResultMessage GetAnnounceList([FromBody] dynamic inputObj) { try { string title = inputObj.title; DateTime? startDate = inputObj.startDate; DateTime? endDate = inputObj.endDate; int? pageIndex = inputObj.pageIndex; int? pageSize = inputObj.pageSize; var announcmentList = AnnouncementService.GetAnnouncementViewList(title, startDate, endDate, pageIndex, pageSize); return ResultMessage.Success(announcmentList); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] public ResultMessage GetAnnounceNewList([FromBody] dynamic inputObj) { try { string title = inputObj.title; int? pageIndex = inputObj.pageIndex; int? pageSize = inputObj.pageSize; DateTime? startDate = inputObj.startDate; DateTime? endDate = inputObj.endDate; DateTime? nowDate = inputObj.nowDate; var announcmentList = AnnouncementService.GetAnnouncementNewList(title, nowDate, LoginUser.Current.UserID, startDate, endDate,pageIndex, pageSize); return ResultMessage.Success(announcmentList); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("9901")] public ResultMessage GetAnnouncement([FromBody] dynamic inputObj) { try { Guid announceID = inputObj.announceID; var announcment = AnnouncementService.GetAnnouncementView(announceID); return ResultMessage.Success(announcment); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("9901")] public ResultMessage AnnounceRoleList([FromBody] dynamic inputObj) { try { Guid announceID = inputObj.announceID; return ResultMessage.Success(AnnouncementService.GetAnnouncementRoleViewList(announceID)); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("9901")] public ResultMessage AnnounceUserList([FromBody] dynamic inputObj) { try { Guid announceID = inputObj.announceID; return ResultMessage.Success(AnnouncementService.GetAnnouncementUserViewList(announceID)); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] public ResultMessage UserList([FromBody] JObject requestParams) { var user = LoginUser.Current; int? pageIndex = requestParams["pageIndex"].Value(); int? pageSize = requestParams["pageSize"].Value(); try { return ResultMessage.Success(AnnouncementService.GetAnnouncementPageList(user.UserID, pageIndex, pageSize)); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("990101")] public async Task Add([FromBody] JObject inputObj) { try { AnnouncementView announce = inputObj["announce"].ToObject(); List roleList = inputObj["roleList"].ToObject>(); List userList = inputObj["userList"].ToObject>(); announce.AnnouncementID = null; await AnnouncementService.Save(announce, roleList, userList, LoginUser.Current.UserID); return ResultMessage.Success(); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("990102")] public async Task Edit([FromBody] dynamic inputObj) { try { AnnouncementView announce = inputObj["announce"].ToObject(); List roleList = inputObj["roleList"].ToObject>(); List userList = inputObj["userList"].ToObject>(); if (!announce.AnnouncementID.HasValue) { throw new Exception("实体ID不能为空。"); } await AnnouncementService.Save(announce, roleList, userList, LoginUser.Current.UserID); return ResultMessage.Success(); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } [HttpPost] [FunctionCode("990103")] public async Task Delete([FromBody] dynamic inputObj) { try { List announcemntIDList = inputObj.announceIDs.ToObject>(); ; await AnnouncementService.Delete(announcemntIDList); return ResultMessage.Success(); } catch (Exception ex) { return ResultMessage.GetError(ex.Message); } } } }