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.
92 lines
3.8 KiB
92 lines
3.8 KiB
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<ThirdInterfaceDto>(sql,
|
|
new { ThirdInterfaceId = thirdInterfaceId })).Single();
|
|
Init(_thirdInterfaceDto.ParmValue);
|
|
}
|
|
}
|
|
public ThirdPlugInsBase(string parmValue):base(parmValue)
|
|
{
|
|
|
|
}
|
|
|
|
public async Task<List<ColumnReferenceInterfaceCodeValue>> 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<ColumnReferenceInterfaceCodeValue>(sql,
|
|
new { ColumnReferenceId = columnReferenceId, CodeValue =appCodeValue })).ToList();
|
|
return columnReferenceInterfaceCodeValues;
|
|
}
|
|
}
|
|
|
|
public async Task<List<ColumnReferenceCodeValue>> 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<ColumnReferenceCodeValue>(sql,
|
|
new { ColumnReferenceId = columnReferenceId, InterfaceCodeValue = interfaceCodeValue })).ToList();
|
|
//if(columnReferenceCodeValues.Count == 0)
|
|
//{
|
|
// throw new Exception($"{interfaceCodeValue}没有找到对照");
|
|
//}
|
|
return columnReferenceCodeValues;
|
|
}
|
|
}
|
|
}
|
|
}
|