15 changed files with 1005 additions and 8 deletions
			
			
		- 
					55src/Shentun.WebPeis.Application.Contracts/AppointScheduleTemplates/AppointScheduleTemplateDto.cs
 - 
					14src/Shentun.WebPeis.Application.Contracts/AppointScheduleTemplates/AppointScheduleTemplateIdInputDto.cs
 - 
					50src/Shentun.WebPeis.Application.Contracts/AppointScheduleTemplates/CreateAppointScheduleTemplateDto.cs
 - 
					55src/Shentun.WebPeis.Application.Contracts/AppointScheduleTemplates/UpdateAppointScheduleTemplateDto.cs
 - 
					20src/Shentun.WebPeis.Application.Contracts/AuditedEntityDtoName.cs
 - 
					19src/Shentun.WebPeis.Application.Contracts/UpdateManySortInputDto.cs
 - 
					20src/Shentun.WebPeis.Application.Contracts/Users/UpdatePassWordDto.cs
 - 
					107src/Shentun.WebPeis.Application/AppointScheduleTemplates/AppointScheduleTemplateAppService.cs
 - 
					41src/Shentun.WebPeis.Application/Users/UserAppService.cs
 - 
					131src/Shentun.WebPeis.Domain/AppointScheduleTemplates/AppointScheduleTemplateManager.cs
 - 
					345src/Shentun.WebPeis.Domain/DataHelper.cs
 - 
					117src/Shentun.WebPeis.Domain/EntityHelper.cs
 - 
					13src/Shentun.WebPeis.Domain/IDisplayOrder.cs
 - 
					7src/Shentun.WebPeis.Domain/Models/AppointScheduleTemplate.cs
 - 
					19src/Shentun.WebPeis.Domain/UpdateSortManyDto.cs
 
@ -0,0 +1,55 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    public class AppointScheduleTemplateDto : AuditedEntityDtoName | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 主键
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public Guid AppointScheduleTemplateId { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 星期
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int WeekId { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int AmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int PmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 个人体检数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public int SingleNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStopTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStopTime { get; set; } | 
				
			|||
 | 
				
			|||
        public int DisplayOrder { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    public class AppointScheduleTemplateIdInputDto | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 主键
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public Guid AppointScheduleTemplateId { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,50 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    public class CreateAppointScheduleTemplateDto | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 星期
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int WeekId { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int AmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int PmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 个人体检数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public int SingleNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStopTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStopTime { get; set; } | 
				
			|||
  | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,55 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    public class UpdateAppointScheduleTemplateDto | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 主键
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public Guid AppointScheduleTemplateId { get; set; } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 星期
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int WeekId { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int AmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public int PmNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 个人体检数量限制
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public int SingleNumberLimit { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 上午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? AmStopTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午上班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStartTime { get; set; } | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 下午下班时间
 | 
				
			|||
        /// </summary>
 | 
				
			|||
 | 
				
			|||
        public string? PmStopTime { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
using Volo.Abp.Application.Dtos; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public class AuditedEntityDtoName: AuditedEntityDto | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 创建者
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public string CreatorName { get; set; } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 最后修改者
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public string LastModifierName { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,19 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public class UpdateManySortInputDto | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 需要修改的ID
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public Guid Id { get; set; } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 修改方式:1 置顶   2 置底
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public int SortType { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Text; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.Users | 
				
			|||
{ | 
				
			|||
    public class UpdatePassWordDto | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 旧密码
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public string OldPassWord { get; set; } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 新密码
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        public string NewPassWord { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,107 @@ | 
				
			|||
using Microsoft.AspNetCore.Authorization; | 
				
			|||
using Microsoft.AspNetCore.Mvc; | 
				
			|||
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; | 
				
			|||
using Shentun.WebPeis.Models; | 
				
			|||
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.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    /// <summary>
 | 
				
			|||
    /// 预约计划模板
 | 
				
			|||
    /// </summary>
 | 
				
			|||
    [Authorize] | 
				
			|||
    [ApiExplorerSettings(GroupName = "Work")] | 
				
			|||
    public class AppointScheduleTemplateAppService : ApplicationService | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        private readonly IRepository<AppointScheduleTemplate> _appointScheduleTemplateRepository; | 
				
			|||
        private readonly AppointScheduleTemplateManager _appointScheduleTemplateManager; | 
				
			|||
        private readonly CacheService _cacheService; | 
				
			|||
        public AppointScheduleTemplateAppService( | 
				
			|||
            IRepository<AppointScheduleTemplate> appointScheduleTemplateRepository, | 
				
			|||
            AppointScheduleTemplateManager appointScheduleTemplateManager, | 
				
			|||
            CacheService cacheService) | 
				
			|||
        { | 
				
			|||
            _appointScheduleTemplateRepository = appointScheduleTemplateRepository; | 
				
			|||
            _appointScheduleTemplateManager = appointScheduleTemplateManager; | 
				
			|||
            _cacheService = cacheService; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 创建
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="input"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        [HttpPost("api/app/AppointScheduleTemplate/Create")] | 
				
			|||
        public async Task<AppointScheduleTemplateDto> CreateAsync(CreateAppointScheduleTemplateDto input) | 
				
			|||
        { | 
				
			|||
            var createEntity = ObjectMapper.Map<CreateAppointScheduleTemplateDto, AppointScheduleTemplate>(input); | 
				
			|||
            var entity = await _appointScheduleTemplateManager.CreateAsync(createEntity); | 
				
			|||
            entity = await _appointScheduleTemplateRepository.InsertAsync(entity); | 
				
			|||
            var dto = ObjectMapper.Map<AppointScheduleTemplate, AppointScheduleTemplateDto>(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/AppointScheduleTemplate/Update")] | 
				
			|||
        public async Task<AppointScheduleTemplateDto> UpdateAsync(UpdateAppointScheduleTemplateDto input) | 
				
			|||
        { | 
				
			|||
            var entity = await _appointScheduleTemplateRepository.GetAsync(g => g.AppointScheduleTemplateId == input.AppointScheduleTemplateId); | 
				
			|||
            var sourceEntity = ObjectMapper.Map<UpdateAppointScheduleTemplateDto, AppointScheduleTemplate>(input); | 
				
			|||
            await _appointScheduleTemplateManager.UpdateAsync(sourceEntity, entity); | 
				
			|||
            entity = await _appointScheduleTemplateRepository.UpdateAsync(entity); | 
				
			|||
            var dto = ObjectMapper.Map<AppointScheduleTemplate, AppointScheduleTemplateDto>(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/AppointScheduleTemplate/Delete")] | 
				
			|||
        public async Task DeleteAsync(AppointScheduleTemplateIdInputDto input) | 
				
			|||
        { | 
				
			|||
            await _appointScheduleTemplateManager.CheckAndDeleteAsync(input.AppointScheduleTemplateId); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 修改排序  置顶,置底
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="input"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        [HttpPost("api/app/AppointScheduleTemplate/UpdateManySort")] | 
				
			|||
        public async Task UpdateManySortAsync(UpdateManySortInputDto input) | 
				
			|||
        { | 
				
			|||
            await _appointScheduleTemplateManager.UpdateManySortAsync(input.Id, input.SortType); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        ///  修改排序  拖拽
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="input"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        [HttpPost("api/app/AppointScheduleTemplate/UpdateSortMany")] | 
				
			|||
        public async Task UpdateSortManyAsync(UpdateSortManyDto input) | 
				
			|||
        { | 
				
			|||
            await _appointScheduleTemplateManager.UpdateSortManyAsync(input); | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,131 @@ | 
				
			|||
using Microsoft.Extensions.Configuration.UserSecrets; | 
				
			|||
using NPOI.SS.Formula.Functions; | 
				
			|||
using Shentun.Utilities; | 
				
			|||
using Shentun.WebPeis.Models; | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Text; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
using Volo.Abp.Domain.Entities; | 
				
			|||
using Volo.Abp; | 
				
			|||
using Volo.Abp.Domain.Repositories; | 
				
			|||
using NPOI.POIFS.FileSystem; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis.AppointScheduleTemplates | 
				
			|||
{ | 
				
			|||
    public class AppointScheduleTemplateManager | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        private readonly IRepository<AppointScheduleTemplate> _appointScheduleTemplateRepository; | 
				
			|||
 | 
				
			|||
        public AppointScheduleTemplateManager( | 
				
			|||
            IRepository<AppointScheduleTemplate> appointScheduleTemplateRepository | 
				
			|||
            ) | 
				
			|||
        { | 
				
			|||
            _appointScheduleTemplateRepository = appointScheduleTemplateRepository; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 创建
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="entity"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public async Task<AppointScheduleTemplate> CreateAsync( | 
				
			|||
          AppointScheduleTemplate entity | 
				
			|||
         ) | 
				
			|||
        { | 
				
			|||
            DataHelper.CheckEntityIsNull(entity); | 
				
			|||
 | 
				
			|||
            var isWeekId = await _appointScheduleTemplateRepository.FirstOrDefaultAsync(f => f.WeekId == entity.WeekId); | 
				
			|||
            if (isWeekId != null) | 
				
			|||
                throw new UserFriendlyException($"WeekId数据已存在,不能重复"); | 
				
			|||
            return new AppointScheduleTemplate | 
				
			|||
            { | 
				
			|||
                AppointScheduleTemplateId = entity.AppointScheduleTemplateId, | 
				
			|||
                DisplayOrder = await EntityHelper.CreateMaxDisplayOrder<AppointScheduleTemplate>(_appointScheduleTemplateRepository), | 
				
			|||
                AmNumberLimit = entity.AmNumberLimit, | 
				
			|||
                AmStartTime = entity.AmStartTime, | 
				
			|||
                AmStopTime = entity.AmStopTime, | 
				
			|||
                PmNumberLimit = entity.PmNumberLimit, | 
				
			|||
                PmStartTime = entity.PmStartTime, | 
				
			|||
                PmStopTime = entity.PmStopTime, | 
				
			|||
                SingleNumberLimit = entity.SingleNumberLimit, | 
				
			|||
                WeekId = entity.WeekId | 
				
			|||
            }; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 更新
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="sourceEntity"></param>
 | 
				
			|||
        /// <param name="targetEntity"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public async Task UpdateAsync( | 
				
			|||
        AppointScheduleTemplate sourceEntity, | 
				
			|||
        AppointScheduleTemplate targetEntity | 
				
			|||
          ) | 
				
			|||
        { | 
				
			|||
            DataHelper.CheckEntityIsNull(sourceEntity); | 
				
			|||
            DataHelper.CheckEntityIsNull(targetEntity); | 
				
			|||
 | 
				
			|||
            var isWeekId = await _appointScheduleTemplateRepository.FirstOrDefaultAsync(f => f.WeekId == sourceEntity.WeekId | 
				
			|||
            && f.AppointScheduleTemplateId != targetEntity.AppointScheduleTemplateId); | 
				
			|||
            if (isWeekId != null) | 
				
			|||
                throw new UserFriendlyException($"WeekId数据已存在,不能重复"); | 
				
			|||
 | 
				
			|||
            targetEntity.AmNumberLimit = sourceEntity.AmNumberLimit; | 
				
			|||
            targetEntity.AmStartTime = sourceEntity.AmStartTime; | 
				
			|||
            targetEntity.AmStopTime = sourceEntity.AmStopTime; | 
				
			|||
            targetEntity.PmNumberLimit = sourceEntity.PmNumberLimit; | 
				
			|||
            targetEntity.PmStartTime = sourceEntity.PmStartTime; | 
				
			|||
            targetEntity.PmStopTime = sourceEntity.PmStopTime; | 
				
			|||
            targetEntity.SingleNumberLimit = sourceEntity.SingleNumberLimit; | 
				
			|||
            targetEntity.WeekId = sourceEntity.WeekId; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 删除
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="id"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        /// <exception cref="UserFriendlyException"></exception>
 | 
				
			|||
        public async Task CheckAndDeleteAsync(Guid appointScheduleTemplateId) | 
				
			|||
        { | 
				
			|||
            await _appointScheduleTemplateRepository.DeleteAsync(d => d.AppointScheduleTemplateId == appointScheduleTemplateId); | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 修改排序  置顶,置底
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="id">需要修改的ID</param>
 | 
				
			|||
        /// <param name="SortType">修改方式:1 置顶   2 置底</param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public async Task UpdateManySortAsync(Guid appointScheduleTemplateId, int SortType) | 
				
			|||
        { | 
				
			|||
            var entity = await _appointScheduleTemplateRepository.GetAsync(f => f.AppointScheduleTemplateId == appointScheduleTemplateId); | 
				
			|||
            await EntityHelper.UpdateManySortAsync(_appointScheduleTemplateRepository, entity, SortType); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 修改排序  拖拽
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <typeparam name="TEntity"></typeparam>
 | 
				
			|||
        /// <param name="repository"></param>
 | 
				
			|||
        /// <param name="input"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public async Task UpdateSortManyAsync(UpdateSortManyDto input) | 
				
			|||
        { | 
				
			|||
 | 
				
			|||
            var entitylist = await _appointScheduleTemplateRepository.GetListAsync(o => input.ItemList.Select(s => s.Id).Contains(o.AppointScheduleTemplateId)); | 
				
			|||
 | 
				
			|||
            await EntityHelper.UpdateSortManyAsync(_appointScheduleTemplateRepository, entitylist, input); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,345 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Text; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
using Volo.Abp; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public class DataHelper | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 统一转换日期为字符串格式
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="dateTime"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public static string ConversionDateToString(DateTime? dateTime) | 
				
			|||
        { | 
				
			|||
            if (dateTime == null) | 
				
			|||
            { | 
				
			|||
                return ""; | 
				
			|||
            } | 
				
			|||
            else | 
				
			|||
            { | 
				
			|||
                return dateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 转换 只保留年月日
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="dateTime"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public static string ConversionDateShortToString(DateTime? dateTime) | 
				
			|||
        { | 
				
			|||
            if (dateTime == null) | 
				
			|||
            { | 
				
			|||
                return ""; | 
				
			|||
            } | 
				
			|||
            else | 
				
			|||
            { | 
				
			|||
                return dateTime.Value.ToString("yyyy-MM-dd"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary> 
 | 
				
			|||
        /// 转换人民币大小金额 
 | 
				
			|||
        /// </summary> 
 | 
				
			|||
        /// <param name="num">金额</param> 
 | 
				
			|||
        /// <returns>返回大写形式</returns> 
 | 
				
			|||
        public static string CmycurD(decimal num) | 
				
			|||
        { | 
				
			|||
            string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字 
 | 
				
			|||
            string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 
 | 
				
			|||
            string str3 = "";    //从原num值中取出的值 
 | 
				
			|||
            string str4 = "";    //数字的字符串形式 
 | 
				
			|||
            string str5 = "";  //人民币大写金额形式 
 | 
				
			|||
            int i;    //循环变量 
 | 
				
			|||
            int j;    //num的值乘以100的字符串长度 
 | 
				
			|||
            string ch1 = "";    //数字的汉语读法 
 | 
				
			|||
            string ch2 = "";    //数字位的汉字读法 
 | 
				
			|||
            int nzero = 0;  //用来计算连续的零值是几个 
 | 
				
			|||
            int temp;            //从原num值中取出的值 
 | 
				
			|||
 | 
				
			|||
            num = Math.Round(Math.Abs(num), 2);    //将num取绝对值并四舍五入取2位小数 
 | 
				
			|||
            str4 = ((long)(num * 100)).ToString();        //将num乘100并转换成字符串形式 
 | 
				
			|||
            j = str4.Length;      //找出最高位 
 | 
				
			|||
            if (j > 15) { return "溢出"; } | 
				
			|||
            str2 = str2.Substring(15 - j);   //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 
 | 
				
			|||
 | 
				
			|||
            //循环取出每一位需要转换的值 
 | 
				
			|||
            for (i = 0; i < j; i++) | 
				
			|||
            { | 
				
			|||
                str3 = str4.Substring(i, 1);          //取出需转换的某一位的值 
 | 
				
			|||
                temp = Convert.ToInt32(str3);      //转换为数字 
 | 
				
			|||
                if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) | 
				
			|||
                { | 
				
			|||
                    //当所取位数不为元、万、亿、万亿上的数字时 
 | 
				
			|||
                    if (str3 == "0") | 
				
			|||
                    { | 
				
			|||
                        ch1 = ""; | 
				
			|||
                        ch2 = ""; | 
				
			|||
                        nzero = nzero + 1; | 
				
			|||
                    } | 
				
			|||
                    else | 
				
			|||
                    { | 
				
			|||
                        if (str3 != "0" && nzero != 0) | 
				
			|||
                        { | 
				
			|||
                            ch1 = "零" + str1.Substring(temp * 1, 1); | 
				
			|||
                            ch2 = str2.Substring(i, 1); | 
				
			|||
                            nzero = 0; | 
				
			|||
                        } | 
				
			|||
                        else | 
				
			|||
                        { | 
				
			|||
                            ch1 = str1.Substring(temp * 1, 1); | 
				
			|||
                            ch2 = str2.Substring(i, 1); | 
				
			|||
                            nzero = 0; | 
				
			|||
                        } | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
                else | 
				
			|||
                { | 
				
			|||
                    //该位是万亿,亿,万,元位等关键位 
 | 
				
			|||
                    if (str3 != "0" && nzero != 0) | 
				
			|||
                    { | 
				
			|||
                        ch1 = "零" + str1.Substring(temp * 1, 1); | 
				
			|||
                        ch2 = str2.Substring(i, 1); | 
				
			|||
                        nzero = 0; | 
				
			|||
                    } | 
				
			|||
                    else | 
				
			|||
                    { | 
				
			|||
                        if (str3 != "0" && nzero == 0) | 
				
			|||
                        { | 
				
			|||
                            ch1 = str1.Substring(temp * 1, 1); | 
				
			|||
                            ch2 = str2.Substring(i, 1); | 
				
			|||
                            nzero = 0; | 
				
			|||
                        } | 
				
			|||
                        else | 
				
			|||
                        { | 
				
			|||
                            if (str3 == "0" && nzero >= 3) | 
				
			|||
                            { | 
				
			|||
                                ch1 = ""; | 
				
			|||
                                ch2 = ""; | 
				
			|||
                                nzero = nzero + 1; | 
				
			|||
                            } | 
				
			|||
                            else | 
				
			|||
                            { | 
				
			|||
                                if (j >= 11) | 
				
			|||
                                { | 
				
			|||
                                    ch1 = ""; | 
				
			|||
                                    nzero = nzero + 1; | 
				
			|||
                                } | 
				
			|||
                                else | 
				
			|||
                                { | 
				
			|||
                                    ch1 = ""; | 
				
			|||
                                    ch2 = str2.Substring(i, 1); | 
				
			|||
                                    nzero = nzero + 1; | 
				
			|||
                                } | 
				
			|||
                            } | 
				
			|||
                        } | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
                if (i == (j - 11) || i == (j - 3)) | 
				
			|||
                { | 
				
			|||
                    //如果该位是亿位或元位,则必须写上 
 | 
				
			|||
                    ch2 = str2.Substring(i, 1); | 
				
			|||
                } | 
				
			|||
                str5 = str5 + ch1 + ch2; | 
				
			|||
 | 
				
			|||
                if (i == j - 1 && str3 == "0") | 
				
			|||
                { | 
				
			|||
                    //最后一位(分)为0时,加上“整” 
 | 
				
			|||
                    str5 = str5 + '整'; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
            if (num == 0) | 
				
			|||
            { | 
				
			|||
                str5 = "零元整"; | 
				
			|||
            } | 
				
			|||
            return str5; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        #region 数据检查
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 数据检查 对象
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的对象</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckEntityIsNull(object value, string parameterName = "对象", string ExceptionMessage = "不能为空") | 
				
			|||
        { | 
				
			|||
            if (value == null) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 数据检查 字符串
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckStringIsNull(string value, string parameterName, string ExceptionMessage = "不能为空") | 
				
			|||
        { | 
				
			|||
            if (string.IsNullOrWhiteSpace(value)) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        #region 验证char类型参数
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证char类型参数是否为null
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckCharIsNull(char? value, string parameterName, string ExceptionMessage = "不能为空") | 
				
			|||
        { | 
				
			|||
            if (value == null) | 
				
			|||
            { | 
				
			|||
                throw new ArgumentException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证char类型参数是否为0
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckCharIsZero(char value, string parameterName, string ExceptionMessage = "不能为0") | 
				
			|||
        { | 
				
			|||
            if (value == '0') | 
				
			|||
            { | 
				
			|||
                throw new ArgumentException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证char类型参数是否为Y、N
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckCharIsYOrN(char value, string parameterName) | 
				
			|||
        { | 
				
			|||
            if (value != 'Y' && value != 'N') | 
				
			|||
            { | 
				
			|||
                throw new ArgumentException($"{parameterName}参数为:{value},是无效值,只能为Y跟N"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
        #endregion
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证Int类型数据是否>0
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckIntIsGeaterThanZero(int value, string parameterName, string ExceptionMessage = "只能为大于0的值") | 
				
			|||
        { | 
				
			|||
            if (value <= 0) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证Guid数据是否为null
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckGuidIsNull(Guid? value, string parameterName, string ExceptionMessage = "不能为空") | 
				
			|||
        { | 
				
			|||
            if (value == null) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 验证Guid数据是否为默认值00000000-0000-0000-0000-000000000000
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckGuidIsDefaultValue(Guid value, string parameterName, string ExceptionMessage = "不能为默认值00000000-0000-0000-0000-000000000000") | 
				
			|||
        { | 
				
			|||
            if (value == Guid.Empty || value == default(Guid)) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        ///验证decimal类型数据大于0
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckDecimalIsGeaterThanZero(decimal value, string parameterName, string ExceptionMessage = "值只能大于0") | 
				
			|||
        { | 
				
			|||
            if (value <= 0) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 数据检查 decimal
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <param name="value">需要验证的值</param>
 | 
				
			|||
        /// <param name="parameterName">字段名称</param>
 | 
				
			|||
        /// <param name="ExceptionMessage">异常提示后缀</param>
 | 
				
			|||
        /// <exception cref="ArgumentException"></exception>
 | 
				
			|||
        public static void CheckDecimalIsNull(decimal? value, string parameterName, string ExceptionMessage = "不能为空") | 
				
			|||
        { | 
				
			|||
            if (value == null) | 
				
			|||
            { | 
				
			|||
                throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        | 
				
			|||
 | 
				
			|||
        public static void CheckIdNo(string idNo) | 
				
			|||
        { | 
				
			|||
            if (string.IsNullOrWhiteSpace(idNo)) | 
				
			|||
            { | 
				
			|||
                throw new Exception("身份证号不能是空值"); | 
				
			|||
            } | 
				
			|||
            if (idNo.Length != 18) | 
				
			|||
                throw new Exception("身份证号长度必须为18位"); | 
				
			|||
 | 
				
			|||
            var birthDate = Convert.ToDateTime(idNo.Substring(6, 4) + "-" + | 
				
			|||
               idNo.Substring(10, 2) + "-" + | 
				
			|||
                            idNo.Substring(12, 2)); | 
				
			|||
            if (birthDate < new DateTime(1880, 1, 1) || birthDate > DateTime.Now.Date) | 
				
			|||
            { | 
				
			|||
                throw new Exception("身份证号中的出生日期不正确"); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        #endregion
 | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,117 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Text; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
using Volo.Abp.Domain.Entities; | 
				
			|||
using Volo.Abp.Domain.Repositories; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public class EntityHelper | 
				
			|||
    { | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 创建最大显示顺序
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <typeparam name="TEntity"></typeparam>
 | 
				
			|||
        /// <param name="repository"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public static async Task<int> CreateMaxDisplayOrder<TEntity>(IRepository<TEntity> repository) | 
				
			|||
            where TEntity : class, IEntity, IDisplayOrder | 
				
			|||
        { | 
				
			|||
            int? maxDisplayOrder = await repository.MaxAsync(o => (int?)o.DisplayOrder); | 
				
			|||
            return (maxDisplayOrder ?? 0) + 1; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        ///  修改排序  置顶,置底
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <typeparam name="TEntity"></typeparam>
 | 
				
			|||
        /// <param name="repository"></param>
 | 
				
			|||
        /// <param name="id">需要修改的ID</param>
 | 
				
			|||
        /// <param name="SortType">修改方式:1 置顶   2 置底</param>
 | 
				
			|||
        /// <param name="orderby">排序规则  0、升序    1、降序 (默认降序)</param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public static async Task UpdateManySortAsync<TEntity>(IRepository<TEntity> repository, TEntity entity, int SortType) | 
				
			|||
              where TEntity : class, IEntity, IDisplayOrder | 
				
			|||
        { | 
				
			|||
 | 
				
			|||
            List<TEntity> UptList = new List<TEntity>(); | 
				
			|||
 | 
				
			|||
            if (SortType == 2) | 
				
			|||
            { | 
				
			|||
                UptList = (await repository.GetListAsync(o => o.DisplayOrder > entity.DisplayOrder)).OrderBy(o => o.DisplayOrder).ToList(); | 
				
			|||
 | 
				
			|||
                if (UptList.Count > 0) | 
				
			|||
                { | 
				
			|||
 | 
				
			|||
                    int indexnum = entity.DisplayOrder;  //原有值
 | 
				
			|||
 | 
				
			|||
                    entity.DisplayOrder = UptList[UptList.Count - 1].DisplayOrder;  //修改当前排序值为最大  
 | 
				
			|||
 | 
				
			|||
                    //置顶操作,往上一行开始,逐渐替换
 | 
				
			|||
                    foreach (var item in UptList) | 
				
			|||
                    { | 
				
			|||
                        int dqnum = item.DisplayOrder; | 
				
			|||
                        item.DisplayOrder = indexnum; | 
				
			|||
                        indexnum = dqnum; | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
            else | 
				
			|||
            { | 
				
			|||
                UptList = (await repository.GetListAsync(o => o.DisplayOrder < entity.DisplayOrder)).OrderByDescending(o => o.DisplayOrder).ToList(); ; | 
				
			|||
 | 
				
			|||
                if (UptList.Count > 0) | 
				
			|||
                { | 
				
			|||
                    int indexnum = entity.DisplayOrder;  //原有值
 | 
				
			|||
 | 
				
			|||
                    entity.DisplayOrder = UptList[UptList.Count - 1].DisplayOrder;  //修改当前排序值为最小  
 | 
				
			|||
 | 
				
			|||
                    //置底操作,往下一行开始,逐渐替换
 | 
				
			|||
                    foreach (var item in UptList) | 
				
			|||
                    { | 
				
			|||
                        int dqnum = item.DisplayOrder; | 
				
			|||
                        item.DisplayOrder = indexnum; | 
				
			|||
                        indexnum = dqnum; | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
            UptList.Add(entity); | 
				
			|||
 | 
				
			|||
 | 
				
			|||
            await repository.UpdateManyAsync(UptList); | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        /// <summary>
 | 
				
			|||
        /// 修改排序  拖拽
 | 
				
			|||
        /// </summary>
 | 
				
			|||
        /// <typeparam name="TEntity"></typeparam>
 | 
				
			|||
        /// <param name="repository"></param>
 | 
				
			|||
        /// <param name="input"></param>
 | 
				
			|||
        /// <returns></returns>
 | 
				
			|||
        public static async Task UpdateSortManyAsync<TEntity>(IRepository<TEntity> repository, List<TEntity> entitylist, UpdateSortManyDto input) | 
				
			|||
              where TEntity : class, IEntity, IDisplayOrder | 
				
			|||
        { | 
				
			|||
 | 
				
			|||
            foreach (var entity in entitylist) | 
				
			|||
            { | 
				
			|||
                foreach (var item in input.ItemList) | 
				
			|||
                { | 
				
			|||
                    if (item.Id == Guid.Parse(entity.GetKeys().FirstOrDefault().ToString())) | 
				
			|||
                        entity.DisplayOrder = item.DisplayOrder; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
 | 
				
			|||
            await repository.UpdateManyAsync(entitylist); | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Text; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public interface IDisplayOrder | 
				
			|||
    { | 
				
			|||
        int DisplayOrder { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,19 @@ | 
				
			|||
using System; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Text; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
 | 
				
			|||
namespace Shentun.WebPeis | 
				
			|||
{ | 
				
			|||
    public class UpdateSortManyDto | 
				
			|||
    { | 
				
			|||
        public List<UpdateSortMany> ItemList { get; set; } | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    public class UpdateSortMany | 
				
			|||
    { | 
				
			|||
        public Guid Id { get; set; } | 
				
			|||
        public int DisplayOrder { get; set; } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue