PowerMatterTypeProvider.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Winsoft.GOV.Framework.Model;
  7. using Dapper;
  8. using MySql.Data.MySqlClient;
  9. using System.Security.Cryptography;
  10. namespace Winsoft.GOV.Framework.Provider
  11. {
  12. public class PowerMatterTypeProvider : BaseProvider<PowerMattersBase>
  13. {
  14. private static PowerMatterTypeProvider instance;
  15. private static string cols = " `QL_NAME`, "
  16. + "`QL_INNER_CODE`, "
  17. + "`QL_DEP`, "
  18. + "`OUGUID`, "
  19. + "`ApplyCode` ";
  20. public void CreateTable()
  21. {
  22. string sql = "create table if not exists PowerMatterType("
  23. + "QL_NAME varchar(200),"
  24. + "QL_INNER_CODE varchar(50),"
  25. + "QL_DEP varchar(50),"
  26. + "OUGUID varchar(50),"
  27. + "ApplyCode int"
  28. + "); "
  29. + "call add_index('PowerMatterType', 'index1', 'index1(QL_INNER_CODE, OUGUID)'); "
  30. + "call add_index('PowerMatterType', 'index2', 'index2(OUGUID)'); "
  31. + "call add_index('PowerMatterType', 'index3', 'index3(OUGUID, ApplyCode)'); "
  32. + "call add_index('PowerMatterType', 'index4', 'index4(ApplyCode)'); ";///ApplyCode///
  33. using (var con = GetDbConnection())
  34. {
  35. con.Execute(sql);
  36. }
  37. }
  38. public PowerMatterTypeProvider() : base("gov")
  39. {
  40. }
  41. public static PowerMatterTypeProvider Instance
  42. {
  43. get
  44. {
  45. CreateInstance(ref instance);
  46. return instance;
  47. }
  48. }
  49. public PowerMattersBase FindById(string ql_inner_code)
  50. {
  51. string sql = "select * from PowerMatterType where QL_INNER_CODE=@ql_inner_code; ";
  52. using (var con = GetDbConnection())
  53. {
  54. return con.QueryFirstOrDefault<PowerMattersBase>(sql, new { ql_inner_code = ql_inner_code });
  55. }
  56. }
  57. public void Insert(IEnumerable<PowerMattersBase> list, ref IList<PowerMattersBase> failslist)
  58. {
  59. if (failslist == null)
  60. failslist = new List<PowerMattersBase>();
  61. string sql = "delete from PowerMatterType where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID; "
  62. + "insert PowerMatterType(" + cols + ")" + "values(@QL_NAME, @QL_INNER_CODE, @QL_DEP, @OUGUID, @ApplyCode);";
  63. using (var con = GetDbConnection())
  64. {
  65. foreach(PowerMattersBase p in list)
  66. {
  67. PowerMattersBase p2 = OnceRunPowerMattersProvider.Instance.FindByQLNameAndOUORGCODE(p.QL_NAME, p.OUGUID);
  68. if (p2 != null)
  69. {
  70. p.QL_INNER_CODE = p2.QL_INNER_CODE;
  71. }
  72. else
  73. {
  74. byte[] result = Encoding.Default.GetBytes(p.QL_NAME.Trim()); //tbPass为输入密码的文本框
  75. MD5 md5 = new MD5CryptoServiceProvider();
  76. byte[] output = md5.ComputeHash(result);
  77. p.QL_INNER_CODE = BitConverter.ToString(output);
  78. OnceRunPowerMattersProvider.Instance.Insert(p);
  79. }
  80. con.Execute(sql, p);
  81. }
  82. }
  83. }
  84. }
  85. }