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