using AutoMapper.Internal.Mappers; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Shentun.Peis.HelperDto; using Shentun.Peis.Models; using Shentun.Peis.Patients; using Shentun.Peis.PayModes; using Shentun.Utilities; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; using Volo.Abp.ObjectMapping; namespace Shentun.Peis.PayModes { /// /// 支付方式 /// [ApiExplorerSettings(GroupName = "Work")] [Authorize] public class PayModeAppService : ApplicationService { private readonly IRepository _repository; private readonly PayModeManager _manager; public PayModeAppService( IRepository repository, PayModeManager manager) { this._repository = repository; this._manager = manager; } /// /// 获取支付方式数据列表 /// /// public async Task> GetListAsync() { var entlist = await _repository.GetListAsync(); entlist = entlist.OrderBy(o => o.DisplayOrder).ToList(); return ObjectMapper.Map, List>(entlist); } /// /// 获取支付方式数据列表 筛选是否启用状态 /// /// [HttpGet("api/app/paymode/getlistinisactive")] public async Task> GetListInIsActiveAsync() { var entlist = await _repository.GetListAsync(m => m.IsActive == 'Y'); entlist = entlist.OrderBy(o => o.DisplayOrder).ToList(); return ObjectMapper.Map, List>(entlist); } /// /// 修改 /// /// 主键ID /// 修改参数 /// public async Task UpdateAsync(string Id, UpdatePayModeDto input) { var entity = await _repository.GetAsync(m => m.Id == Id); var sourceEntity = ObjectMapper.Map(input); _manager.UpdateAsync(sourceEntity, entity); entity = await _repository.UpdateAsync(entity); return ObjectMapper.Map(entity); } /// /// 修改排序 相邻之间 /// /// 需要修改的ID /// 目标ID [HttpPut("api/app/paymode/updatesort")] [RemoteService(false)] public async Task UpdateSortAsync(string id, string targetid) { var entity = await _repository.GetAsync(m => m.Id == id); var targetentity = await _repository.GetAsync(m => m.Id == targetid); int olddisplaynum = entity.DisplayOrder; entity.DisplayOrder = targetentity.DisplayOrder; targetentity.DisplayOrder = olddisplaynum; List entlist = new List(); entlist.Add(entity); entlist.Add(targetentity); await _repository.UpdateManyAsync(entlist); } /// /// 修改排序 置顶,置底 /// /// 需要修改的ID /// 修改方式:1 置顶 2 置底 /// [HttpPut("api/app/paymode/updatemanysort")] public async Task UpdateManySortAsync(string id, int SortType) { var entity = await _repository.GetAsync(m => m.Id == id); List UptList = new List(); 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(); ; 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); } /// /// 修改排序 拖拽 /// /// /// [HttpPut("api/app/paymode/updatesortmany")] public async Task UpdateSortManyAsync(UpdateSortManyNokeyDto input) { var entitylist = await _repository.GetListAsync(o => input.ItemList.Select(s => s.Id).Contains(o.Id)); foreach (var entity in entitylist) { foreach (var item in input.ItemList) { if (item.Id == entity.Id) entity.DisplayOrder = item.DisplayOrder; } } await _repository.UpdateManyAsync(entitylist); } } }