package service import ( "bytes" "encoding/json" "fmt" "gdyb/models" "io/ioutil" "net/http" "os/exec" "strings" "os" ) func GetJXCFYLJG001(url string, cFYLJG001 models.CFYLJG001, isu string) (string, string) { inputData := make(map[string]interface{}, 0) inputData["mdtrtCertType"] = cFYLJG001.MdtrtCertType inputData["mdtrtCertNo"] = cFYLJG001.MdtrtCertNo inputData["cardSn"] = cFYLJG001.CardSn inputData["bizTypeCode"] = cFYLJG001.BizTypeCode inputData["rxExraAttrCode"] = "" inputData["ecToken"] = cFYLJG001.EcToken inputData["authNo"] = cFYLJG001.AuthNo inputData["insuPlcNo"] = "" inputData["mdtrtareaNo"] = "" inputData["hospRxno"] = cFYLJG001.HospRxno inputData["initRxno"] = cFYLJG001.InitRxno inputData["rxTypeCode"] = cFYLJG001.RxTypeCode inputData["prscTime"] = cFYLJG001.PrscTime inputData["rxDrugCnt"] = cFYLJG001.RxDrugCnt inputData["rxUsedWayCodg"] = cFYLJG001.RxUsedWayCodg inputData["rxUsedWayName"] = cFYLJG001.RxUsedWayName inputData["rxFrquCodg"] = cFYLJG001.RxFrquCodg inputData["rxFrquName"] = cFYLJG001.RxFrquName inputData["rxDosunt"] = cFYLJG001.RxDosunt inputData["rxDoscnt"] = cFYLJG001.RxDoscnt inputData["rxDrordDscr"] = cFYLJG001.RxDrordDscr inputData["valiDays"] = cFYLJG001.ValiDays inputData["valiEndTime"] = cFYLJG001.ValiEndTime inputData["reptFlag"] = cFYLJG001.ReptFlag inputData["maxReptCnt"] = cFYLJG001.MaxReptCnt inputData["minInrvDays"] = cFYLJG001.MinInrvDays inputData["rxCotnFlag"] = cFYLJG001.RxCotnFlag inputData["longRxFlag"] = cFYLJG001.LongRxFlag rxdrugdetail := make([]map[string]interface{}, 0) rxdrug := make(map[string]interface{}) for _, item := range cFYLJG001.List { rxdrug["medListCodg"] = item.MedListCodg rxdrug["fixmedinsHilistId"] = item.MedinsListCodg rxdrug["hospPrepFlag"] = item.HospPrepFlag rxdrug["rxItemTypeCode"] = item.RxItemTypeCode rxdrug["rxItemTypeName"] = item.RxItemTypeName rxdrug["tcmdrugTypeName"] = item.TcmdrugTypeName rxdrug["tcmdrugTypeCode"] = item.TcmdrugTypeCode rxdrug["tcmherbFoote"] = item.TcmherbFoote rxdrug["mednTypeCode"] = item.MednTypeCode rxdrug["mednTypeName"] = item.MednTypeName rxdrug["mainMedcFlag"] = item.MainMedcFlag rxdrug["urgtFlag"] = item.UrgtFlag rxdrug["basMednFlag"] = item.BasMednFlag rxdrug["impDrugFlag"] = item.ImpDrugFlag rxdrug["otcFlag"] = "" rxdrug["drugGenname"] = item.DrugGenname rxdrug["drugDosform"] = item.DrugDosform rxdrug["drugSpec"] = item.DrugSpec rxdrug["drugProdname"] = item.DrugProdname rxdrug["prdrName"] = item.PrdrName rxdrug["medcWayCodg"] = item.MedcWayCodg rxdrug["medcWayDscr"] = item.MedcWayDscr rxdrug["medcBegntime"] = item.MedcBegntime rxdrug["medcEndtime"] = item.MedcEndtime rxdrug["medcDays"] = item.MedcDays rxdrug["sinDosunt"] = item.SinDosunt rxdrug["sinDoscnt"] = item.SinDoscnt rxdrug["usedFrquCodg"] = item.UsedFrquCodg rxdrug["usedFrquName"] = item.UsedFrquName rxdrug["drugDosunt"] = item.DrugDosunt rxdrug["drugCnt"] = item.DrugCnt rxdrug["drugPric"] = item.DrugPric rxdrug["drugSumamt"] = item.DrugSumamt rxdrug["hospApprFlag"] = item.HospApprFlag rxdrug["selfPayRea"] = "" rxdrug["realDscr"] = "" rxdrug["extras"] = "" rxdrugdetail = append(rxdrugdetail, rxdrug) } inputData["rxdrugdetail"] = rxdrugdetail mdtrtinfo := make(map[string]interface{}) mdtrtinfo["fixmedinsCode"] = cFYLJG001.Mdtrtinfo.FixmedinsCode mdtrtinfo["fixmedinsName"] = cFYLJG001.Mdtrtinfo.FixmedinsName mdtrtinfo["mdtrtId"] = cFYLJG001.Mdtrtinfo.MdtrtID mdtrtinfo["medType"] = cFYLJG001.Mdtrtinfo.MedType mdtrtinfo["iptOtpNo"] = cFYLJG001.Mdtrtinfo.IptOtpNo mdtrtinfo["otpIptFlag"] = cFYLJG001.Mdtrtinfo.OtpIptFlag mdtrtinfo["psnNo"] = cFYLJG001.Mdtrtinfo.PsnNo mdtrtinfo["patnName"] = cFYLJG001.Mdtrtinfo.PatnName mdtrtinfo["psnCertType"] = cFYLJG001.Mdtrtinfo.PsnCertType mdtrtinfo["certno"] = cFYLJG001.Mdtrtinfo.Certno mdtrtinfo["patnAge"] = cFYLJG001.Mdtrtinfo.PatnAge mdtrtinfo["patnHgt"] = cFYLJG001.Mdtrtinfo.PatnHgt mdtrtinfo["patnWt"] = cFYLJG001.Mdtrtinfo.PatnWt mdtrtinfo["gend"] = cFYLJG001.Mdtrtinfo.Gend mdtrtinfo["birctrlType"] = cFYLJG001.Mdtrtinfo.BirctrlType mdtrtinfo["birctrlMatnDate"] = cFYLJG001.Mdtrtinfo.BirctrlMatnDate mdtrtinfo["matnType"] = cFYLJG001.Mdtrtinfo.MatnType mdtrtinfo["gesoVal"] = cFYLJG001.Mdtrtinfo.GesoVal mdtrtinfo["nwbFlag"] = cFYLJG001.Mdtrtinfo.NwbFlag mdtrtinfo["nwbAge"] = cFYLJG001.Mdtrtinfo.NwbAge mdtrtinfo["suckPrdFlag"] = cFYLJG001.Mdtrtinfo.SuckPrdFlag mdtrtinfo["algsHis"] = cFYLJG001.Mdtrtinfo.AlgsHis mdtrtinfo["prscDeptName"] = cFYLJG001.Mdtrtinfo.PrscDeptName mdtrtinfo["prscDeptCode"] = cFYLJG001.Mdtrtinfo.PrscDeptCode mdtrtinfo["drCode"] = cFYLJG001.Mdtrtinfo.DrCode mdtrtinfo["prscDrName"] = cFYLJG001.Mdtrtinfo.PrscDrName mdtrtinfo["prscDrCertType"] = cFYLJG001.Mdtrtinfo.PrscDrCertType mdtrtinfo["prscDrCertno"] = cFYLJG001.Mdtrtinfo.PrscDrCertno mdtrtinfo["drProfttlCodg"] = cFYLJG001.Mdtrtinfo.DrProfttlCodg mdtrtinfo["drProfttlName"] = cFYLJG001.Mdtrtinfo.DrProfttlName mdtrtinfo["drDeptCode"] = cFYLJG001.Mdtrtinfo.DrDeptCode mdtrtinfo["drDeptName"] = cFYLJG001.Mdtrtinfo.DrDeptName mdtrtinfo["caty"] = cFYLJG001.Mdtrtinfo.Caty mdtrtinfo["mdtrtTime"] = cFYLJG001.Mdtrtinfo.MdtrtTime mdtrtinfo["diseCodg"] = cFYLJG001.Mdtrtinfo.DiseCodg mdtrtinfo["diseName"] = cFYLJG001.Mdtrtinfo.DiseName mdtrtinfo["spDiseFlag"] = cFYLJG001.Mdtrtinfo.SpDiseFlag mdtrtinfo["maindiagCode"] = cFYLJG001.Mdtrtinfo.MaindiagCode mdtrtinfo["maindiagName"] = cFYLJG001.Mdtrtinfo.MaindiagName mdtrtinfo["diseCondDscr"] = cFYLJG001.Mdtrtinfo.DiseCondDscr mdtrtinfo["hiFeesetlType"] = cFYLJG001.Mdtrtinfo.HiFeesetlFlag mdtrtinfo["hiFeesetlName"] = cFYLJG001.Mdtrtinfo.HiFeesetlName mdtrtinfo["rgstFee"] = cFYLJG001.Mdtrtinfo.RgstFee mdtrtinfo["medfeeSumamt"] = cFYLJG001.Mdtrtinfo.MedfeeSumamt mdtrtinfo["fstdiagFlag"] = cFYLJG001.Mdtrtinfo.FstdiagFlag type MyData struct { Insutype string `json:"insutype"` } data := MyData{ Insutype: isu, } mdtrtinfo["extras"] = data inputData["mdtrtinfo"] = mdtrtinfo diseinfos := make([]map[string]interface{}, 0) for _, item := range cFYLJG001.Diseinfo { diseinfo := make(map[string]interface{}) diseinfo["diagType"] = item.DiagType diseinfo["maindiagFlag"] = item.MaindiagFlag diseinfo["diagSrtNo"] = item.DiagSrtNo diseinfo["diagCode"] = item.DiagCode diseinfo["diagName"] = item.DiagName diseinfo["diagDept"] = item.DiagDept diseinfo["diagDeptCode"] = "" diseinfo["diagDrNo"] = item.DiagDrNo diseinfo["diagDrName"] = item.DiagDrName diseinfo["diagTime"] = item.DiagTime diseinfo["tcmDiseCode"] = item.TcmDiseCode diseinfo["tcmDiseName"] = item.TcmDiseName diseinfo["tcmsympCode"] = item.TcmsympCode diseinfo["tcmsymp"] = item.Tcmsymp diseinfos = append(diseinfos, diseinfo) } inputData["diseinfo"] = diseinfos var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(inputLog) cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog) out, err := cmd.Output() aa := strings.Split(string(out),"======") fmt.Println(aa[1]) reader := bytes.NewReader([]byte(aa[1])) url = url + "/fixmedins/uploadChk" fmt.Println(url) request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } str := string(respBytes) var data2 map[string]interface{} // 解析 JSON 字符串到 map json.Unmarshal([]byte(str), &data2) // 检查 code 字段是否存在,并将其转换为字符串 if val, ok := data2["code"]; ok { data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串 } // 将处理后的数据重新转换为 JSON 字符串 updatedJSON2, _ := json.Marshal(data2) fmt.Println(string(updatedJSON2)) cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=", string(updatedJSON2)) out2, _ := cmd2.Output() fmt.Println(string(out2)) bb := strings.Split(string(out2),"======") fmt.Println(bb[1]) return bb[1], inputLog } func GetJXCFYLJG002(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) { // 生成签名 // 生成输入报文 inputData := make(map[string]interface{}) inputData["fixmedinsCode"] = fixmedins_code inputData["originalValue"] = original_value inputData["originalRxFile"] = original_rx_file inputData["extras"] = extras var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } // 将 inputLog 和其他参数写入文件 // 将 inputLog 和其他参数写入文件 argFileContent := inputLog // 拼接 inputLog argFilePath := "a.txt" os.WriteFile(argFilePath, []byte(argFileContent), 0644) // 构建命令 //cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", ) cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=") // 捕获输出 output, err := cmd.CombinedOutput() if err != nil { fmt.Printf("Error: %v\n", err) } // 打印命令执行结果 fmt.Printf("Output: %s\n", string(output)) aa := strings.Split(string(output),"======") fmt.Println(aa[1]) reader := bytes.NewReader([]byte(aa[1])) url = url + "/fixmedins/rxFixmedinsSign" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } argbFileContent := string(respBytes) // 拼接 inputLog var data2 map[string]interface{} // 解析 JSON 字符串到 map json.Unmarshal([]byte(argbFileContent), &data2) // 检查 code 字段是否存在,并将其转换为字符串 if val, ok := data2["code"]; ok { data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串 } updatedJSON2, _ := json.Marshal(data2) argbFilePath := "b.txt" os.WriteFile(argbFilePath, updatedJSON2, 0644) cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=") out2, err := cmd2.Output() fmt.Println(err) //fmt.Println(out2) bb := strings.Split(string(out2),"======") fmt.Println(bb[1]) return bb[1], inputLog } func GetJXCFYLJG012(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) { // 生成签名 // 生成输入报文 inputData := make(map[string]interface{}) inputData["fixmedinsCode"] = fixmedins_code inputData["originalValue"] = original_value inputData["originalRxFile"] = original_rx_file inputData["extras"] = extras var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog) out, err := cmd.Output() fmt.Println(string(out)) reader := bytes.NewReader(out) url = url + "/fixmedins/rxFixmedinsSign" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func GetJXCFYLJG003(url string, cFYLJG003 models.CFYLJG003) (string, string) { inputData := make(map[string]interface{}) inputData["rxTraceCode"] = cFYLJG003.RxTraceCode inputData["hiRxno"] = cFYLJG003.HiRxno inputData["mdtrtId"] = cFYLJG003.MdtrtID inputData["patnName"] = cFYLJG003.PatnName inputData["psnCertType"] = cFYLJG003.PsnCertType inputData["certno"] = cFYLJG003.Certno inputData["fixmedinsName"] = cFYLJG003.FixmedinsName inputData["fixmedinsCode"] = cFYLJG003.FixmedinsCode inputData["drCode"] = cFYLJG003.DrCode inputData["prscDrName"] = cFYLJG003.PrscDrName inputData["pharDeptName"] = cFYLJG003.PharDeptName inputData["pharDeptCode"] = cFYLJG003.PharDeptCode inputData["pharProfttlCodg"] = "" inputData["pharProfttlName"] = "" inputData["pharCode"] = cFYLJG003.PharCode inputData["pharCertType"] = cFYLJG003.PsnCertType inputData["pharCertno"] = cFYLJG003.PharCertno inputData["pharName"] = cFYLJG003.PharName inputData["pharPracCertNo"] = cFYLJG003.PharPracCertNo inputData["pharChkTime"] = cFYLJG003.PharChkTime inputData["rxFile"] = cFYLJG003.RxFile inputData["signDigest"] = cFYLJG003.SignDigest inputData["extras"] = "" var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) argFileContent := inputLog // 拼接 inputLog argFilePath := "a.txt" os.WriteFile(argFilePath, []byte(argFileContent), 0644) cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=") out, err := cmd.Output() fmt.Println(string(out)) aa := strings.Split(string(out),"======") if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader([]byte(aa[1])) url = url + "/fixmedins/rxFileUpld" //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } argbFileContent := string(respBytes) // 拼接 inputLog var data2 map[string]interface{} // 解析 JSON 字符串到 map json.Unmarshal([]byte(argbFileContent), &data2) // 检查 code 字段是否存在,并将其转换为字符串 if val, ok := data2["code"]; ok { data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串 } updatedJSON2, _ := json.Marshal(data2) argbFilePath := "b.txt" os.WriteFile(argbFilePath, updatedJSON2, 0644) cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=") out2, err := cmd2.Output() fmt.Println(err) //fmt.Println(out2) bb := strings.Split(string(out2),"======") fmt.Println(bb[1]) return bb[1], inputLog } func GetJXCFYLJG013(url string, cFYLJG003 models.CFYLJG003) (string, string) { inputData := make(map[string]interface{}) inputData["rxTraceCode"] = cFYLJG003.RxTraceCode inputData["hiRxno"] = cFYLJG003.HiRxno inputData["mdtrtId"] = cFYLJG003.MdtrtID inputData["patnName"] = cFYLJG003.PatnName inputData["psnCertType"] = cFYLJG003.PsnCertType inputData["certno"] = cFYLJG003.Certno inputData["fixmedinsName"] = cFYLJG003.FixmedinsName inputData["fixmedinsCode"] = cFYLJG003.FixmedinsCode inputData["drCode"] = cFYLJG003.DrCode inputData["prscDrName"] = cFYLJG003.PrscDrName inputData["pharDeptName"] = cFYLJG003.PharDeptName inputData["pharDeptCode"] = cFYLJG003.PharDeptCode inputData["pharProfttlCodg"] = cFYLJG003.PharProfttlCodg inputData["pharProfttlName"] = cFYLJG003.PharProfttlName inputData["pharCode"] = cFYLJG003.PharCode inputData["pharCertType"] = cFYLJG003.PsnCertType inputData["pharCertno"] = cFYLJG003.PharCertno inputData["pharName"] = cFYLJG003.PharName inputData["pharPracCertNo"] = cFYLJG003.PharPracCertNo inputData["pharChkTime"] = cFYLJG003.PharChkTime inputData["rxFile"] = cFYLJG003.RxFile inputData["signDigest"] = cFYLJG003.SignDigest inputData["extras"] = "" var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog) out, err := cmd.Output() fmt.Println(string(out)) aa := strings.Split(string(out),"======") if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader([]byte(aa[1])) url = url + "/fixmedins/rxFileUpld" //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func GetJXCFYLJG004(url string, cFYLJG004 models.CFYLJG004) (string, string) { inputData := make(map[string]interface{}) inputData["hiRxno"] = cFYLJG004.HiRxno inputData["fixmedinsCode"] = cFYLJG004.FixmedinsCode inputData["drCode"] = cFYLJG004.UndoDrCode inputData["undoDrName"] = cFYLJG004.UndoDrName inputData["undoDrCertType"] = cFYLJG004.UndoDrCertType inputData["undoDrCertno"] = cFYLJG004.UndoDrCertno inputData["undoRea"] = cFYLJG004.UndoRea inputData["undoTime"] = cFYLJG004.UndoTime var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) url = url + "CFYLJG004" //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") //request.Header.Set("x-tif-paasid", gdyb_paasid) //request.Header.Set("x-tif-signature", signature) //request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) //request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func GetJXCFYLJG005( fixmedins_code string,cFYLJG005 models.CFYLJG005) (string, string) { // 生成签名 // 生成输入报文 inputData := make(map[string]interface{}) inputData["fixmedinsCode"] = fixmedins_code inputData["hiRxno"] = cFYLJG005.HiRxno inputData["mdtrtId"] = cFYLJG005.MdtrtID inputData["psnName"] = cFYLJG005.PsnName inputData["psnCertType"] = cFYLJG005.PsnCertType inputData["certno"] = cFYLJG005.Certno var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } // 将 inputLog 和其他参数写入文件 // 将 inputLog 和其他参数写入文件 argFileContent := inputLog // 拼接 inputLog argFilePath := "a.txt" os.WriteFile(argFilePath, []byte(argFileContent), 0644) // 构建命令 //cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", ) cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=") // 捕获输出 output, err := cmd.CombinedOutput() if err != nil { fmt.Printf("Error: %v\n", err) } // 打印命令执行结果 fmt.Printf("Output: %s\n", string(output)) aa := strings.Split(string(output),"======") fmt.Println(aa[1]) reader := bytes.NewReader([]byte(aa[1])) url := "http://10.66.149.64:8080/epc/api" + "/fixmedins/hospRxDetlQuery" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } argbFileContent := string(respBytes) // 拼接 inputLog var data2 map[string]interface{} // 解析 JSON 字符串到 map json.Unmarshal([]byte(argbFileContent), &data2) // 检查 code 字段是否存在,并将其转换为字符串 if val, ok := data2["code"]; ok { data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串 } updatedJSON2, _ := json.Marshal(data2) argbFilePath := "b.txt" os.WriteFile(argbFilePath, updatedJSON2, 0644) cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=") out2, err := cmd2.Output() fmt.Println(err) //fmt.Println(out2) bb := strings.Split(string(out2),"======") fmt.Println(bb[1]) return bb[1], inputLog } //func GetAHCFYLJG006(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG006 models.CFYLJG006) (string, string) { // //生成签名 // nonce := GetRandomString(32) // timestamp := time.Now().Unix() // signature := setSignature(timestamp, nonce, secret_key) // //生成输入报文 // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) // inputData := make(map[string]interface{}) // //inputDatas := make([]map[string]interface{}, 0) // inputData2 := make(map[string]interface{}) // // inputMessage["infno"] = "CFYLJG006" // inputData["fixmedinsCode"] = fixmedins_code // inputData["hiRxno"] = cFYLJG006.HiRxno // inputData["mdtrtId"] = cFYLJG006.MdtrtID // inputData["psnName"] = cFYLJG006.PsnName // inputData["psnCertType"] = cFYLJG006.PsnCertType // inputData["certno"] = cFYLJG006.Certno // inputData2["data"] = inputData // inputMessage["input"] = inputData2 // var inputLog string // bytesData, err := json.Marshal(inputMessage) // inputLog = string(bytesData) // fmt.Println(string(bytesData)) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // reader := bytes.NewReader(bytesData) // gdyb_url := beego.AppConfig.String("gdyb_url") // gdyb_paasid := beego.AppConfig.String("gdyb_paasid") // // var url string // if fixmedins_code == "H15049901371" { // url = gdyb_url // } else { // url = gdyb_url + "CFYLJG006" // } // // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" // request, err := http.NewRequest("POST", url, reader) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // // request.Header.Set("Content-Type", "application/json;charset=UTF-8") // request.Header.Set("x-tif-paasid", gdyb_paasid) // request.Header.Set("x-tif-signature", signature) // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) // request.Header.Set("x-tif-nonce", nonce) // // client := http.Client{} // resp, err := client.Do(request) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // respBytes, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // fmt.Println(string(respBytes)) // str := string(respBytes) // return str, inputLog // //} //func GetAHCFYLJG007(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG007 models.CFYLJG007) (string, string) { // //生成签名 // nonce := GetRandomString(32) // timestamp := time.Now().Unix() // signature := setSignature(timestamp, nonce, secret_key) // //生成输入报文 // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) // inputData := make(map[string]interface{}) // inputData2 := make(map[string]interface{}) // // //inputDatas := make([]map[string]interface{}, 0) // // inputMessage["infno"] = "CFYLJG007" // // inputData["fixmedinsCode"] = fixmedins_code // inputData["hiRxno"] = cFYLJG007.HiRxno // inputData["mdtrtId"] = cFYLJG007.MdtrtID // inputData["psnCertType"] = cFYLJG007.PsnCertType // inputData["certno"] = cFYLJG007.Certno // inputData["psnName"] = cFYLJG007.PsnName // // inputData2["data"] = inputData // // inputMessage["input"] = inputData2 // var inputLog string // bytesData, err := json.Marshal(inputMessage) // inputLog = string(bytesData) // fmt.Println(string(bytesData)) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // reader := bytes.NewReader(bytesData) // gdyb_url := beego.AppConfig.String("gdyb_url") // gdyb_paasid := beego.AppConfig.String("gdyb_paasid") // // var url string // if fixmedins_code == "H15049901371" { // url = gdyb_url // } else { // url = gdyb_url + "CFYLJG007" // } // // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" // request, err := http.NewRequest("POST", url, reader) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // // request.Header.Set("Content-Type", "application/json;charset=UTF-8") // request.Header.Set("x-tif-paasid", gdyb_paasid) // request.Header.Set("x-tif-signature", signature) // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) // request.Header.Set("x-tif-nonce", nonce) // // client := http.Client{} // resp, err := client.Do(request) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // respBytes, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // fmt.Println(string(respBytes)) // str := string(respBytes) // return str, inputLog // //} //func GetAHCFYLJG008(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG008 models.CFYLJG008) (string, string) { // //生成签名 // nonce := GetRandomString(32) // timestamp := time.Now().Unix() // signature := setSignature(timestamp, nonce, secret_key) // //生成输入报文 // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) // inputData := make(map[string]interface{}) // //inputData2 := make(map[string]interface{}) // // //inputDatas := make([]map[string]interface{}, 0) // // inputMessage["infno"] = "CFYLJG008" // // inputData["pageNum"] = cFYLJG008.PageNum // inputData["pageSize"] = cFYLJG008.PageSize // inputData["orderType"] = cFYLJG008.OrderType // inputData["poolareaNo"] = cFYLJG008.PoolareaNo // inputData["fixmedinsName"] = cFYLJG008.FixmedinsName // inputData["lng"] = cFYLJG008.Lng // inputData["lat"] = cFYLJG008.Lat // inputData["medinsProdInvChgDDTOList"] = cFYLJG008.MedList // // inputMessage["input"] = inputData // var inputLog string // bytesData, err := json.Marshal(inputMessage) // inputLog = string(bytesData) // fmt.Println(string(bytesData)) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // reader := bytes.NewReader(bytesData) // gdyb_url := beego.AppConfig.String("gdyb_url") // gdyb_paasid := beego.AppConfig.String("gdyb_paasid") // // var url string // if fixmedins_code == "H15049901371" { // url = gdyb_url // } else { // url = gdyb_url + "CFYLJG007" // } // // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" // request, err := http.NewRequest("POST", url, reader) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // // request.Header.Set("Content-Type", "application/json;charset=UTF-8") // request.Header.Set("x-tif-paasid", gdyb_paasid) // request.Header.Set("x-tif-signature", signature) // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) // request.Header.Set("x-tif-nonce", nonce) // // client := http.Client{} // resp, err := client.Do(request) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // respBytes, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // fmt.Println(string(respBytes)) // str := string(respBytes) // return str, inputLog // //}