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