瀏覽代碼

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

csx 1 年之前
父節點
當前提交
1bfb6fd419
共有 3 個文件被更改,包括 35 次插入135 次删除
  1. 4 6
      controllers/sg/gdyb_controller.go
  2. 7 4
      service/fj_service.go
  3. 24 125
      service/gdyb_service.go

+ 4 - 6
controllers/sg/gdyb_controller.go 查看文件

@@ -84,7 +84,9 @@ func (c *GdybController) PostOne() {
84 84
 	result, inputLog := service.Gdyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, certificates, psn_name)
85 85
 	var dat map[string]interface{}
86 86
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
87
+
87 88
 	} else {
89
+
88 90
 	}
89 91
 	var dat2 map[string]interface{}
90 92
 	if err := json.Unmarshal([]byte(inputLog), &dat2); err == nil {
@@ -108,23 +110,19 @@ func (c *GdybController) PostTwo() {
108 110
 	ipt_otp_no := c.GetString("ipt_otp_no")
109 111
 	dept := c.GetString("dept")
110 112
 	fixmedins_code := c.GetString("fixmedins_code")
111
-
112 113
 	dept_code := c.GetString("dept_code")
113 114
 	doctor_id := c.GetString("doctor_id")
114
-
115 115
 	insuplc_admdvs := c.GetString("insuplc_admdvs")
116 116
 	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
117
-
118 117
 	secret_key := c.GetString("secret_key")
119
-
120 118
 	id_card_type, _ := c.GetInt64("id_card_type")
121
-
122 119
 	result, _ := service.Gdyb2201(psnNo, insutype, certNo, org_name, doctor, ipt_otp_no, dept, fixmedins_code, dept_code, doctor_id, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, "")
123 120
 
124 121
 	var dat map[string]interface{}
125 122
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
126
-		//fmt.Println(dat["status"])
123
+
127 124
 	} else {
125
+
128 126
 	}
129 127
 
130 128
 	c.ServeSuccessJSON(map[string]interface{}{

+ 7 - 4
service/fj_service.go 查看文件

@@ -4,6 +4,7 @@ import (
4 4
 	"bytes"
5 5
 	"gdyb/models"
6 6
 	"github.com/astaxie/beego"
7
+	"github.com/axgle/mahonia"
7 8
 	"io/ioutil"
8 9
 	"net/http"
9 10
 	"strconv"
@@ -81,7 +82,8 @@ func FJyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
81 82
 	}
82 83
 	//fmt.Println("开始jdk")
83 84
 
84
-	output, err_msg := GetFjBusinessHandleInfo(bytesData)
85
+	enc := mahonia.NewEncoder("gbk")
86
+	output, err_msg := GetFjBusinessHandleInfo([]byte(enc.ConvertString(string(bytesData))))
85 87
 	fmt.Println("输出信息:")
86 88
 	fmt.Println(output)
87 89
 	fmt.Println("错误信息:")
@@ -2449,10 +2451,11 @@ func GetFjBusinessHandleInfo(inputStr []byte) (string, string) {
2449 2451
 	outputStr := make([]byte, 4096)
2450 2452
 	errMessageStr := make([]byte, 2048)
2451 2453
 	ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&inputStr[0])), uintptr(20000), (uintptr)(unsafe.Pointer(&outputStr[0])), (uintptr)(unsafe.Pointer(&errMessageStr[0])))
2452
-	fmt.Println("错误信息1:", string(errMessageStr))
2454
+	enc := mahonia.NewEncoder("gbk")
2455
+
2456
+	fmt.Println("错误信息1:", enc.ConvertString(string(errMessageStr)))
2457
+	fmt.Println("输出信息1:", enc.ConvertString(string(outputStr)))
2453 2458
 
2454
-	fmt.Println("输出信息1:", ConvertToString(string(outputStr), "utf-8", "gbk"))
2455
-	fmt.Println("错误信息1:", ConvertToString(string(errMessageStr), "utf-8", "gbk"))
2456 2459
 	if ret2 != 0 {
2457 2460
 		return "", ""
2458 2461
 	}

+ 24 - 125
service/gdyb_service.go 查看文件

@@ -12,11 +12,8 @@ import (
12 12
 
13 13
 	//"gdyb/utils"
14 14
 	"github.com/astaxie/beego"
15
-	"github.com/go-ole/go-ole"
16
-	"github.com/go-ole/go-ole/oleutil"
17 15
 	"io"
18 16
 	"io/ioutil"
19
-	"log"
20 17
 	"math/rand"
21 18
 	"mime/multipart"
22 19
 	"net"
@@ -40,13 +37,11 @@ func Gdyb1201(certNo string, org_name string, doctor string, fixmedins_code stri
40 37
 	nonce := GetRandomString(32)
41 38
 	timestamp := time.Now().Unix()
42 39
 	signature := setSignature(timestamp, nonce, secret_key)
43
-
44 40
 	// 生成输入报文
45 41
 	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
46 42
 	input := make(map[string]interface{})
47 43
 	inputData := make(map[string]interface{})
48 44
 	inputMessage["infno"] = "1201" // 交易编码
49
-
50 45
 	inputData["fixmedins_type"] = "1"
51 46
 	inputData["fixmedins_name"] = org_name
52 47
 	inputData["fixmedins_code"] = fixmedins_code
@@ -62,77 +57,6 @@ func Gdyb1201(certNo string, org_name string, doctor string, fixmedins_code stri
62 57
 	gdyb_url := beego.AppConfig.String("gdyb_url")
63 58
 	gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
64 59
 	url := gdyb_url + "1201"
65
-	//var str string
66
-	//str1 := make([]byte, 1024)
67
-
68
-	//var x interface{}
69
-	//s3 := make([]byte, 256)
70
-	ole.CoInitialize(0)
71
-	unknown, err := oleutil.CreateObject("yinhai.yh_hb_sctr")
72
-	if err != nil {
73
-		log.Fatal("CreateObject: ", err)
74
-	}
75
-
76
-	xxxx := unknown.MustQueryInterface(ole.IID_IDispatch)
77
-
78
-	var str6 map[string]interface{}
79
-
80
-	//str6 = ""
81
-
82
-	////p := (*string)(unsafe.Pointer(str))
83
-	////var str6 *string
84
-	//var str6 *ole.VARIANT
85
-	////str := make([]*byte, 256)
86
-	//if err != nil {
87
-	//	log.Fatal("QueryInterface: ", err)
88
-	//}
89
-	//
90
-	r, err1 := xxxx.CallMethod("yh_hb_call", "1201", string(bytesData), str6)
91
-	////result := oleutil.MustGetProperty(xxxx, "astr_jysc")
92
-	//
93
-	if err1 != nil {
94
-		log.Fatal("CallMethod: ", err1, " | ", r)
95
-	}
96
-	fmt.Println("~~~~~~~")
97
-	//fmt.Println(str6.ToString())
98
-	fmt.Println(r.ToString())
99
-	fmt.Println("~~~~~~~")
100
-	//
101
-	//xxxx.Release()
102
-	//
103
-	//ole.CoUninitialize()
104
-	//
105
-	var json2 string
106
-	cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
107
-	out, err := cmd.Output()
108
-	if err != nil {
109
-		fmt.Println("error:", err.Error())
110
-	}
111
-
112
-	fmt.Printf("call yh_hb_call %q\n", string(out))
113
-	fmt.Printf(json2)
114
-	//
115
-	//DllDef := syscall.MustLoadDLL("yh_hb_sctrl.dll")
116
-	//Iinit := DllDef.MustFindProc("DllGetClassObject")
117
-
118
-	//ole.CoInitialize(0)
119
-	//
120
-	//ole.CLSIDFromProgID("yinhai.yh_hb_sctr")
121
-	//
122
-	//
123
-	//unknown, err := CreateInstance(clsid, IID_IUnknown)
124
-	//if err != nil {
125
-	//	return
126
-	//}
127
-	//defer unknown.Release()
128
-	//
129
-	//dispatch, err := unknown.QueryInterface(IID_IDispatch)
130
-	//if err != nil {
131
-	//	return
132
-	//}
133
-	//
134
-	//
135
-	//
136 60
 
137 61
 	request, err := http.NewRequest("POST", url, reader)
138 62
 	if err != nil {
@@ -178,9 +102,7 @@ func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
178 102
 		inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
179 103
 		inputData["certno"] = certNo        // 证件号码
180 104
 		inputData["psn_cert_type"] = "99"   // 人员证件类型
181
-
182 105
 	} else {
183
-
184 106
 		if id_card_type == 1 {
185 107
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
186 108
 			inputData["card_sn"] = card_sn      // 卡识别码
@@ -213,14 +135,6 @@ func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
213 135
 	gdyb_url := beego.AppConfig.String("gdyb_url")
214 136
 	gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
215 137
 
216
-	//DllDef := syscall.MustLoadDLL("yh_hb_sctrl.dll")
217
-	//Iinit := DllDef.MustFindProc("yh_hb_call")
218
-	//var str3 string
219
-	//ret, _, _ := Iinit.Call(StrPtr("1101"), StrPtr(string(bytesData)), StrPtr(str3))
220
-	//fmt.Println(ret)
221
-	//fmt.Println(str3)
222
-	//
223
-	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
224 138
 	var url string
225 139
 	if fixmedins_code == "H15049901371" {
226 140
 		url = gdyb_url
@@ -228,46 +142,33 @@ func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
228 142
 		url = gdyb_url + "1101"
229 143
 	}
230 144
 
231
-	if insuplc_admdvs == "421300" {
232
-		var json2 string
233
-		cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
234
-		out, err := cmd.Output()
235
-		if err != nil {
236
-			fmt.Println("error:", err.Error())
237
-		}
238
-		fmt.Println(string(out))
239
-		return hex.EncodeToString(out), inputLog
240
-	} else {
241
-
242
-		//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
243
-		request, err := http.NewRequest("POST", url, reader)
244
-		if err != nil {
245
-			fmt.Println(err.Error())
246
-			return err.Error(), ""
247
-		}
248
-
249
-		request.Header.Set("Content-Type", "application/json;charset=UTF-8")
250
-		request.Header.Set("x-tif-paasid", gdyb_paasid)
251
-		request.Header.Set("x-tif-signature", signature)
252
-		request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
253
-		request.Header.Set("x-tif-nonce", nonce)
145
+	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
146
+	request, err := http.NewRequest("POST", url, reader)
147
+	if err != nil {
148
+		fmt.Println(err.Error())
149
+		return err.Error(), ""
150
+	}
254 151
 
255
-		client := http.Client{}
256
-		resp, err := client.Do(request)
257
-		if err != nil {
258
-			fmt.Println(err.Error())
259
-			return err.Error(), ""
260
-		}
261
-		respBytes, err := ioutil.ReadAll(resp.Body)
262
-		if err != nil {
263
-			fmt.Println(err.Error())
264
-			return err.Error(), ""
265
-		}
266
-		fmt.Println(string(respBytes))
267
-		str := string(respBytes)
268
-		return str, inputLog
152
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
153
+	request.Header.Set("x-tif-paasid", gdyb_paasid)
154
+	request.Header.Set("x-tif-signature", signature)
155
+	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
156
+	request.Header.Set("x-tif-nonce", nonce)
269 157
 
158
+	client := http.Client{}
159
+	resp, err := client.Do(request)
160
+	if err != nil {
161
+		fmt.Println(err.Error())
162
+		return err.Error(), ""
270 163
 	}
164
+	respBytes, err := ioutil.ReadAll(resp.Body)
165
+	if err != nil {
166
+		fmt.Println(err.Error())
167
+		return err.Error(), ""
168
+	}
169
+	fmt.Println(string(respBytes))
170
+	str := string(respBytes)
171
+	return str, inputLog
271 172
 
272 173
 }
273 174
 
@@ -347,9 +248,7 @@ func Gdyb1101A(certNo string, org_name string, doctor string, fixmedins_code str
347 248
 		fmt.Println(string(respBytes))
348 249
 		str := string(respBytes)
349 250
 		return str
350
-
351 251
 	}
352
-
353 252
 }
354 253
 
355 254
 // 门诊挂号