Browse Source

[fix]统一返回信息

master
贾荣国 3 years ago
parent
commit
5ef0425cc4
  1. 116
      WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs

116
WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs

@ -28,6 +28,7 @@ using Volo.Abp.Domain.Entities;
using System.Security.Cryptography; using System.Security.Cryptography;
using IdentityModel; using IdentityModel;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp;
namespace Win_in.Sfs.Scp.WebApi namespace Win_in.Sfs.Scp.WebApi
{ {
@ -47,7 +48,7 @@ namespace Win_in.Sfs.Scp.WebApi
public X12AsnAppService( public X12AsnAppService(
IX12AsnRepository repository IX12AsnRepository repository
, ITenantRepository tenantRepository , ITenantRepository tenantRepository
, IOptions<AsnOptions> options , IOptions<AsnOptions> options
) : base(repository) ) : base(repository)
{ {
@ -95,11 +96,21 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("unread-list")] [Route("unread-list")]
public async Task<ListResultDto<X12AsnDTO>> GetUnreadListAsync(string site, int count, bool autoUpdateStatus) public async Task<ListResultDto<X12AsnDTO>> GetUnreadListAsync(string site, int count, bool autoUpdateStatus)
{ {
Validator.CheckSite(_tenantRepository, site); try
{
Validator.CheckSite(_tenantRepository, site);
if (count < 1 || count > _options.Value.MaxCount) if (count < 1 || count > _options.Value.MaxCount)
{
throw new UserFriendlyException($"Count must between 1 and {_options.Value.MaxCount}");
}
}
catch (Exception ex)
{ {
throw new AbpValidationException($"Count must bigger than 1 and smaller than {_options.Value.MaxCount}"); throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var entities = await _x12AsnRepository.GetUnreadListAsync(site, count, autoUpdateStatus); var entities = await _x12AsnRepository.GetUnreadListAsync(site, count, autoUpdateStatus);
@ -122,11 +133,21 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("between-uid")] [Route("between-uid")]
public async Task<ListResultDto<X12AsnDTO>> GetListAsync(string site, long beginUid, long endUid) public async Task<ListResultDto<X12AsnDTO>> GetListAsync(string site, long beginUid, long endUid)
{ {
Validator.CheckSite(_tenantRepository, site); try
{
Validator.CheckSite(_tenantRepository, site);
if (endUid < beginUid) if (endUid < beginUid)
{
throw new UserFriendlyException("beginUid can not bigger than endUid");
}
}
catch (Exception ex)
{ {
throw new AbpValidationException("beginUid can not bigger than endUid"); throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var entities = await _x12AsnRepository.GetListAsync(p => p.Site == site && p.UID >= beginUid && p.UID <= endUid); var entities = await _x12AsnRepository.GetListAsync(p => p.Site == site && p.UID >= beginUid && p.UID <= endUid);
@ -148,13 +169,22 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("between-date")] [Route("between-date")]
public async Task<ListResultDto<X12AsnDTO>> GetListAsync(string site, DateTime beginDate, DateTime endDate) public async Task<ListResultDto<X12AsnDTO>> GetListAsync(string site, DateTime beginDate, DateTime endDate)
{ {
Validator.CheckSite(_tenantRepository, site); try
{
Validator.CheckSite(_tenantRepository, site);
if (endDate < beginDate) if (endDate < beginDate)
{
throw new UserFriendlyException("beginDate can not after endDate");
}
}
catch (Exception ex)
{ {
throw new AbpValidationException("beginDate can not after endDate"); throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var entities = await _x12AsnRepository.GetListAsync(p => p.Site == site && p.EffectiveDate >= beginDate && p.EffectiveDate <= endDate); var entities = await _x12AsnRepository.GetListAsync(p => p.Site == site && p.EffectiveDate >= beginDate && p.EffectiveDate <= endDate);
var dtos = BuildDtos(entities); var dtos = BuildDtos(entities);
@ -173,16 +203,26 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("by-uid")] [Route("by-uid")]
public async Task<ActionResult<X12AsnDTO>> GetAsync(string site, long uid) public async Task<ActionResult<X12AsnDTO>> GetAsync(string site, long uid)
{ {
Validator.CheckSite(_tenantRepository, site); X12Asn entity;
try
{
Validator.CheckSite(_tenantRepository, site);
var entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.UID == uid); entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.UID == uid);
if (entity == null) if (entity == null)
{ {
throw new AbpValidationException($"ASN of {uid} in {site} is not found"); throw new UserFriendlyException($"ASN of {uid} in {site} is not found");
}
}
catch (Exception ex)
{
throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var dto = BuildDto(entity); var dto = BuildDto(entity);
return dto; return dto;
@ -199,15 +239,26 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("by-number")] [Route("by-number")]
public async Task<ActionResult<X12AsnDTO>> GetAsync(string site, string number) public async Task<ActionResult<X12AsnDTO>> GetAsync(string site, string number)
{ {
Validator.CheckSite(_tenantRepository, site); X12Asn entity;
try
{
Validator.CheckSite(_tenantRepository, site);
var entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.BillNum == number);
if (entity == null) entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.BillNum == number);
if (entity == null)
{
throw new UserFriendlyException($"ASN of {number} in {site} is not found");
}
}
catch (Exception ex)
{ {
throw new AbpValidationException($"ASN of {number} in {site} is not found"); throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var dto = BuildDto(entity); var dto = BuildDto(entity);
return dto; return dto;
@ -232,15 +283,26 @@ namespace Win_in.Sfs.Scp.WebApi
[Route("update-status")] [Route("update-status")]
public async Task<ActionResult<X12AsnDTO>> UpdateStatusAsync(string site, string number, EnumExchangeDataStatus status) public async Task<ActionResult<X12AsnDTO>> UpdateStatusAsync(string site, string number, EnumExchangeDataStatus status)
{ {
Validator.CheckSite(_tenantRepository, site); X12Asn entity;
try
{
Validator.CheckSite(_tenantRepository, site);
var entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.BillNum == number); entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.BillNum == number);
if (entity == null) if (entity == null)
{
throw new UserFriendlyException($"ASN of {number} in {site} is not found");
}
}
catch (Exception ex)
{ {
throw new AbpValidationException($"ASN of {number} in {site} is not found"); throw new AbpValidationException(new List<ValidationResult>
{
new(ex.Message)
});
} }
var result = await _x12AsnRepository.UpdateStatusAsync(entity.Id, status); var result = await _x12AsnRepository.UpdateStatusAsync(entity.Id, status);
var dto = BuildDto(result); var dto = BuildDto(result);

Loading…
Cancel
Save