|
@@ -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")
|