//--------------------------------------------------------------------
// 此代码由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.PageIndex, inQuery.PageSize, inQuery.SortField, inQuery.Asc);
return pageList;
}
public async Task AddOrUpdatePublishLog(PublishLogAddOrEdit addOrEditPublishLog)
{
Version version;
if (!Version.TryParse(addOrEditPublishLog.Version, out version))
{
return ResponseOutput.NotOk("版本号不符合要求");
}
var verifyExp1 = new EntityVerifyExp()
{
VerifyExp = u => u.Version == addOrEditPublishLog.Version,
VerifyMsg = "发布编号不能重复"
};
var entity = await _publishLogRepository.InsertOrUpdateAsync(addOrEditPublishLog, true, verifyExp1);
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("系统当前版本未标记,请联系维护人员");
}
return result;
}
public async Task> GetPublishVersionSelect()
{
return await _publishLogRepository.ProjectTo(_mapper.ConfigurationProvider).OrderByDescending(t => t.State).ToListAsync();
}
}
}