csx 4 years ago
parent
commit
f55ad0a39c
2 changed files with 97 additions and 0 deletions
  1. 42 0
      controllers/his_api_controller.go
  2. 55 0
      service/gdyb_service.go

+ 42 - 0
controllers/his_api_controller.go View File

42
 	beego.Router("/api/refundnumber/post", &HisApiController{}, "get:RefundNumber")
42
 	beego.Router("/api/refundnumber/post", &HisApiController{}, "get:RefundNumber")
43
 	beego.Router("/api/refunddetail/post", &HisApiController{}, "get:RefundDetail")
43
 	beego.Router("/api/refunddetail/post", &HisApiController{}, "get:RefundDetail")
44
 
44
 
45
+	beego.Router("/api/code/get", &HisApiController{}, "get:GetCode")
46
+
45
 }
47
 }
46
 
48
 
47
 func (c *HisApiController) Sscard() {
49
 func (c *HisApiController) Sscard() {
1941
 
1943
 
1942
 }
1944
 }
1943
 
1945
 
1946
+func (c *HisApiController) GetCode() {
1947
+
1948
+	name := c.GetString("name")
1949
+	codg := c.GetString("codg")
1950
+
1951
+	adminUser := c.GetAdminUserInfo()
1952
+
1953
+	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
1954
+	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
1955
+
1956
+	var user_name string
1957
+	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id)
1958
+	if role.ID == 0 {
1959
+		user_name = "xxx"
1960
+	} else {
1961
+		user_name = role.UserName
1962
+	}
1963
+
1964
+	baseParams := models.BaseParams{
1965
+		SecretKey:      miConfig.SecretKey,
1966
+		FixmedinsCode:  miConfig.Code,
1967
+		InsuplcAdmdvs:  miConfig.InsuplcAdmdvs,
1968
+		MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
1969
+		OrgName:        miConfig.OrgName,
1970
+		Doctor:         user_name,
1971
+	}
1972
+
1973
+	if config.IsOpen == 1 {
1974
+		result := service.Gdyb3301(baseParams, name, codg)
1975
+		var dat map[string]interface{}
1976
+		if err := json.Unmarshal([]byte(result), &dat); err == nil {
1977
+			fmt.Println(dat)
1978
+		} else {
1979
+			fmt.Println(err)
1980
+		}
1981
+
1982
+	}
1983
+
1984
+}
1985
+
1944
 func PathExists(path string) (bool, error) {
1986
 func PathExists(path string) (bool, error) {
1945
 	_, err := os.Stat(path)
1987
 	_, err := os.Stat(path)
1946
 	if err == nil {
1988
 	if err == nil {

+ 55 - 0
service/gdyb_service.go View File

1047
 	return str
1047
 	return str
1048
 }
1048
 }
1049
 
1049
 
1050
+func Gdyb3301(baseParams models.BaseParams, name string, codg string) string {
1051
+	// 生成签名
1052
+	nonce := GetRandomString(32)
1053
+	timestamp := time.Now().Unix()
1054
+	signature := setSignature(timestamp, nonce, baseParams.SecretKey)
1055
+
1056
+	// 生成输入报文
1057
+	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
1058
+	input := make(map[string]interface{})
1059
+	inputData := make(map[string]interface{})
1060
+	inputMessage["infno"] = "3301" // 交易编码
1061
+	inputData["fixmedins_hilist_id"] = baseParams.FixmedinsCode
1062
+	inputData["fixmedins_hilist_name"] = name
1063
+	inputData["list_type"] = "西药"
1064
+	inputData["med_list_codg"] = codg
1065
+	inputData["begndate"] = "2021-01-01"
1066
+	inputData["enddate"] = "2021-01-07"
1067
+	input["data"] = inputData
1068
+	inputMessage["input"] = input //交易输入
1069
+	bytesData, err := json.Marshal(inputMessage)
1070
+	fmt.Println(string(bytesData))
1071
+	if err != nil {
1072
+		fmt.Println(err.Error())
1073
+		return err.Error()
1074
+	}
1075
+	reader := bytes.NewReader(bytesData)
1076
+	url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3301"
1077
+
1078
+	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
1079
+	request, err := http.NewRequest("POST", url, reader)
1080
+	if err != nil {
1081
+		fmt.Println(err.Error())
1082
+		return err.Error()
1083
+	}
1084
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
1085
+	request.Header.Set("x-tif-paasid", "sg03_prd")
1086
+	request.Header.Set("x-tif-signature", signature)
1087
+	request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
1088
+	request.Header.Set("x-tif-nonce", nonce)
1089
+	client := http.Client{}
1090
+	resp, err := client.Do(request)
1091
+	if err != nil {
1092
+		fmt.Println(err.Error())
1093
+		return err.Error()
1094
+	}
1095
+	respBytes, err := ioutil.ReadAll(resp.Body)
1096
+	if err != nil {
1097
+		fmt.Println(err.Error())
1098
+		return err.Error()
1099
+	}
1100
+	str := string(respBytes)
1101
+	fmt.Println(str)
1102
+	return str
1103
+}
1104
+
1050
 //  门诊结算撤销
1105
 //  门诊结算撤销
1051
 //func Gdyb4101(psnNo string, mdtrtId string, setlId string) string {
1106
 //func Gdyb4101(psnNo string, mdtrtId string, setlId string) string {
1052
 //	// 生成签名
1107
 //	// 生成签名