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.
|
|
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{
/// <summary>
/// 支付方式
/// </summary>
[ApiExplorerSettings(GroupName = "Work")] [Authorize] public class PayModeAppService : ApplicationService { private readonly IRepository<PayMode> _repository; private readonly PayModeManager _manager;
public PayModeAppService( IRepository<PayMode> repository, PayModeManager manager) { this._repository = repository; this._manager = manager; }
/// <summary>
/// 获取支付方式数据列表
/// </summary>
/// <returns></returns>
public async Task<List<PayModeDto>> GetListAsync() { var entlist = await _repository.GetListAsync(); entlist = entlist.OrderBy(o => o.DisplayOrder).ToList(); return ObjectMapper.Map<List<PayMode>, List<PayModeDto>>(entlist); }
/// <summary>
/// 获取支付方式数据列表 筛选是否启用状态
/// </summary>
/// <returns></returns>
[HttpGet("api/app/paymode/getlistinisactive")] public async Task<List<PayModeDto>> GetListInIsActiveAsync() { var entlist = await _repository.GetListAsync(m => m.IsActive == 'Y'); entlist = entlist.OrderBy(o => o.DisplayOrder).ToList(); return ObjectMapper.Map<List<PayMode>, List<PayModeDto>>(entlist); }
/// <summary>
/// 修改
/// </summary>
/// <param name="Id">主键ID</param>
/// <param name="input">修改参数</param>
/// <returns></returns>
public async Task<PayModeDto> UpdateAsync(string Id, UpdatePayModeDto input) { var entity = await _repository.GetAsync(m => m.Id == Id); var sourceEntity = ObjectMapper.Map<UpdatePayModeDto, PayMode>(input); _manager.UpdateAsync(sourceEntity, entity); entity = await _repository.UpdateAsync(entity); return ObjectMapper.Map<PayMode, PayModeDto>(entity); }
/// <summary>
/// 修改排序 相邻之间
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="targetid">目标ID</param>
[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<PayMode> entlist = new List<PayMode>(); entlist.Add(entity); entlist.Add(targetentity);
await _repository.UpdateManyAsync(entlist); }
/// <summary>
/// 修改排序 置顶,置底
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="SortType">修改方式:1 置顶 2 置底</param>
/// <returns></returns>
[HttpPut("api/app/paymode/updatemanysort")] public async Task UpdateManySortAsync(string id, int SortType) { var entity = await _repository.GetAsync(m => m.Id == id);
List<PayMode> UptList = new List<PayMode>();
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); }
/// <summary>
/// 修改排序 拖拽
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[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); } }}
|