ZsElectricConfig.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.zsElectric.boot.sdk;
  2. /**
  3. * 众水电力SDK配置类
  4. *
  5. * @author wzq
  6. */
  7. public class ZsElectricConfig {
  8. /**
  9. * 服务端地址 (例: https://api.example.com)
  10. */
  11. private String baseUrl;
  12. /**
  13. * 运营商ID (9位,由数字及大小写字符组成)
  14. */
  15. private String operatorId;
  16. /**
  17. * 运营商密钥
  18. */
  19. private String operatorSecret;
  20. /**
  21. * 数据加密密钥 (16位)
  22. */
  23. private String dataSecret;
  24. /**
  25. * 数据加密IV (16位)
  26. */
  27. private String dataSecretIV;
  28. /**
  29. * 签名密钥
  30. */
  31. private String sigSecret;
  32. /**
  33. * 连接超时时间(毫秒),默认10秒
  34. */
  35. private int connectTimeout = 10000;
  36. /**
  37. * 读取超时时间(毫秒),默认30秒
  38. */
  39. private int readTimeout = 30000;
  40. private ZsElectricConfig() {
  41. }
  42. public static Builder builder() {
  43. return new Builder();
  44. }
  45. public static class Builder {
  46. private final ZsElectricConfig config = new ZsElectricConfig();
  47. public Builder baseUrl(String baseUrl) {
  48. config.baseUrl = baseUrl.endsWith("/") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
  49. return this;
  50. }
  51. public Builder operatorId(String operatorId) {
  52. config.operatorId = operatorId;
  53. return this;
  54. }
  55. public Builder operatorSecret(String operatorSecret) {
  56. config.operatorSecret = operatorSecret;
  57. return this;
  58. }
  59. public Builder dataSecret(String dataSecret) {
  60. config.dataSecret = dataSecret;
  61. return this;
  62. }
  63. public Builder dataSecretIV(String dataSecretIV) {
  64. config.dataSecretIV = dataSecretIV;
  65. return this;
  66. }
  67. public Builder sigSecret(String sigSecret) {
  68. config.sigSecret = sigSecret;
  69. return this;
  70. }
  71. public Builder connectTimeout(int connectTimeout) {
  72. config.connectTimeout = connectTimeout;
  73. return this;
  74. }
  75. public Builder readTimeout(int readTimeout) {
  76. config.readTimeout = readTimeout;
  77. return this;
  78. }
  79. public ZsElectricConfig build() {
  80. // 参数校验
  81. if (config.baseUrl == null || config.baseUrl.isEmpty()) {
  82. throw new IllegalArgumentException("baseUrl不能为空");
  83. }
  84. if (config.operatorId == null || config.operatorId.isEmpty()) {
  85. throw new IllegalArgumentException("operatorId不能为空");
  86. }
  87. if (config.operatorSecret == null || config.operatorSecret.isEmpty()) {
  88. throw new IllegalArgumentException("operatorSecret不能为空");
  89. }
  90. if (config.dataSecret == null || config.dataSecret.length() != 16) {
  91. throw new IllegalArgumentException("dataSecret必须为16位");
  92. }
  93. if (config.dataSecretIV == null || config.dataSecretIV.length() != 16) {
  94. throw new IllegalArgumentException("dataSecretIV必须为16位");
  95. }
  96. if (config.sigSecret == null || config.sigSecret.isEmpty()) {
  97. throw new IllegalArgumentException("sigSecret不能为空");
  98. }
  99. return config;
  100. }
  101. }
  102. // Getters
  103. public String getBaseUrl() {
  104. return baseUrl;
  105. }
  106. public String getOperatorId() {
  107. return operatorId;
  108. }
  109. public String getOperatorSecret() {
  110. return operatorSecret;
  111. }
  112. public String getDataSecret() {
  113. return dataSecret;
  114. }
  115. public String getDataSecretIV() {
  116. return dataSecretIV;
  117. }
  118. public String getSigSecret() {
  119. return sigSecret;
  120. }
  121. public int getConnectTimeout() {
  122. return connectTimeout;
  123. }
  124. public int getReadTimeout() {
  125. return readTimeout;
  126. }
  127. }