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
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);
|
|
}
|
|
|
|
}
|
|
}
|