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

1 year ago
  1. using Dapper;
  2. using Microsoft.Extensions.Configuration;
  3. using Npgsql;
  4. using Shentun.Utilities;
  5. using Shentun.WebPeis.PlugIns.ColumnReferences;
  6. using Shentun.WebPeis.ThirdInterfaces;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Data.Common;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace Shentun.WebPeis.PlugIns
  14. {
  15. public class ThirdPlugInsBase: PlugInsBase
  16. {
  17. //private Guid _thirdInterfaceId;
  18. protected ThirdInterfaceDto _thirdInterfaceDto;
  19. public ThirdPlugInsBase(Guid thirdInterfaceId):base()
  20. {
  21. using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
  22. {
  23. string sql;
  24. sql = @"
  25. SELECT *
  26. from third_interface
  27. where id =@ThirdInterfaceId
  28. ";
  29. _thirdInterfaceDto = ( conn.Query<ThirdInterfaceDto>(sql,
  30. new { ThirdInterfaceId = thirdInterfaceId })).Single();
  31. Init(_thirdInterfaceDto.ParmValue);
  32. }
  33. }
  34. public ThirdPlugInsBase(string parmValue):base(parmValue)
  35. {
  36. }
  37. public async Task<List<ColumnReferenceInterfaceCodeValue>> GetColumnReferenceInterfaceCodeValuesAsync(Guid columnReferenceId,
  38. string appCodeValue)
  39. {
  40. using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
  41. {
  42. string sql;
  43. sql = @"
  44. SELECT
  45. column_reference_interface.interface_code_value
  46. from column_reference
  47. join column_reference_code on column_reference.id = column_reference_code.column_reference_id
  48. join column_reference_interface on column_reference_code.id = column_reference_interface.column_reference_code_id
  49. where column_reference.id = @ColumnReferenceId and
  50. column_reference_code.code_value = @CodeValue
  51. ";
  52. var columnReferenceInterfaceCodeValues = (await conn.QueryAsync<ColumnReferenceInterfaceCodeValue>(sql,
  53. new { ColumnReferenceId = columnReferenceId, CodeValue =appCodeValue })).ToList();
  54. return columnReferenceInterfaceCodeValues;
  55. }
  56. }
  57. public async Task<List<ColumnReferenceCodeValue>> GetColumnReferenceCodeValuesAsync(Guid columnReferenceId,
  58. string interfaceCodeValue)
  59. {
  60. if(string.IsNullOrWhiteSpace(interfaceCodeValue))
  61. {
  62. throw new Exception("第三方编码不能为空");
  63. }
  64. interfaceCodeValue = interfaceCodeValue.Trim();
  65. using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
  66. {
  67. string sql;
  68. sql = @"
  69. SELECT
  70. column_reference_code.code_value
  71. from column_reference
  72. join column_reference_code on column_reference.id = column_reference_code.column_reference_id
  73. join column_reference_interface on column_reference_code.id = column_reference_interface.column_reference_code_id
  74. where column_reference.id = @ColumnReferenceId and
  75. column_reference_interface.interface_code_value = @InterfaceCodeValue
  76. ";
  77. var columnReferenceCodeValues = (await conn.QueryAsync<ColumnReferenceCodeValue>(sql,
  78. new { ColumnReferenceId = columnReferenceId, InterfaceCodeValue = interfaceCodeValue })).ToList();
  79. //if(columnReferenceCodeValues.Count == 0)
  80. //{
  81. // throw new Exception($"{interfaceCodeValue}没有找到对照");
  82. //}
  83. return columnReferenceCodeValues;
  84. }
  85. }
  86. }
  87. }