using Dapper; using Microsoft.Extensions.Configuration; using Npgsql; using Shentun.Utilities; using Shentun.WebPeis.PlugIns.ColumnReferences; using Shentun.WebPeis.ThirdInterfaces; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Shentun.WebPeis.PlugIns { public class ThirdPlugInsBase: PlugInsBase { //private Guid _thirdInterfaceId; protected ThirdInterfaceDto _thirdInterfaceDto; public ThirdPlugInsBase(Guid thirdInterfaceId):base() { using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) { string sql; sql = @" SELECT * from third_interface where id =@ThirdInterfaceId "; _thirdInterfaceDto = ( conn.Query(sql, new { ThirdInterfaceId = thirdInterfaceId })).Single(); Init(_thirdInterfaceDto.ParmValue); } } public ThirdPlugInsBase(string parmValue):base(parmValue) { } public async Task> GetColumnReferenceInterfaceCodeValuesAsync(Guid columnReferenceId, string appCodeValue) { using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) { string sql; sql = @" SELECT column_reference_interface.interface_code_value from column_reference join column_reference_code on column_reference.id = column_reference_code.column_reference_id join column_reference_interface on column_reference_code.id = column_reference_interface.column_reference_code_id where column_reference.id = @ColumnReferenceId and column_reference_code.code_value = @CodeValue "; var columnReferenceInterfaceCodeValues = (await conn.QueryAsync(sql, new { ColumnReferenceId = columnReferenceId, CodeValue =appCodeValue })).ToList(); return columnReferenceInterfaceCodeValues; } } public async Task> GetColumnReferenceCodeValuesAsync(Guid columnReferenceId, string interfaceCodeValue) { if(string.IsNullOrWhiteSpace(interfaceCodeValue)) { throw new Exception("第三方编码不能为空"); } interfaceCodeValue = interfaceCodeValue.Trim(); using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) { string sql; sql = @" SELECT column_reference_code.code_value from column_reference join column_reference_code on column_reference.id = column_reference_code.column_reference_id join column_reference_interface on column_reference_code.id = column_reference_interface.column_reference_code_id where column_reference.id = @ColumnReferenceId and column_reference_interface.interface_code_value = @InterfaceCodeValue "; var columnReferenceCodeValues = (await conn.QueryAsync(sql, new { ColumnReferenceId = columnReferenceId, InterfaceCodeValue = interfaceCodeValue })).ToList(); //if(columnReferenceCodeValues.Count == 0) //{ // throw new Exception($"{interfaceCodeValue}没有找到对照"); //} return columnReferenceCodeValues; } } } }