server.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package main
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "io/ioutil"
  7. qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  8. "net/http"
  9. "reflect"
  10. )
  11. const HREF = "http://127.0.0.1:8091/%s"
  12. type UserInfo struct {
  13. ID string `json:"_id"`
  14. Username string `json:"s_name"`
  15. Fullname string `json:"s_fullname"`
  16. Email string `json:"s_email"`
  17. Auth int `json:"i_auth"`
  18. Scope int `json:"i_scope"`
  19. identity int `json:"i_identity"`
  20. Ids []string `json:"ids"`
  21. }
  22. var (
  23. //User map[string]interface{} //user对象
  24. User *UserInfo //user对象
  25. )
  26. // ServerActionUserLogin 登录
  27. func (a *App) ServerActionUserLogin(param map[string]interface{}) map[string]interface{} {
  28. qu.Debug("param---", param)
  29. User = &UserInfo{}
  30. //User = map[string]interface{}{}
  31. GetResult(User, param, "login")
  32. qu.Debug("user:", *User)
  33. return map[string]interface{}{
  34. "msg": "",
  35. "err": 0,
  36. "data": User,
  37. }
  38. }
  39. // ServerActionCheckLogin 检查是否登录
  40. func (a *App) ServerActionCheckLogin() map[string]interface{} {
  41. return map[string]interface{}{
  42. "msg": "",
  43. "err": 0,
  44. "data": User,
  45. }
  46. }
  47. // ServerActionCodeList 获取爬虫列表
  48. func (a *App) ServerActionCodeList(param map[string]interface{}) map[string]interface{} {
  49. qu.Debug("param---", param)
  50. data := map[string]interface{}{}
  51. var msg string
  52. var err int
  53. if User != nil {
  54. v := reflect.ValueOf(User)
  55. t := v.Type()
  56. for i := 0; i < v.NumField(); i++ {
  57. field := t.Field(i).Tag.Get("json")
  58. value := v.Field(i).Interface()
  59. param[field] = value
  60. }
  61. qu.Debug("param---", param)
  62. GetResult(data, param, "getcodes")
  63. } else {
  64. msg = "用户登录异常,请重新登录!"
  65. err = 1
  66. qu.Debug(msg)
  67. }
  68. return map[string]interface{}{
  69. "msg": msg,
  70. "err": err,
  71. "data": data,
  72. }
  73. }
  74. // ServerActionGetModifyUsers 获取爬虫开发人员列表
  75. func (a *App) ServerActionGetModifyUsers() map[string]interface{} {
  76. data := map[string]interface{}{}
  77. GetResult(data, nil, "getmodifyusers")
  78. return map[string]interface{}{
  79. "msg": "",
  80. "err": 0,
  81. "data": data,
  82. }
  83. }
  84. // ServerActionClaimCodes 爬虫认领
  85. func (a *App) ServerActionClaimCodes() map[string]interface{} {
  86. msg := "认领失败!"
  87. err := 1
  88. data := map[string]interface{}{}
  89. if User.Auth == 0 {
  90. GetResult(data, nil, "claimcode")
  91. if tmpMsg := data["msg"]; tmpMsg != nil {
  92. msg = qu.ObjToString(tmpMsg)
  93. err = 0
  94. }
  95. }
  96. return map[string]interface{}{
  97. "msg": msg,
  98. "err": err,
  99. "data": data,
  100. }
  101. }
  102. func GetResult(result interface{}, param map[string]interface{}, route string) {
  103. jsonData, err := json.Marshal(param)
  104. if err != nil {
  105. fmt.Println("Error marshaling request:", err)
  106. return
  107. }
  108. req, err := http.NewRequest("POST", fmt.Sprintf(HREF, route), bytes.NewBuffer(jsonData))
  109. if err != nil {
  110. fmt.Println("Error creating request:", err)
  111. return
  112. }
  113. // 设置请求头
  114. req.Header.Set("Content-Type", "application/json")
  115. // 发送请求
  116. client := &http.Client{}
  117. resp, err := client.Do(req)
  118. if err != nil {
  119. fmt.Println("Error sending request:", err)
  120. return
  121. }
  122. defer resp.Body.Close()
  123. // 读取响应体
  124. body, err := ioutil.ReadAll(resp.Body)
  125. if err != nil {
  126. fmt.Println("Error reading response body:", err)
  127. return
  128. }
  129. if err := json.Unmarshal(body, &result); err != nil {
  130. fmt.Println("Error unmarshaling response:", err)
  131. return
  132. }
  133. }