//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2023-06-27 15:47:06 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Application.Contracts; using Microsoft.AspNetCore.Authorization; namespace IRaCIS.Core.Application.Service { /// /// PublishLogService /// [ApiExplorerSettings(GroupName = "Common")] public class PublishLogService : BaseService, IPublishLogService { private readonly IRepository _publishLogRepository; public PublishLogService(IRepository publishLogRepository) { _publishLogRepository = publishLogRepository; } [HttpPost] public async Task> GetPublishLogList(PublishLogQuery inQuery) { var publishLogQueryable = _publishLogRepository .WhereIf(!string.IsNullOrEmpty(inQuery.Version), t => t.Version.Contains(inQuery.Version)) .WhereIf(!string.IsNullOrEmpty(inQuery.UpdateContent), t => t.UpdateContent.Contains(inQuery.UpdateContent)) .WhereIf(inQuery.State != null, t => t.State == inQuery.State) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await publishLogQueryable .ToPagedListAsync(inQuery); return pageList; } public async Task AddOrUpdatePublishLog(PublishLogAddOrEdit addOrEditPublishLog) { Version version; if (!Version.TryParse(addOrEditPublishLog.Version, out version)) { //"版本号不符合要求" return ResponseOutput.NotOk(_localizer["PublishLog_NotValidVersion"] ); } var verifyExp1 = new EntityVerifyExp() { VerifyExp = u => u.Version == addOrEditPublishLog.Version, //"发布编号不能重复" VerifyMsg = _localizer["PublishLog_RepeatVersion"] }; var verifyExp2 = new EntityVerifyExp() { VerifyExp = u => u.IsCurrentVersion == addOrEditPublishLog.IsCurrentVersion, //"当前发布版本只允许有一个" VerifyMsg = _localizer["PublishLog_OnlyOneCurrentVersion"] , IsVerify=addOrEditPublishLog.IsCurrentVersion==true }; var entity = await _publishLogRepository.InsertOrUpdateAsync(addOrEditPublishLog, true, verifyExp1, verifyExp2); return ResponseOutput.Ok(entity.Id.ToString()); } [HttpDelete("{publishLogId:guid}")] public async Task DeletePublishLog(Guid publishLogId) { var success = await _publishLogRepository.DeleteFromQueryAsync(t => t.Id == publishLogId, true); return ResponseOutput.Ok(); } [AllowAnonymous] public async Task GetCurrentPublishInfo() { var result = await _publishLogRepository.Where(t => t.IsCurrentVersion == true).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync(); if (result == null) { //"系统当前版本未标记,请联系维护人员" throw new QueryBusinessObjectNotExistException(_localizer["PublishLog_NoCurrentVersion"] ); } return result; } public async Task> GetPublishVersionSelect() { return await _publishLogRepository.ProjectTo(_mapper.ConfigurationProvider).OrderByDescending(t => t.Version).ToListAsync(); } } }