106 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
	
| //--------------------------------------------------------------------
 | |
| //     此代码由T4模板自动生成  byzhouhang 20210918
 | |
| //	   生成时间 2023-06-27 15:47:06 
 | |
| //     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
 | |
| //--------------------------------------------------------------------
 | |
| 
 | |
| using IRaCIS.Core.Application.Interfaces;
 | |
| using IRaCIS.Core.Application.ViewModel;
 | |
| using IRaCIS.Core.Domain.Share;
 | |
| using Microsoft.AspNetCore.Authorization;
 | |
| using Microsoft.AspNetCore.Mvc;
 | |
| using Microsoft.Extensions.Options;
 | |
| 
 | |
| namespace IRaCIS.Core.Application.Service
 | |
| {
 | |
|     /// <summary>
 | |
|     /// PublishLogService
 | |
|     /// </summary>	
 | |
|     [ApiExplorerSettings(GroupName = "Common")]
 | |
|     public class PublishLogService(IRepository<PublishLog> _publishLogRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IPublishLogService
 | |
|     {
 | |
| 
 | |
| 
 | |
|         [HttpPost]
 | |
|         public async Task<PageOutput<PublishLogView>> 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<PublishLogView>(_mapper.ConfigurationProvider);
 | |
| 
 | |
|             var pageList = await publishLogQueryable
 | |
|                 .ToPagedListAsync(inQuery);
 | |
| 
 | |
|             return pageList;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public async Task<IResponseOutput> AddOrUpdatePublishLog(PublishLogAddOrEdit addOrEditPublishLog)
 | |
|         {
 | |
|             Version version;
 | |
| 
 | |
|             if (!Version.TryParse(addOrEditPublishLog.Version, out version)|| !Version.TryParse(addOrEditPublishLog.Version_US, out version))
 | |
|             {
 | |
|                 //"版本号不符合要求"
 | |
|                 return ResponseOutput.NotOk(_localizer["PublishLog_NotValidVersion"]);
 | |
|             }
 | |
| 
 | |
|             var verifyExp1 = new EntityVerifyExp<PublishLog>()
 | |
|             {
 | |
|                 VerifyExp = u => u.Version == addOrEditPublishLog.Version || u.Version_US == addOrEditPublishLog.Version_US,
 | |
| 
 | |
|                 //"发布编号不能重复"
 | |
|                 VerifyMsg = _localizer["PublishLog_RepeatVersion"]
 | |
|             };
 | |
| 
 | |
|             var verifyExp2 = new EntityVerifyExp<PublishLog>()
 | |
|             {
 | |
|                 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<IResponseOutput> DeletePublishLog(Guid publishLogId)
 | |
|         {
 | |
|             var success = await _publishLogRepository.DeleteFromQueryAsync(t => t.Id == publishLogId, true);
 | |
|             return ResponseOutput.Ok();
 | |
|         }
 | |
| 
 | |
|         [AllowAnonymous]
 | |
|         public async Task<PublishLogView> GetCurrentPublishInfo([FromServices] IOptionsMonitor<SystemEmailSendConfig> _sysEmialConfigOPtion)
 | |
|         {
 | |
|             var result = await _publishLogRepository.Where(t => t.IsCurrentVersion == true).ProjectTo<PublishLogView>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
 | |
| 
 | |
|             if (result == null)
 | |
|             {
 | |
|                 //"系统当前版本未标记,请联系维护人员"
 | |
|                 throw new QueryBusinessObjectNotExistException(_localizer["PublishLog_NoCurrentVersion"]);
 | |
|             }
 | |
| 
 | |
|             result.IsEnv_US = _sysEmialConfigOPtion.CurrentValue.IsEnv_US;
 | |
|             return result;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public async Task<List<PublishVersionSelect>> GetPublishVersionSelect()
 | |
|         {
 | |
|             return await _publishLogRepository.ProjectTo<PublishVersionSelect>(_mapper.ConfigurationProvider).OrderByDescending(t => t.Version).ToListAsync();
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |