jsyb_controller.go 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. package js
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "gdyb/controllers"
  6. "gdyb/enums"
  7. "gdyb/models"
  8. "gdyb/service"
  9. "gdyb/utils"
  10. "github.com/astaxie/beego"
  11. "github.com/axgle/mahonia"
  12. "io/ioutil"
  13. "regexp"
  14. "strings"
  15. "syscall"
  16. "unsafe"
  17. )
  18. type JSybController struct {
  19. controllers.BaseAuthAPIController
  20. }
  21. func JSybRegistRouters() {
  22. beego.Router("/jsyb/1101", &JSybController{}, "get:PostOne")
  23. beego.Router("/jsyb/2201", &JSybController{}, "get:PostTwo")
  24. beego.Router("/jsyb/2202", &JSybController{}, "get:PostThree")
  25. beego.Router("/jsyb/2203", &JSybController{}, "post:PostFour")
  26. beego.Router("/jsyb/2204", &JSybController{}, "post:PostFive")
  27. beego.Router("/jsyb/2205", &JSybController{}, "get:PostSix")
  28. beego.Router("/jsyb/2206", &JSybController{}, "get:PostSeven")
  29. beego.Router("/jsyb/2207", &JSybController{}, "get:PostEight")
  30. beego.Router("/jsyb/2208", &JSybController{}, "get:PostNine")
  31. beego.Router("/jsyb/5203", &JSybController{}, "get:PostTen")
  32. beego.Router("/jsyb/readcard", &JSybController{}, "get:ReadCard")
  33. }
  34. func (c *JSybController) PostOne() {
  35. certNo := c.GetString("cert_no")
  36. org_name := c.GetString("org_name")
  37. doctor := c.GetString("doctor")
  38. fixmedins_code := c.GetString("fixmedins_code")
  39. insuplc_admdvs := c.GetString("insuplc_admdvs")
  40. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  41. secret_key := c.GetString("secret_key")
  42. id_card_type, _ := c.GetInt64("id_card_type")
  43. card_sn := c.GetString("card_sn")
  44. certificates := c.GetString("certificates")
  45. url := c.GetString("url")
  46. ak := c.GetString("ak")
  47. result, inputLog := service.Jsyb1101(certNo, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, id_card_type, card_sn, certificates, url, ak)
  48. fmt.Println(result)
  49. fmt.Println(inputLog)
  50. var dat map[string]interface{}
  51. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  52. } else {
  53. }
  54. var dat2 map[string]interface{}
  55. if err := json.Unmarshal([]byte(inputLog), &dat2); err == nil {
  56. } else {
  57. }
  58. c.ServeSuccessJSON(map[string]interface{}{
  59. "pre": dat,
  60. "log": dat2,
  61. })
  62. }
  63. func (c *JSybController) PostTwo() {
  64. psnNo := c.GetString("psn_no")
  65. insutype := c.GetString("insutype")
  66. certNo := c.GetString("cert_no")
  67. org_name := c.GetString("org_name")
  68. doctor := c.GetString("doctor")
  69. ipt_otp_no := c.GetString("ipt_otp_no")
  70. dept := c.GetString("dept")
  71. verify_number := c.GetString("verify_number")
  72. fixmedins_code := c.GetString("fixmedins_code")
  73. dept_code := c.GetString("dept_code")
  74. doctor_id := c.GetString("doctor_id")
  75. insuplc_admdvs := c.GetString("insuplc_admdvs")
  76. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  77. secret_key := c.GetString("secret_key")
  78. id_card_type, _ := c.GetInt64("id_card_type")
  79. url := c.GetString("url")
  80. ak := c.GetString("ak")
  81. doctor_name := c.GetString("doctor_name")
  82. result, request_log := service.Jsyb2201(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, doctor_name, url, ak, verify_number)
  83. fmt.Println(result)
  84. fmt.Println(request_log)
  85. var dat map[string]interface{}
  86. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  87. } else {
  88. }
  89. var dat2 map[string]interface{}
  90. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  91. } else {
  92. }
  93. c.ServeSuccessJSON(map[string]interface{}{
  94. "pre": dat,
  95. "request_log": dat2,
  96. })
  97. }
  98. func (c *JSybController) PostThree() {
  99. psnNo := c.GetString("psn_no")
  100. mdtrtId := c.GetString("mdtrt_id")
  101. iptOtpNo := c.GetString("ipt_otp_no")
  102. org_name := c.GetString("org_name")
  103. doctor := c.GetString("doctor")
  104. insuplc_admdvs := c.GetString("insuplc_admdvs")
  105. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  106. secret_key := c.GetString("secret_key")
  107. fixmedins_code := c.GetString("fixmedins_code")
  108. url := c.GetString("url")
  109. ak := c.GetString("ak")
  110. result, request_log := service.Jsyb2202(psnNo, mdtrtId, iptOtpNo, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code, url, ak)
  111. var dat map[string]interface{}
  112. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  113. } else {
  114. }
  115. var dat2 map[string]interface{}
  116. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  117. } else {
  118. }
  119. c.ServeSuccessJSON(map[string]interface{}{
  120. "pre": dat,
  121. "request_log": dat2,
  122. })
  123. }
  124. func (c *JSybController) PostFour() {
  125. body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
  126. var respJSON map[string]interface{}
  127. if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
  128. utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
  129. return
  130. }
  131. userJSONBytes, _ := json.Marshal(respJSON["config"])
  132. var config []*models.HisXtDiagnoseConfig
  133. if err := json.Unmarshal(userJSONBytes, &config); err != nil {
  134. utils.ErrorLog("解析失败:%v", err)
  135. return
  136. }
  137. fmt.Println(respJSON["psn_no"].(string))
  138. fmt.Println(respJSON["mdtrt_id"].(string))
  139. psnNo := respJSON["psn_no"].(string)
  140. mdtrtId := respJSON["mdtrt_id"].(string)
  141. doctor := respJSON["doctor"].(string)
  142. department := respJSON["department"].(string)
  143. org_name := respJSON["org_name"].(string)
  144. med_type := respJSON["med_type"].(string)
  145. doctor_id := respJSON["doctor_id"].(string)
  146. fixmedins_code := respJSON["fixmedins_code"].(string)
  147. sick_code := respJSON["sick_code"].(string)
  148. sick_name := respJSON["sick_name"].(string)
  149. dept := respJSON["dept"].(string)
  150. insuplc_admdvs := respJSON["insuplc_admdvs"].(string)
  151. mdtrtarea_admvs := respJSON["mdtrtarea_admvs"].(string)
  152. secret_key := respJSON["secret_key"].(string)
  153. url := respJSON["url"].(string)
  154. ak := respJSON["ak"].(string)
  155. begin_time := respJSON["begin_time"].(string)
  156. result, request_log := service.Jsyb2203(psnNo, mdtrtId, doctor, department, org_name, med_type, doctor_id, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, sick_code, sick_name, dept, config, url, ak, begin_time)
  157. var dat2 map[string]interface{}
  158. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  159. } else {
  160. }
  161. var dat map[string]interface{}
  162. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  163. } else {
  164. }
  165. c.ServeSuccessJSON(map[string]interface{}{
  166. "pre": dat,
  167. "request_log": dat2,
  168. })
  169. }
  170. type All struct {
  171. HisPrescription HisPrescription
  172. mdtrt_id string
  173. psn_no string
  174. }
  175. type HisPrescription struct {
  176. ID int64 `gorm:"column:id" json:"id" form:"id"`
  177. UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
  178. RecordDate int64 `gorm:"column:record_date" json:"record_date" form:"record_date"`
  179. PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
  180. HisPatientId int64 `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
  181. Status int64 `gorm:"column:status" json:"status" form:"status"`
  182. Ctime int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
  183. Mtime int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
  184. Number string `gorm:"column:number" json:"number" form:"number"`
  185. Type int64 `gorm:"column:type" json:"type" form:"type"`
  186. Doctor int64 `gorm:"column:doctor" json:"doctor" form:"doctor"`
  187. Creator int64 `gorm:"column:creator" json:"creator" form:"creator"`
  188. Modifier int64 `gorm:"column:modifier" json:"modifier" form:"modifier"`
  189. HisDoctorAdviceInfo []*models.HisDoctorAdviceInfo `gorm:"ForeignKey:PatientId,RecordDate,PrescriptionId;AssociationForeignKey:PatientId,RecordDate,ID" json:"advices"`
  190. HisPrescriptionProject []*models.HisPrescriptionProject `gorm:"ForeignKey:PatientId,RecordDate,PrescriptionId;AssociationForeignKey:PatientId,RecordDate,ID" json:"project"`
  191. }
  192. func (c *JSybController) PostFive() {
  193. body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
  194. var respJSON map[string]interface{}
  195. if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
  196. utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
  197. return
  198. }
  199. userJSONBytes, _ := json.Marshal(respJSON["pre"])
  200. var hp []*models.HisPrescription
  201. if err := json.Unmarshal(userJSONBytes, &hp); err != nil {
  202. utils.ErrorLog("解析失败:%v", err)
  203. return
  204. }
  205. result, request_log := service.Jsyb2204(respJSON["psn_no"].(string), respJSON["mdtrt_id"].(string), hp, respJSON["chrg_bchno"].(string), respJSON["org_name"].(string),
  206. respJSON["doctor"].(string), respJSON["dept"].(string), respJSON["fixmedins_code"].(string), respJSON["dept_code"].(string), respJSON["doctor_id"].(string), respJSON["insuplc_admdvs"].(string), respJSON["mdtrtarea_admvs"].(string), respJSON["diag_code"].(string), respJSON["secret_key"].(string), respJSON["balance_accounts_type"].(string), respJSON["url"].(string), respJSON["ak"].(string), respJSON["new_doctor_name"].(string))
  207. var dat map[string]interface{}
  208. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  209. fmt.Println(dat)
  210. } else {
  211. fmt.Println(err)
  212. }
  213. var dat2 map[string]interface{}
  214. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  215. fmt.Println(dat2)
  216. } else {
  217. fmt.Println(err)
  218. }
  219. c.ServeSuccessJSON(map[string]interface{}{
  220. "pre": dat,
  221. "request_log": dat2,
  222. })
  223. }
  224. func (c *JSybController) PostSix() {
  225. psnNo := c.GetString("psn_no")
  226. mdtrtId := c.GetString("mdtrt_id")
  227. chrgBchno := c.GetString("chrg_bchno")
  228. org_name := c.GetString("org_name")
  229. doctor := c.GetString("doctor")
  230. insuplc_admdvs := c.GetString("insuplc_admdvs")
  231. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  232. secret_key := c.GetString("secret_key")
  233. fixmedins_code := c.GetString("fixmedins_code")
  234. url := c.GetString("url")
  235. ak := c.GetString("ak")
  236. result, request_log := service.Jsyb2205(psnNo, mdtrtId, chrgBchno, org_name, doctor, insuplc_admdvs, mdtrtarea_admvs, secret_key, fixmedins_code, url, ak)
  237. fmt.Println(request_log)
  238. var dat map[string]interface{}
  239. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  240. fmt.Println(dat)
  241. } else {
  242. fmt.Println(err)
  243. }
  244. var dat2 map[string]interface{}
  245. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  246. fmt.Println(dat2)
  247. } else {
  248. fmt.Println(err)
  249. }
  250. c.ServeSuccessJSON(map[string]interface{}{
  251. "pre": dat,
  252. "request_log": dat2,
  253. })
  254. }
  255. func (c *JSybController) PostSeven() {
  256. psnNo := c.GetString("psn_no")
  257. mdtrtId := c.GetString("mdtrt_id")
  258. chrgBchno := c.GetString("chrg_bchno")
  259. certNo := c.GetString("cert_no")
  260. insutype := c.GetString("insutype")
  261. total := c.GetString("total")
  262. org_name := c.GetString("org_name")
  263. doctor := c.GetString("doctor")
  264. fixmedins_code := c.GetString("fixmedins_code")
  265. insuplc_admdvs := c.GetString("insuplc_admdvs")
  266. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  267. secret_key := c.GetString("secret_key")
  268. med_type := c.GetString("med_type")
  269. id_card_type, _ := c.GetInt64("id_card_type")
  270. certificates, _ := c.GetInt64("certificates")
  271. verify_number := c.GetString("verify_number")
  272. url := c.GetString("url")
  273. ak := c.GetString("ak")
  274. result, request_log := service.Jsyb2206(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, 0, 0, 0, 0, certificates, url, ak, verify_number)
  275. fmt.Println(request_log)
  276. var dat map[string]interface{}
  277. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  278. fmt.Println(dat)
  279. } else {
  280. fmt.Println(err)
  281. }
  282. var dat2 map[string]interface{}
  283. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  284. fmt.Println(dat2)
  285. } else {
  286. fmt.Println(err)
  287. }
  288. c.ServeSuccessJSON(map[string]interface{}{
  289. "pre": dat,
  290. "request_log": dat2,
  291. })
  292. }
  293. func (c *JSybController) PostEight() {
  294. psnNo := c.GetString("psn_no")
  295. mdtrtId := c.GetString("mdtrt_id")
  296. chrgBchno := c.GetString("chrg_bchno")
  297. certNo := c.GetString("cert_no")
  298. insutype := c.GetString("insutype")
  299. total := c.GetString("total")
  300. org_name := c.GetString("org_name")
  301. doctor := c.GetString("doctor")
  302. fixmedins_code := c.GetString("fixmedins_code")
  303. insuplc_admdvs := c.GetString("insuplc_admdvs")
  304. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  305. secret_key := c.GetString("secret_key")
  306. med_type := c.GetString("med_type")
  307. id_card_type, _ := c.GetInt64("id_card_type")
  308. certificates, _ := c.GetInt64("certificates")
  309. fulamt_ownpay_amt, _ := c.GetFloat("fulamt_ownpay_amt")
  310. overlmt_selfpay, _ := c.GetFloat("overlmt_selfpay")
  311. preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
  312. inscp_scp_amt, _ := c.GetFloat("inscp_scp_amt")
  313. acct_used_flag := c.GetString("acct_used_flag")
  314. url := c.GetString("url")
  315. ak := c.GetString("ak")
  316. verify_number := c.GetString("verify_number")
  317. result, request_log := service.Jsyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, certificates, acct_used_flag, url, ak, verify_number)
  318. var dat map[string]interface{}
  319. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  320. fmt.Println(dat)
  321. } else {
  322. fmt.Println(err)
  323. }
  324. var dat2 map[string]interface{}
  325. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  326. fmt.Println(dat2)
  327. } else {
  328. fmt.Println(err)
  329. }
  330. c.ServeSuccessJSON(map[string]interface{}{
  331. "pre": dat,
  332. "request_log": dat2,
  333. })
  334. }
  335. func (c *JSybController) PostNine() {
  336. psnNo := c.GetString("psn_no")
  337. mdtrtId := c.GetString("mdtrt_id")
  338. setlId := c.GetString("setl_id")
  339. org_name := c.GetString("org_name")
  340. doctor := c.GetString("doctor")
  341. secret_key := c.GetString("secret_key")
  342. fixmedins_code := c.GetString("fixmedins_code")
  343. insuplc_admdvs := c.GetString("insuplc_admdvs")
  344. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  345. url := c.GetString("url")
  346. ak := c.GetString("ak")
  347. result, request_log := service.Jsyb2208(psnNo, mdtrtId, setlId, org_name, doctor, secret_key, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, url, ak)
  348. fmt.Println(request_log)
  349. var dat map[string]interface{}
  350. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  351. fmt.Println(dat)
  352. } else {
  353. fmt.Println(err)
  354. }
  355. var dat2 map[string]interface{}
  356. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  357. fmt.Println(dat2)
  358. } else {
  359. fmt.Println(err)
  360. }
  361. c.ServeSuccessJSON(map[string]interface{}{
  362. "pre": dat,
  363. "request_log": dat2,
  364. })
  365. }
  366. func (c *JSybController) PostTen() {
  367. psnNo := c.GetString("psn_no")
  368. mdtrtId := c.GetString("mdtrt_id")
  369. setlId := c.GetString("setl_id")
  370. org_name := c.GetString("org_name")
  371. doctor := c.GetString("doctor")
  372. secret_key := c.GetString("secret_key")
  373. fixmedins_code := c.GetString("fixmedins_code")
  374. insuplc_admdvs := c.GetString("insuplc_admdvs")
  375. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  376. url := c.GetString("url")
  377. ak := c.GetString("ak")
  378. baseParams := models.BaseParams{
  379. SecretKey: secret_key,
  380. FixmedinsCode: fixmedins_code,
  381. InsuplcAdmdvs: insuplc_admdvs,
  382. MdtrtareaAdmvs: mdtrtarea_admvs,
  383. OrgName: org_name,
  384. Doctor: doctor,
  385. RequestUrl: url,
  386. AccessKey: ak,
  387. }
  388. businessParams := models.BusinessParams{
  389. PsnNo: psnNo,
  390. MdtrtId: mdtrtId,
  391. SetlId: setlId,
  392. }
  393. result, request_log := service.Jsyb5203(baseParams, businessParams)
  394. var dat map[string]interface{}
  395. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  396. fmt.Println(dat)
  397. } else {
  398. fmt.Println(err)
  399. }
  400. var dat2 map[string]interface{}
  401. if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
  402. fmt.Println(dat2)
  403. } else {
  404. fmt.Println(err)
  405. }
  406. c.ServeSuccessJSON(map[string]interface{}{
  407. "pre": dat,
  408. "request_log": dat2,
  409. })
  410. }
  411. func (c *JSybController) ReadCard() {
  412. fixmedins_code := c.GetString("fixmedins_code")
  413. secret_key := c.GetString("secret_key")
  414. ak := c.GetString("ak")
  415. org_name := c.GetString("org_name")
  416. doctor := c.GetString("doctor")
  417. insuplc_admdvs := c.GetString("insuplc_admdvs")
  418. mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
  419. url := c.GetString("url")
  420. c.TestGetBasBaseInit(fixmedins_code, secret_key, ak)
  421. pCardInfo, pBusiCardInfo := c.GetBasBaseInfo()
  422. pBusiCardInfo = Remove0000(pBusiCardInfo)
  423. pCardInfo = Remove0000(pCardInfo)
  424. fmt.Println(":", ConvertToString(pCardInfo, "gbk", "utf-8"))
  425. fmt.Println(pBusiCardInfo)
  426. fmt.Println(pCardInfo)
  427. bas := strings.Split(pCardInfo, "|")
  428. basNumber := bas[2]
  429. id_card_no := bas[1]
  430. card_sn := bas[3]
  431. if len(pCardInfo) > 0 && len(pBusiCardInfo) > 0 {
  432. result, _ := service.Jsyb1101A(basNumber, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, 1, card_sn, "1", url, ak, pBusiCardInfo, id_card_no)
  433. var dat map[string]interface{}
  434. if err := json.Unmarshal([]byte(result), &dat); err == nil {
  435. fmt.Println(dat)
  436. } else {
  437. fmt.Println(err)
  438. }
  439. c.ServeSuccessJSON(map[string]interface{}{
  440. "status": "0",
  441. "card_info": pCardInfo,
  442. "busi_card_info": pBusiCardInfo,
  443. "result": dat,
  444. })
  445. } else {
  446. c.ServeSuccessJSON(map[string]interface{}{
  447. "status": "-1",
  448. })
  449. }
  450. }
  451. func (c *JSybController) TestGetBasBaseInit(code string, secret_key string, ak string) {
  452. DllDef := syscall.MustLoadDLL("HeaSecReadInfo.dll")
  453. Iinit := DllDef.MustFindProc("Init")
  454. //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
  455. str := make([]byte, 2048)
  456. inputData := make(map[string]interface{})
  457. inputData["IP"] = "10.72.3.87"
  458. inputData["PORT"] = "8086"
  459. inputData["TIMEOUT"] = "180"
  460. inputData["LOG_PATH"] = "C:\\log\\"
  461. inputData["EC_URL"] = "http://10.72.42.210:10081/localcfc/api/hsecfc/localQrCodeQuery"
  462. inputData["CARD_PASSTYPE"] = "1"
  463. inputData["API_NAME"] = "hssServives"
  464. inputData["API_VERSION"] = "1.0.0"
  465. inputData["ACCESS_KEY"] = ak
  466. inputData["SECRETKEY"] = secret_key
  467. inputData["ORG_ID"] = code
  468. inputData["EXT"] = ""
  469. bytesData, _ := json.Marshal(inputData)
  470. fmt.Println(inputData)
  471. fmt.Println(bytesData)
  472. ret, _, err := Iinit.Call((uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str[0])))
  473. if ret != 0 {
  474. fmt.Println("SSCard的报错原因:", err)
  475. fmt.Println("SSCard的运算结果为:", ret)
  476. fmt.Println("SSCard的返回结果为:", string(str))
  477. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
  478. return
  479. }
  480. fmt.Println("SSCard的返回结果为:", string(str))
  481. result := int(ret)
  482. fmt.Println("SSCard的运算结果为1:", result)
  483. //initFlag = 1
  484. return
  485. }
  486. func (c *JSybController) GetBasBaseInfo() (string, string) {
  487. DllDef := syscall.MustLoadDLL("HeaSecReadInfo.dll")
  488. readCard := DllDef.MustFindProc("ReadCardBas")
  489. fmt.Println(readCard)
  490. fmt.Println("!!!!!")
  491. pCardInfo := make([]byte, 2048)
  492. pBusiCardInfo := make([]byte, 8192)
  493. ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&pCardInfo[0])), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0])))
  494. fmt.Println(ret2)
  495. fmt.Println(DeleteExtraSpace(string(pCardInfo)))
  496. fmt.Println(DeleteExtraSpace(string(pBusiCardInfo)))
  497. fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pCardInfo)), "gbk", "utf-8"))
  498. fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8"))
  499. if ret2 != 0 {
  500. return "", ""
  501. }
  502. return DeleteExtraSpace(string(pCardInfo)), DeleteExtraSpace(string(pBusiCardInfo))
  503. }
  504. func IntPtr(n int) uintptr {
  505. return uintptr(n)
  506. }
  507. func StrPtr(s string) uintptr {
  508. return uintptr(unsafe.Pointer(syscall.StringBytePtr(s)))
  509. }
  510. type Charset string
  511. const (
  512. UTF8 = Charset("UTF-8")
  513. GB18030 = Charset("GB18030")
  514. )
  515. func ConvertToString(src string, srcCode string, tagCode string) string {
  516. srcCoder := mahonia.NewDecoder(srcCode)
  517. srcResult := srcCoder.ConvertString(src)
  518. tagCoder := mahonia.NewDecoder(tagCode)
  519. _, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
  520. result := string(cdata)
  521. return result
  522. }
  523. func DeleteExtraSpace(s string) string {
  524. //删除字符串中的多余空格,有多个空格时,仅保留一个空格
  525. s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格
  526. regstr := "\\s{2,}" //两个及两个以上空格的正则表达式
  527. reg, _ := regexp.Compile(regstr) //编译正则表达式
  528. s2 := make([]byte, len(s1)) //定义字符数组切片
  529. copy(s2, s1) //将字符串复制到切片
  530. spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索
  531. for len(spc_index) > 0 { //找到适配项
  532. s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格
  533. spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索
  534. }
  535. return string(s2)
  536. }
  537. func Remove0000(s string) string {
  538. str := make([]rune, 0, len(s))
  539. for _, v := range []rune(s) {
  540. if v == 0 {
  541. continue
  542. }
  543. str = append(str, v)
  544. }
  545. return string(str)
  546. }