48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			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);
 | 
						|
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |