|
@@ -8,6 +8,7 @@ import (
|
8
|
8
|
"golang.org/x/text/encoding/simplifiedchinese"
|
9
|
9
|
"io/ioutil"
|
10
|
10
|
"net/http"
|
|
11
|
+ "regexp"
|
11
|
12
|
"strconv"
|
12
|
13
|
"strings"
|
13
|
14
|
"syscall"
|
|
@@ -28,8 +29,8 @@ import (
|
28
|
29
|
)
|
29
|
30
|
|
30
|
31
|
//
|
31
|
|
-//// 人员基本信息
|
32
|
|
-func FJyb1101(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, id_card_type int64, card_sn string, certificates int64, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
32
|
+// 人员基本信息
|
|
33
|
+func FJyb1101(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, id_card_type int64, card_sn string, certificates int64, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
33
|
34
|
//生成签名
|
34
|
35
|
nonce := GetRandomString(32)
|
35
|
36
|
timestamp := time.Now().Unix()
|
|
@@ -79,21 +80,15 @@ func FJyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
|
79
|
80
|
fmt.Println(string(bytesData))
|
80
|
81
|
if err != nil {
|
81
|
82
|
fmt.Println(err.Error())
|
82
|
|
- return err.Error(), ""
|
|
83
|
+ return err.Error(), "", ""
|
83
|
84
|
}
|
84
|
|
- //fmt.Println("开始jdk")
|
85
|
|
-
|
86
|
85
|
enc := mahonia.NewEncoder("gbk")
|
87
|
86
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
88
|
|
- fmt.Println("输出信息:")
|
89
|
|
- fmt.Println(output)
|
90
|
|
- fmt.Println("错误信息:")
|
91
|
|
- fmt.Println(err_msg)
|
92
|
|
- return output, inputLog
|
|
87
|
+ return output, inputLog, err_msg
|
93
|
88
|
}
|
94
|
89
|
|
95
|
90
|
// 门诊挂号
|
96
|
|
-func FJyb2201(psnNo string, insutype string, certNo string, org_name string, doctor string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, opter string, doctor_name string, url string, app_id string, app_secret string, sign_key string, enc_key string, card_number string) (string, string) {
|
|
91
|
+func FJyb2201(psnNo string, insutype string, certNo string, org_name string, doctor string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, opter string, doctor_name string, url string, app_id string, app_secret string, sign_key string, enc_key string, card_number string) (string, string, string) {
|
97
|
92
|
// 生成签名
|
98
|
93
|
nonce := GetRandomString(32)
|
99
|
94
|
timestamp := time.Now().Unix()
|
|
@@ -137,20 +132,17 @@ func FJyb2201(psnNo string, insutype string, certNo string, org_name string, doc
|
137
|
132
|
fmt.Println(string(bytesData))
|
138
|
133
|
if err != nil {
|
139
|
134
|
fmt.Println(err.Error())
|
140
|
|
- return err.Error(), ""
|
|
135
|
+ return err.Error(), "", ""
|
141
|
136
|
}
|
142
|
137
|
|
143
|
138
|
enc := mahonia.NewEncoder("gbk")
|
144
|
139
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
145
|
|
- fmt.Println("输出信息:")
|
146
|
|
- fmt.Println(output)
|
147
|
|
- fmt.Println("错误信息:")
|
148
|
|
- fmt.Println(err_msg)
|
149
|
|
- return ConvertToString(output, "gbk", "utf-8"), requestLog
|
|
140
|
+
|
|
141
|
+ return output, requestLog, err_msg
|
150
|
142
|
}
|
151
|
143
|
|
152
|
|
-// 门诊挂号撤销
|
153
|
|
-func FJyb2202(psnNo string, mdtrtId string, ipt_otp_no string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
144
|
+//门诊挂号撤销
|
|
145
|
+func FJyb2202(psnNo string, mdtrtId string, ipt_otp_no string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
154
|
146
|
// 生成签名
|
155
|
147
|
nonce := GetRandomString(32)
|
156
|
148
|
timestamp := time.Now().Unix()
|
|
@@ -176,20 +168,17 @@ func FJyb2202(psnNo string, mdtrtId string, ipt_otp_no string, org_name string,
|
176
|
168
|
requestLog = string(bytesData)
|
177
|
169
|
if err != nil {
|
178
|
170
|
fmt.Println(err.Error())
|
179
|
|
- return err.Error(), ""
|
|
171
|
+ return err.Error(), "", ""
|
180
|
172
|
}
|
181
|
173
|
|
182
|
174
|
enc := mahonia.NewEncoder("gbk")
|
183
|
175
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
184
|
|
- fmt.Println("输出信息:")
|
185
|
|
- fmt.Println(output)
|
186
|
|
- fmt.Println("错误信息:")
|
187
|
|
- fmt.Println(err_msg)
|
188
|
|
- return ConvertToString(output, "gbk", "utf-8"), requestLog
|
|
176
|
+
|
|
177
|
+ return output, requestLog, err_msg
|
189
|
178
|
}
|
190
|
179
|
|
191
|
180
|
// 门诊就诊信息上传
|
192
|
|
-func FJyb2203(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, begin_time string, doctor_name string, opter string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
181
|
+func FJyb2203(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, begin_time string, doctor_name string, opter string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
193
|
182
|
// 生成签名
|
194
|
183
|
nonce := GetRandomString(32)
|
195
|
184
|
timestamp := time.Now().Unix()
|
|
@@ -204,7 +193,7 @@ func FJyb2203(psnNo string, mdtrtId string, doctor string, department string, or
|
204
|
193
|
inputData := make(map[string]interface{})
|
205
|
194
|
diseinfo := make([]map[string]interface{}, 0)
|
206
|
195
|
|
207
|
|
- inputMessage["infno"] = "2203" // 交易编码
|
|
196
|
+ inputMessage["infno"] = "2203A" // 交易编码
|
208
|
197
|
inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
|
209
|
198
|
inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
|
210
|
199
|
//inputData["med_type"] = med_type // 医疗类别 16门诊特殊病
|
|
@@ -249,27 +238,20 @@ func FJyb2203(psnNo string, mdtrtId string, doctor string, department string, or
|
249
|
238
|
requestLog = string(bytesData)
|
250
|
239
|
if err != nil {
|
251
|
240
|
fmt.Println(err.Error())
|
252
|
|
- return err.Error(), ""
|
|
241
|
+ return err.Error(), "", ""
|
253
|
242
|
}
|
254
|
243
|
|
255
|
244
|
enc := mahonia.NewEncoder("gbk")
|
256
|
245
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
257
|
|
- fmt.Println("输出信息:")
|
258
|
|
- fmt.Println(output)
|
259
|
|
- fmt.Println("错误信息:")
|
260
|
|
- fmt.Println(err_msg)
|
261
|
|
- return output, requestLog
|
|
246
|
+
|
|
247
|
+ return output, requestLog, err_msg
|
262
|
248
|
}
|
263
|
249
|
|
264
|
250
|
// 门诊费用明细信息上传
|
265
|
|
-func FJyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescription, chrg_bchno string, org_name string, doctor string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, balance_accounts_type string, opter string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
251
|
+func FJyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescription, chrg_bchno string, org_name string, doctor string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, balance_accounts_type string, opter string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
266
|
252
|
// 生成签名
|
267
|
253
|
nonce := GetRandomString(32)
|
268
|
254
|
timestamp := time.Now().Unix()
|
269
|
|
- //tempTime := time.Unix(timestamp, 0)
|
270
|
|
- //timeFormat := tempTime.Format("20060102150405")
|
271
|
|
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
|
272
|
|
- //chrgBchno := rand.Intn(100000) + 10000
|
273
|
255
|
|
274
|
256
|
var customs []*Custom
|
275
|
257
|
|
|
@@ -427,27 +409,21 @@ func FJyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescri
|
427
|
409
|
inputMessage["input"] = input //交易输入
|
428
|
410
|
var requestLog string
|
429
|
411
|
bytesData, err := json.Marshal(inputMessage)
|
430
|
|
- fmt.Println("----------")
|
431
|
|
- fmt.Println(string(bytesData))
|
432
|
|
- fmt.Println("----------")
|
433
|
412
|
requestLog = string(bytesData)
|
434
|
413
|
if err != nil {
|
435
|
414
|
fmt.Println(err.Error())
|
436
|
|
- return "", ""
|
|
415
|
+ return "", "", ""
|
437
|
416
|
}
|
438
|
417
|
|
439
|
418
|
enc := mahonia.NewEncoder("gbk")
|
440
|
419
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
441
|
|
- fmt.Println("输出信息:")
|
442
|
|
- fmt.Println(output)
|
443
|
|
- fmt.Println("错误信息:")
|
444
|
|
- fmt.Println(err_msg)
|
445
|
|
- return output, requestLog
|
|
420
|
+
|
|
421
|
+ return output, requestLog, err_msg
|
446
|
422
|
|
447
|
423
|
}
|
448
|
424
|
|
449
|
425
|
// 门诊费用明细信息撤销
|
450
|
|
-func FJyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
426
|
+func FJyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
451
|
427
|
// 生成签名
|
452
|
428
|
nonce := GetRandomString(32)
|
453
|
429
|
timestamp := time.Now().Unix()
|
|
@@ -472,21 +448,17 @@ func FJyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, d
|
472
|
448
|
requestLog = string(bytesData)
|
473
|
449
|
if err != nil {
|
474
|
450
|
fmt.Println(err.Error())
|
475
|
|
- return err.Error(), ""
|
|
451
|
+ return err.Error(), "", ""
|
476
|
452
|
}
|
477
|
453
|
|
478
|
454
|
enc := mahonia.NewEncoder("gbk")
|
479
|
455
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
480
|
|
- fmt.Println("输出信息:")
|
481
|
|
- fmt.Println(output)
|
482
|
|
- fmt.Println("错误信息:")
|
483
|
|
- fmt.Println(err_msg)
|
484
|
|
- return output, requestLog
|
|
456
|
+
|
|
457
|
+ return output, requestLog, err_msg
|
485
|
458
|
}
|
486
|
459
|
|
487
|
460
|
// 门诊预结算
|
488
|
|
-//func Hbyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, secret_key string) string {
|
489
|
|
-func FJyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
461
|
+func FJyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
490
|
462
|
|
491
|
463
|
// 生成签名
|
492
|
464
|
nonce := GetRandomString(32)
|
|
@@ -546,20 +518,17 @@ func FJyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
546
|
518
|
fmt.Println(string(bytesData))
|
547
|
519
|
if err != nil {
|
548
|
520
|
fmt.Println(err.Error())
|
549
|
|
- return err.Error(), ""
|
|
521
|
+ return err.Error(), "", ""
|
550
|
522
|
}
|
551
|
523
|
|
552
|
524
|
enc := mahonia.NewEncoder("gbk")
|
553
|
525
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
554
|
|
- fmt.Println("输出信息:")
|
555
|
|
- fmt.Println(output)
|
556
|
|
- fmt.Println("错误信息:")
|
557
|
|
- fmt.Println(err_msg)
|
558
|
|
- return output, requestLog
|
|
526
|
+
|
|
527
|
+ return output, requestLog, err_msg
|
559
|
528
|
}
|
560
|
529
|
|
561
|
530
|
// 门诊结算
|
562
|
|
-func FJyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
531
|
+func FJyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
563
|
532
|
// 生成签名
|
564
|
533
|
nonce := GetRandomString(32)
|
565
|
534
|
timestamp := time.Now().Unix()
|
|
@@ -616,7 +585,7 @@ func FJyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
616
|
585
|
fmt.Println(string(bytesData))
|
617
|
586
|
if err != nil {
|
618
|
587
|
fmt.Println(err.Error())
|
619
|
|
- return err.Error(), ""
|
|
588
|
+ return err.Error(), "", ""
|
620
|
589
|
}
|
621
|
590
|
|
622
|
591
|
var requestLog string
|
|
@@ -624,15 +593,11 @@ func FJyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
|
624
|
593
|
|
625
|
594
|
enc := mahonia.NewEncoder("gbk")
|
626
|
595
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
627
|
|
- fmt.Println("输出信息:")
|
628
|
|
- fmt.Println(output)
|
629
|
|
- fmt.Println("错误信息:")
|
630
|
|
- fmt.Println(err_msg)
|
631
|
|
- return output, requestLog
|
|
596
|
+ return output, requestLog, err_msg
|
632
|
597
|
}
|
633
|
598
|
|
634
|
599
|
// 门诊结算撤销
|
635
|
|
-func FJyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string) {
|
|
600
|
+func FJyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
636
|
601
|
// 生成签名
|
637
|
602
|
nonce := GetRandomString(32)
|
638
|
603
|
timestamp := time.Now().Unix()
|
|
@@ -656,28 +621,21 @@ func FJyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doct
|
656
|
621
|
fmt.Println(string(bytesData))
|
657
|
622
|
if err != nil {
|
658
|
623
|
fmt.Println(err.Error())
|
659
|
|
- return err.Error(), ""
|
|
624
|
+ return err.Error(), "", ""
|
660
|
625
|
}
|
661
|
|
-
|
662
|
626
|
var requestLog string
|
663
|
627
|
requestLog = string(bytesData)
|
664
|
|
-
|
665
|
628
|
enc := mahonia.NewEncoder("gbk")
|
666
|
629
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
667
|
|
- fmt.Println("输出信息:")
|
668
|
|
- fmt.Println(output)
|
669
|
|
- fmt.Println("错误信息:")
|
670
|
|
- fmt.Println(err_msg)
|
671
|
|
- return output, requestLog
|
|
630
|
+ return output, requestLog, err_msg
|
672
|
631
|
}
|
673
|
632
|
|
674
|
|
-func FJyb5203(baseParams models.BaseParams, businessParams models.BusinessParams, url string, app_id string, app_secret string, sign_key string, enc_key string) string {
|
|
633
|
+func FJyb5203(baseParams models.BaseParams, businessParams models.BusinessParams, url string, app_id string, app_secret string, sign_key string, enc_key string) (string, string, string) {
|
675
|
634
|
// 生成签名
|
676
|
635
|
nonce := GetRandomString(32)
|
677
|
636
|
timestamp := time.Now().Unix()
|
678
|
637
|
|
679
|
638
|
// 生成输入报文
|
680
|
|
- //inputMessage := SetFjInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs,url,app_id,app_secret,sign_key,enc_key)
|
681
|
639
|
|
682
|
640
|
inputMessage := SetFjInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, url, app_id, app_secret, sign_key, enc_key)
|
683
|
641
|
input := make(map[string]interface{})
|
|
@@ -690,19 +648,18 @@ func FJyb5203(baseParams models.BaseParams, businessParams models.BusinessParams
|
690
|
648
|
input["data"] = inputData
|
691
|
649
|
inputMessage["input"] = input //交易输入
|
692
|
650
|
bytesData, err := json.Marshal(inputMessage)
|
693
|
|
- fmt.Println(string(bytesData))
|
|
651
|
+
|
694
|
652
|
if err != nil {
|
695
|
653
|
fmt.Println(err.Error())
|
696
|
|
- return err.Error()
|
|
654
|
+ return err.Error(), "", ""
|
697
|
655
|
}
|
698
|
656
|
|
|
657
|
+ var requestLog string
|
|
658
|
+ requestLog = string(bytesData)
|
|
659
|
+
|
699
|
660
|
enc := mahonia.NewEncoder("gbk")
|
700
|
661
|
output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
|
701
|
|
- fmt.Println("输出信息:")
|
702
|
|
- fmt.Println(output)
|
703
|
|
- fmt.Println("错误信息:")
|
704
|
|
- fmt.Println(err_msg)
|
705
|
|
- return output
|
|
662
|
+ return output, requestLog, err_msg
|
706
|
663
|
}
|
707
|
664
|
|
708
|
665
|
//确认订单
|
|
@@ -2470,13 +2427,13 @@ func GetFjBusinessHandleInfo(inputStr []byte) (string, string) {
|
2470
|
2427
|
errMessageStr := make([]byte, 2048)
|
2471
|
2428
|
ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&inputStr[0])), uintptr(20000), (uintptr)(unsafe.Pointer(&outputStr[0])), (uintptr)(unsafe.Pointer(&errMessageStr[0])))
|
2472
|
2429
|
|
2473
|
|
- fmt.Println("错误信息1:", ConvertByte2String(errMessageStr, GB18030))
|
2474
|
|
- fmt.Println("输出信息1:", ConvertByte2String(outputStr, GB18030))
|
|
2430
|
+ output_info := ConvertByte2String(outputStr, GB18030)
|
|
2431
|
+ error_info := ConvertByte2String(errMessageStr, GB18030)
|
2475
|
2432
|
|
2476
|
2433
|
if ret2 != 0 {
|
2477
|
2434
|
return "", ""
|
2478
|
2435
|
}
|
2479
|
|
- return ConvertByte2String([]byte(Remove0000(string(outputStr))), GB18030), ConvertByte2String([]byte(Remove0000(string(errMessageStr))), GB18030)
|
|
2436
|
+ return DeleteExtraSpace(output_info), DeleteExtraSpace(error_info)
|
2480
|
2437
|
}
|
2481
|
2438
|
|
2482
|
2439
|
func GetFjAuthorizationInfo(org_id string) {
|
|
@@ -2521,3 +2478,18 @@ func ConvertByte2String(byte []byte, charset Charset) string {
|
2521
|
2478
|
|
2522
|
2479
|
return str
|
2523
|
2480
|
}
|
|
2481
|
+
|
|
2482
|
+func DeleteExtraSpace(s string) string {
|
|
2483
|
+ //删除字符串中的多余空格,有多个空格时,仅保留一个空格
|
|
2484
|
+ s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格
|
|
2485
|
+ regstr := "\\s{2,}" //两个及两个以上空格的正则表达式
|
|
2486
|
+ reg, _ := regexp.Compile(regstr) //编译正则表达式
|
|
2487
|
+ s2 := make([]byte, len(s1)) //定义字符数组切片
|
|
2488
|
+ copy(s2, s1) //将字符串复制到切片
|
|
2489
|
+ spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索
|
|
2490
|
+ for len(spc_index) > 0 { //找到适配项
|
|
2491
|
+ s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格
|
|
2492
|
+ spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索
|
|
2493
|
+ }
|
|
2494
|
+ return string(s2)
|
|
2495
|
+}
|