Browse Source

Merge branch 'master' of http://git.shengws.com/csx/gdyb

csx 3 years ago
parent
commit
89c533cfd9
1 changed files with 65 additions and 56 deletions
  1. 65 56
      controllers/sg/his_api_controller.go

+ 65 - 56
controllers/sg/his_api_controller.go View File

@@ -64,7 +64,7 @@ func HisManagerApiRegistRouters() {
64 64
 	beego.Router("/api/psn/unputonrecord", &HisApiController{}, "get:PsnUnPutOnRecord")
65 65
 	beego.Router("/api/psn/ncds/putonrecord", &HisApiController{}, "get:PsnPutNCDSOnRecord")
66 66
 	beego.Router("/api/psn/ncds/unputonrecord", &HisApiController{}, "get:PsnPutUnNCDSOnRecord")
67
-	beego.Router("/api/test", &HisApiController{}, "get:TestGetBasBaseInfo")
67
+	
68 68
 	beego.Router("/api/reversal", &HisApiController{}, "get:ReversalData")
69 69
 	beego.Router("/api/reversal/other", &HisApiController{}, "get:ReversalOtherData")
70 70
 
@@ -73,9 +73,73 @@ func HisManagerApiRegistRouters() {
73 73
 	beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList")
74 74
 
75 75
 	//beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList")
76
+	beego.Router("/api/testinit", &HisApiController{}, "get:TestGetBasBaseInit")
77
+	beego.Router("/api/test", &HisApiController{}, "get:TestGetBasBaseInfo")
78
+
79
+}
80
+
81
+var initFlag int64 = 0
82
+
83
+func (c *HisApiController) TestGetBasBaseInit() {
84
+	DllDef := syscall.MustLoadDLL("SSCard.dll")
85
+	Iinit := DllDef.MustFindProc("Init")
86
+	ret, _, err := Iinit.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200"))
87
+	if ret != 0 {
88
+		fmt.Println("SSCard的报错原因:", err)
89
+		fmt.Println("SSCard的运算结果为:", ret)
90
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
91
+		return
92
+	}
93
+
94
+	result := int(ret)
95
+	fmt.Println("SSCard的运算结果为1:", result)
96
+	initFlag = 1
97
+	return 
98
+}
99
+
100
+func (c *HisApiController) TestGetBasBaseInfo() {
101
+	if initFlag == 0 {
102
+		c.TestGetBasBaseInit()
103
+	}
104
+	DllDef := syscall.MustLoadDLL("SSCard.dll")
105
+	readCard := DllDef.MustFindProc("ReadCardBas")
106
+	if readCard == nil {
107
+		fmt.Println("readcard is nil")
108
+		readCard = DllDef.MustFindProc("ReadCardBas")
109
+	}
110
+
111
+	str := make([]byte, 1024)
112
+	str1 := make([]byte, 1024)
113
+
114
+	ret2, _, err2 := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), uintptr(1024),(uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024))
115
+	fmt.Println(" Add(4,5)的结果为:", ret2)
116
+	fmt.Println(" Add(4,5)的结果为:", err2)
117
+
118
+
119
+	fmt.Println(" str:", *(*string)(unsafe.Pointer(&str)))
120
+	fmt.Println(" str1:", *(*string)(unsafe.Pointer(&str1)))
121
+	// runtime.GC()
122
+	if err2 != nil {
123
+		fmt.Println("SSCard的运算结果为:", ret2)
124
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
125
+		return
126
+	}
76 127
 
77 128
 }
78 129
 
130
+func prttostr(vcode uintptr) string {
131
+	var vbyte []byte
132
+	for i := 0; i < 10; i++ {
133
+		sbyte := *((*byte)(unsafe.Pointer(vcode)))
134
+		if sbyte == 0 {
135
+			break
136
+		}
137
+		vbyte = append(vbyte, sbyte)
138
+		vcode += 1
139
+	}
140
+	return string(vbyte)
141
+}
142
+
79 143
 type CustomFundPay struct {
80 144
 	FundPayType string  `json:"fund_pay_type"`
81 145
 	FundPayamt  float64 `json:"fund_payamt"`
@@ -588,64 +652,9 @@ func (c *HisApiController) GetSettleList() {
588 652
 	}
589 653
 }
590 654
 
591
-func (c *HisApiController) TestGetBasBaseInfo() {
592
-	DllDef := syscall.MustLoadDLL("SSCard.dll")
593
-	Iinit := DllDef.MustFindProc("Init")
594
-	readCard := DllDef.MustFindProc("ReadCardBas")
595
-	ret, _, err := Iinit.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200"))
596
-	if ret != 0 {
597
-		fmt.Println("SSCard的报错原因:", err)
598
-		fmt.Println("SSCard的运算结果为:", ret)
599
-		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
600
-		return
601
-	}
602 655
 
603
-	result := int(ret)
604
-	fmt.Println("SSCard的运算结果为1:", result)
605 656
 
606
-	if readCard == nil {
607
-		fmt.Println("readcard is nil")
608
-		readCard = DllDef.MustFindProc("ReadCardBas")
609
-	}
610
-	if readCard == nil {
611
-		fmt.Println("readcard reload  is nil")
612
-		return
613
-	}
614 657
 
615
-	str := make([]byte, 1024)
616
-	str1 := make([]byte, 1024)
617
-	cdat := len(str)
618
-	cdat1 := len(str1)
619
-	p := *((*int32)(unsafe.Pointer(&str[0])))
620
-	p1 := *((*int32)(unsafe.Pointer(&str1[0])))
621
-	ret2, _, err2 := readCard.Call(uintptr(p), uintptr(cdat), uintptr(p1), uintptr(cdat1))
622
-	fmt.Println(" Add(4,5)的结果为:", ret2)
623
-	str11 := prttostr(uintptr(p))
624
-	str22 := prttostr(uintptr(p1))
625
-
626
-	fmt.Println(" str:", str11)
627
-	fmt.Println(" str1:", str22)
628
-	// runtime.GC()
629
-	if err2 != nil {
630
-		fmt.Println("SSCard的运算结果为:", ret2)
631
-		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
632
-		return
633
-	}
634
-
635
-}
636
-
637
-func prttostr(vcode uintptr) string {
638
-	var vbyte []byte
639
-	for i := 0; i < 10; i++ {
640
-		sbyte := *((*byte)(unsafe.Pointer(vcode)))
641
-		if sbyte == 0 {
642
-			break
643
-		}
644
-		vbyte = append(vbyte, sbyte)
645
-		vcode += 1
646
-	}
647
-	return string(vbyte)
648
-}
649 658
 
650 659
 //func (c *HisApiController) TestPay() {
651 660
 //	DllDef2 := syscall.MustLoadDLL("SSSE32.dll")