irc-netcore-api/IRaCIS.Core.Application/Service/Financial/VolumeRewardService.cs

48 lines
1.8 KiB
C#

using IRaCIS.Application.Interfaces;
using Microsoft.AspNetCore.Mvc;
using Panda.DynamicWebApi.Attributes;
namespace IRaCIS.Core.Application.Service
{
[ApiExplorerSettings(GroupName = "Financial")]
public class VolumeRewardService(IRepository<VolumeReward> _volumeRewardRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IVolumeRewardService
{
/// <summary>
/// 批量添加或更新奖励费用单价
/// </summary>
[NonDynamicMethod]
public async Task<IResponseOutput> AddOrUpdateVolumeRewardPriceList(IEnumerable<AwardPriceCommand> addOrUpdateModel)
{
await _volumeRewardRepository.BatchDeleteNoTrackingAsync(t => t.Id != Guid.Empty);
var temp = _mapper.Map<List<VolumeReward>>(addOrUpdateModel);
await _volumeRewardRepository.AddRangeAsync(temp);
var success = await _volumeRewardRepository.SaveChangesAsync();
return ResponseOutput.Result(success);
}
/// <summary>
/// 获取所有奖励单价列表-用于计算时,一次性获取所有
/// </summary>
[NonDynamicMethod]
public async Task<List<AwardPriceCalculateDTO>> GetVolumeRewardPriceList()
{
return await _volumeRewardRepository.ProjectTo<AwardPriceCalculateDTO>(_mapper.ConfigurationProvider).OrderBy(t => t.Min).ToListAsync();
}
/// <summary>
/// 分页获取奖励单价列表
/// </summary>
[HttpPost]
public async Task<PageOutput<AwardPriceDTO>> GetVolumeRewardPriceList(AwardPriceQueryDTO inQuery)
{
var awardPriceQueryable = _volumeRewardRepository.ProjectTo<AwardPriceDTO>(_mapper.ConfigurationProvider);
return await awardPriceQueryable.ToPagedListAsync(inQuery);
}
}
}