using System.ComponentModel.DataAnnotations; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared.Dtos; using InterfaceForward.Domain.Shared.Enum; using InterfaceForward.Repositories; using InterfaceForward.Repositories.Parameter.Entities; using Microsoft.AspNetCore.Mvc; namespace InterfaceForward.Application.Services.Parameter; /// /// 表单参数配置 /// [ApiExplorerSettings(GroupName = "参数服务")] public class FormParameterService : ApplicationService { private readonly IBasicRepository _formParameterRepository; public FormParameterService(IBasicRepository formParameterRepository) { _formParameterRepository = formParameterRepository; } /// /// 获取参数列表 /// /// 接口id /// [HttpGet("FormParameter/GetParameterList")] public async Task> GetParameterListAsync([Required] int interfaceId) { var formList = await _formParameterRepository.GetListAsync(x => x.InterfaceId == interfaceId); return ObjectMapper.Map, List>(formList); } /// /// 创建表单参数 /// /// /// 接口id internal async Task CreateParametersAsync(List list, int interfaceId) { var formEntities = ObjectMapper.Map, List>(list); formEntities.ForEach(x => x.InterfaceId = interfaceId); await _formParameterRepository.InsertRangeAsync(formEntities); } /// /// 维护表单参数 增、删、改 /// /// /// 接口id internal async Task MaintainParametersAsync(List list, int interfaceId) { if (list.Count == 0) return; using var ts = TransacationHelper.GetReadCommitted(); // 删除 var delIds = list.Where(x => x.OptionType == OptionType.删除) .Select(x => x.Id); await _formParameterRepository.SoftDeleteAsync(x => delIds.Contains(x.Id)); // 更新 var updEntities = ObjectMapper.Map, List>(list .Where(x => x.OptionType == OptionType.修改).ToList()); await _formParameterRepository.UpdateRangeAsync(updEntities, x => new { x.Name, x.Value, x.Description }); // 创建 await CreateParametersAsync(list.Where(x => x.OptionType == OptionType.新增).ToList() , interfaceId); ts.Complete(); } }