mcs.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package routers
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/liyue201/goqr"
  6. "github.com/nfnt/resize"
  7. "image"
  8. "io/ioutil"
  9. "kpt.xdmy/apiserver/model"
  10. "kpt.xdmy/apiserver/model/http"
  11. )
  12. func McsControl(c *gin.Context) {
  13. mpd := new(model.McsPostDataReq)
  14. if !Bind(c, mpd) {
  15. return
  16. }
  17. resp, err := svc.McsPostHttp(mpd)
  18. eJSON(c, resp, err)
  19. }
  20. func McsAccounts(c *gin.Context) {
  21. sa := []model.McsAccount{
  22. {
  23. DeviceId: "apptest2",
  24. UserID: "PC",
  25. Password: "mcs8",
  26. },
  27. }
  28. resp := &http.Response{
  29. Code: 200,
  30. Data: sa,
  31. }
  32. eJSON(c, resp, nil)
  33. }
  34. //QuickResponse
  35. func QuickResponse(c *gin.Context) {
  36. file, err := c.FormFile("file")
  37. if err != nil {
  38. c.JSON(500, map[string]interface{}{"code": 500, "data": err, "msg": "文件读取错误!"})
  39. return
  40. }
  41. f, err := file.Open()
  42. if err != nil {
  43. c.JSON(500, map[string]interface{}{"code": 500, "data": err, "msg": "文件打开错误!"})
  44. return
  45. }
  46. fmt.Println(file.Filename, file.Size)
  47. img, _, _ := image.Decode(f)
  48. resizeImg := resize.Resize(260, 260, img, resize.Lanczos2)
  49. fmt.Println(file.Filename, file.Size)
  50. qrCodes, err := goqr.Recognize(resizeImg)
  51. if err != nil {
  52. fmt.Printf("Recognize failed: %v\n", err)
  53. return
  54. }
  55. if len(qrCodes) <= 0 {
  56. fmt.Printf("识别失败")
  57. return
  58. }
  59. fmt.Println(string(qrCodes[0].Payload))
  60. c.JSON(200, map[string]interface{}{"code": 200, "data": string(qrCodes[0].Payload), "msg": "ok"})
  61. }
  62. func Test(c *gin.Context) {
  63. dataByte, _ := ioutil.ReadAll(c.Request.Body)
  64. fmt.Println(string(dataByte))
  65. c.JSON(200, map[string]interface{}{"code": 200, "data": string(dataByte), "msg": "ok"})
  66. }
  67. type DingdingT struct {
  68. MsgSignature string `json:"msg_signature"`
  69. TimeStamp string `json:"timeStamp"`
  70. Nonce string `json:"nonce"`
  71. Encrypt string `json:"encrypt"`
  72. }
  73. //func Dingding(c *gin.Context) {
  74. // dataByte, _ := ioutil.ReadAll(c.Request.Body)
  75. // fmt.Println(string(dataByte))
  76. // fsion := gofasion.NewFasion(string(dataByte))
  77. //
  78. // resp := new(DingdingT)
  79. // resp.Encrypt = fsion.Get("encrypt").ValueStr()
  80. // resp.Nonce = c.Query("nonce")
  81. // resp.TimeStamp = c.Query("timestamp")
  82. // resp.MsgSignature = c.Query("signature")
  83. //
  84. // //dingding.
  85. // //c.JSON(200, []byte("success"))
  86. // //body, err := c.GetRawData()
  87. // //if err != nil {
  88. // // panic(err)
  89. // //}
  90. // //
  91. // //// 调用 CallbackParse 函数解析回调事件
  92. // //event, err := dingding.CallbackParse(body, "token", "aes_key")
  93. // //if err != nil {
  94. // // panic(err)
  95. // //}
  96. // //
  97. // //// 根据事件类型执行相应的业务逻辑
  98. // //switch event.Type {
  99. // //case "user_add_org":
  100. // // // 处理用户加入企业事件
  101. // // // ...
  102. // //case "bpms_task_change":
  103. // // // 处理审批任务变更事件
  104. // // // ...
  105. // //default:
  106. // // // 其他类型事件,忽略
  107. // //}
  108. // //:= dingding.NewCrypto()
  109. // // 返回成功响应
  110. // //dingding.Crypto{
  111. // // Token: setting.ServerSetting.DingTalkToken,
  112. // // EncodingAESKey:setting.ServerSetting.DingTalkEncodingAESKey,
  113. // // SuiteKey:""
  114. // //}
  115. // d, _ := json.Marshal(resp)
  116. // c.String(200, string(d))
  117. // //c.JSON(200, resp)
  118. //}