You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

128 lines
4.8 KiB

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;
using Volo.Abp.Domain.Services;
namespace Shentun.WebPeis.AppointScheduleTemplates
{
public class AppointScheduleTemplateManager : DomainService
{
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.MedicalCenterId == entity.MedicalCenterId
&& f.WeekId == entity.WeekId && f.MedicalCenterId == entity.MedicalCenterId);
if (isWeekId != null)
throw new UserFriendlyException($"WeekId数据已存在,不能重复");
return new AppointScheduleTemplate
{
AppointScheduleTemplateId = entity.AppointScheduleTemplateId,
DisplayOrder = entity.DisplayOrder,
MedicalCenterId = entity.MedicalCenterId,
IsWork = entity.IsWork,
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.MedicalCenterId == sourceEntity.MedicalCenterId
&& f.WeekId == sourceEntity.WeekId
&& f.AppointScheduleTemplateId != targetEntity.AppointScheduleTemplateId);
if (isWeekId != null)
throw new UserFriendlyException($"WeekId数据已存在,不能重复");
targetEntity.AppointScheduleTemplateId = sourceEntity.AppointScheduleTemplateId;
targetEntity.DisplayOrder = sourceEntity.DisplayOrder;
targetEntity.MedicalCenterId = sourceEntity.MedicalCenterId;
targetEntity.IsWork = sourceEntity.IsWork;
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.UpdateSortTopOrBottomAsync(_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.UpdateSortDragAsync(_appointScheduleTemplateRepository, entitylist, input);
}
}
}