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

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;
}
}
}
}