8 changed files with 297 additions and 0 deletions
			
			
		- 
					20src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs
 - 
					16src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs
 - 
					113src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs
 - 
					5src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs
 - 
					96src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs
 - 
					20src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs
 - 
					18src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs
 - 
					9src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs
 
@ -0,0 +1,20 @@ | 
			
		|||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class AsbitemRecommendLevelDto : AuditedEntityDtoName | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 主键
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        public short AsbitemRecommendLevelId { get; set; } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public string AsbitemRecommendLevelName { get; set; }   | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public string SimpleCode { get; set; }   | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public int DisplayOrder { get; set; } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,16 @@ | 
			
		|||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class UpdateAsbitemRecommendLevelDto | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 主键
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        public short AsbitemRecommendLevelId { get; set; } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public string AsbitemRecommendLevelName { get; set; } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,113 @@ | 
			
		|||||
 | 
				using Microsoft.AspNetCore.Authorization; | 
			
		||||
 | 
				using Microsoft.AspNetCore.Mvc; | 
			
		||||
 | 
				using Shentun.WebPeis.Models; | 
			
		||||
 | 
				using Shentun.WebPeis.QuestionTypes; | 
			
		||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				using Volo.Abp.Application.Services; | 
			
		||||
 | 
				using Volo.Abp.Domain.Repositories; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    /// <summary>
 | 
			
		||||
 | 
				    /// 组合项目推荐级别
 | 
			
		||||
 | 
				    /// </summary>
 | 
			
		||||
 | 
				    [ApiExplorerSettings(GroupName = "Work")] | 
			
		||||
 | 
				    [Authorize] | 
			
		||||
 | 
				    public class AsbitemRecommendLevelAppService : ApplicationService | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        private readonly IRepository<AsbitemRecommendLevel> _asbitemRecommendLevelRepository; | 
			
		||||
 | 
				        private readonly AsbitemRecommendLevelManager _asbitemRecommendLevelManager; | 
			
		||||
 | 
				        private readonly CacheService _cacheService; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public AsbitemRecommendLevelAppService( | 
			
		||||
 | 
				            CacheService cacheService, | 
			
		||||
 | 
				            IRepository<AsbitemRecommendLevel> asbitemRecommendLevelRepository, | 
			
		||||
 | 
				            AsbitemRecommendLevelManager asbitemRecommendLevelManager | 
			
		||||
 | 
				            ) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            _cacheService = cacheService; | 
			
		||||
 | 
				            _asbitemRecommendLevelRepository = asbitemRecommendLevelRepository; | 
			
		||||
 | 
				            _asbitemRecommendLevelManager = asbitemRecommendLevelManager; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 获取列表
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        [HttpPost("api/app/AsbitemRecommendLevel/GetList")] | 
			
		||||
 | 
				        public async Task<List<AsbitemRecommendLevelDto>> GetListAsync() | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            var entlist = await _asbitemRecommendLevelRepository.GetQueryableAsync(); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            var entdto = entlist.Select(s => new AsbitemRecommendLevelDto | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				                CreationTime = s.CreationTime, | 
			
		||||
 | 
				                CreatorId = s.CreatorId, | 
			
		||||
 | 
				                DisplayOrder = s.DisplayOrder, | 
			
		||||
 | 
				                LastModificationTime = s.LastModificationTime, | 
			
		||||
 | 
				                LastModifierId = s.LastModifierId, | 
			
		||||
 | 
				                SimpleCode = s.SimpleCode, | 
			
		||||
 | 
				                AsbitemRecommendLevelId = s.AsbitemRecommendLevelId, | 
			
		||||
 | 
				                AsbitemRecommendLevelName = s.AsbitemRecommendLevelName, | 
			
		||||
 | 
				                CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, | 
			
		||||
 | 
				                LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result | 
			
		||||
 | 
				            }).OrderBy(o => o.DisplayOrder).ToList(); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            return entdto; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 更新
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <param name="input"></param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        [HttpPost("api/app/AsbitemRecommendLevel/Update")] | 
			
		||||
 | 
				        public async Task<AsbitemRecommendLevelDto> UpdateAsync(UpdateAsbitemRecommendLevelDto input) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            var entity = await _asbitemRecommendLevelRepository.GetAsync(f => f.AsbitemRecommendLevelId == input.AsbitemRecommendLevelId); | 
			
		||||
 | 
				            var sourceEntity = new AsbitemRecommendLevel | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				                AsbitemRecommendLevelName = input.AsbitemRecommendLevelName | 
			
		||||
 | 
				            }; | 
			
		||||
 | 
				            await _asbitemRecommendLevelManager.UpdateAsync(sourceEntity, entity); | 
			
		||||
 | 
				            entity = await _asbitemRecommendLevelRepository.UpdateAsync(entity); | 
			
		||||
 | 
				            var dto = ObjectMapper.Map<AsbitemRecommendLevel, AsbitemRecommendLevelDto>(entity); | 
			
		||||
 | 
				            dto.CreatorName = await _cacheService.GetSurnameAsync(dto.CreatorId); | 
			
		||||
 | 
				            dto.LastModifierName = await _cacheService.GetSurnameAsync(dto.LastModifierId); | 
			
		||||
 | 
				            return dto; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 修改排序  置顶,置底
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <param name="input"></param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        [HttpPost("api/app/AsbitemRecommendLevel/UpdateSortTopOrBottom")] | 
			
		||||
 | 
				        public async Task UpdateSortTopOrBottomAsync(UpdateAsbitemRecommendLevelSortTopOrBottomInputDto input) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            await _asbitemRecommendLevelManager.UpdateSortTopOrBottomAsync(input.AsbitemRecommendLevelId, input.SortType); | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        ///  修改排序  拖拽
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <param name="input"></param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        [HttpPost("api/app/AsbitemRecommendLevel/UpdateSortDragAsync")] | 
			
		||||
 | 
				        public async Task UpdateSortDragAsync(UpdateAsbitemRecommendLevelSortDragDto input) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            await _asbitemRecommendLevelManager.UpdateSortDragAsync(input); | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,96 @@ | 
			
		|||||
 | 
				using Shentun.Utilities; | 
			
		||||
 | 
				using Shentun.WebPeis.Models; | 
			
		||||
 | 
				using Shentun.WebPeis.QuestionTypes; | 
			
		||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				using Volo.Abp; | 
			
		||||
 | 
				using Volo.Abp.Domain.Repositories; | 
			
		||||
 | 
				using Volo.Abp.Domain.Services; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    public class AsbitemRecommendLevelManager : DomainService | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        private readonly IRepository<AsbitemRecommendLevel> _asbitemRecommendLevelRepository; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public AsbitemRecommendLevelManager(IRepository<AsbitemRecommendLevel> asbitemRecommendLevelRepository) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            _asbitemRecommendLevelRepository = asbitemRecommendLevelRepository; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 更新
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <param name="sourceEntity"></param>
 | 
			
		||||
 | 
				        /// <param name="targetEntity"></param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        public async Task UpdateAsync( | 
			
		||||
 | 
				           AsbitemRecommendLevel sourceEntity, | 
			
		||||
 | 
				           AsbitemRecommendLevel targetEntity | 
			
		||||
 | 
				          ) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            DataHelper.CheckEntityIsNull(sourceEntity); | 
			
		||||
 | 
				            DataHelper.CheckEntityIsNull(targetEntity); | 
			
		||||
 | 
				            DataHelper.CheckStringIsNull(sourceEntity.AsbitemRecommendLevelName, "名称"); | 
			
		||||
 | 
				            if (sourceEntity.AsbitemRecommendLevelName != targetEntity.AsbitemRecommendLevelName) | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				                var isQuestionType = await _asbitemRecommendLevelRepository.FirstOrDefaultAsync(f => f.AsbitemRecommendLevelId != sourceEntity.AsbitemRecommendLevelId | 
			
		||||
 | 
				                && f.AsbitemRecommendLevelName == sourceEntity.AsbitemRecommendLevelName); | 
			
		||||
 | 
				                if (isQuestionType != null) | 
			
		||||
 | 
				                    throw new UserFriendlyException($"组合项目推荐级别名称{sourceEntity.AsbitemRecommendLevelName}已存在"); | 
			
		||||
 | 
				                targetEntity.AsbitemRecommendLevelName = sourceEntity.AsbitemRecommendLevelName; | 
			
		||||
 | 
				                targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.AsbitemRecommendLevelName); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 修改排序  置顶,置底
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <param name="id">需要修改的ID</param>
 | 
			
		||||
 | 
				        /// <param name="SortType">修改方式:1 置顶   2 置底</param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        public async Task UpdateSortTopOrBottomAsync(short AsbitemRecommendLevelId, int SortType) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            var entity = await _asbitemRecommendLevelRepository.GetAsync(f => f.AsbitemRecommendLevelId == AsbitemRecommendLevelId); | 
			
		||||
 | 
				            await EntityHelper.UpdateSortTopOrBottomAsync(_asbitemRecommendLevelRepository, entity, SortType); | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				         | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 修改排序  拖拽
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        /// <typeparam name="TEntity"></typeparam>
 | 
			
		||||
 | 
				        /// <param name="repository"></param>
 | 
			
		||||
 | 
				        /// <param name="input"></param>
 | 
			
		||||
 | 
				        /// <returns></returns>
 | 
			
		||||
 | 
				        public async Task UpdateSortDragAsync(UpdateAsbitemRecommendLevelSortDragDto input) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            var entitylist = await _asbitemRecommendLevelRepository.GetListAsync(o => input.ItemList.Select(s => s.AsbitemRecommendLevelId).Contains(o.AsbitemRecommendLevelId)); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            foreach (var entity in entitylist) | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				                foreach (var item in input.ItemList) | 
			
		||||
 | 
				                { | 
			
		||||
 | 
				                    if (item.AsbitemRecommendLevelId == entity.AsbitemRecommendLevelId) | 
			
		||||
 | 
				                        entity.DisplayOrder = item.DisplayOrder; | 
			
		||||
 | 
				                } | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            await _asbitemRecommendLevelRepository.UpdateManyAsync(entitylist); | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,20 @@ | 
			
		|||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				   | 
			
		||||
 | 
				    public class UpdateAsbitemRecommendLevelSortDragDto | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        public List<UpdateAsbitemRecommendLevelSortDragDetail> ItemList { get; set; } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    public class UpdateAsbitemRecommendLevelSortDragDetail | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        public short AsbitemRecommendLevelId { get; set; } | 
			
		||||
 | 
				        public int DisplayOrder { get; set; } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,18 @@ | 
			
		|||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.AsbitemRecommendLevels | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class UpdateAsbitemRecommendLevelSortTopOrBottomInputDto | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        public short AsbitemRecommendLevelId { get; set; } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        /// <summary>
 | 
			
		||||
 | 
				        /// 修改方式:1 置顶   2 置底
 | 
			
		||||
 | 
				        /// </summary>
 | 
			
		||||
 | 
				        public int SortType { get; set; } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue