jsyb_controller.go 20KB

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