123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package main
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
- "net/http"
- "reflect"
- "time"
- )
- const HREF = "http://127.0.0.1:8091/%s"
- type Result struct {
- Msg string `json:"msg"`
- Err int `json:"err"`
- Data *Data `json:"data"`
- }
- type Data struct {
- List []map[string]interface{} `json:"list"`
- Total int `json:"total"`
- }
- // ServerActionCodeList 获取爬虫列表
- func (a *App) ServerActionCodeList(param map[string]interface{}) *Result {
- qu.Debug("param---", param)
- data := &Result{}
- if User != nil {
- formatUser(param)
- qu.Debug("param---", param)
- getResult(param, data, "getcodes")
- } else {
- data.Msg = "用户登录异常,请重新登录!"
- qu.Debug(data.Msg)
- }
- return data
- }
- // ServerActionGetModifyUsers 获取爬虫开发人员列表
- func (a *App) ServerActionGetModifyUsers() *Result {
- data := &Result{}
- if User != nil && User.Auth > 1 { //禁止开发查询
- getResult(nil, data, "getmodifyusers")
- if len(User.Ids) > 0 && User.Identity == 0 { //外包审核员或管理员只能查看外包开发人员信息
- resultUsers := []map[string]interface{}{}
- for _, user := range data.Data.List {
- userid := qu.ObjToString(user["_id"])
- for _, id := range User.Ids {
- if userid == id {
- resultUsers = append(resultUsers, user)
- break
- }
- }
- }
- data.Data.List = resultUsers
- data.Data.Total = len(resultUsers)
- }
- } else {
- data.Msg = "查询开发列表失败,权限不够!"
- }
- return data
- }
- // ServerActionClaimCodes 爬虫认领
- func (a *App) ServerActionClaimCodes() *Result {
- data := &Result{}
- if User.Auth == 1 {
- param := map[string]interface{}{}
- formatUser(param)
- getResult(data, param, "claimcode")
- } else {
- data.Msg = "认领失败!"
- }
- return data
- }
- // ServerActionUpdateCode 爬虫更新
- func (a *App) ServerActionUpdateCode(param map[string]interface{}) *Result {
- qu.Debug("param---", param)
- data := &Result{}
- getResult(param, data, "updatecode")
- qu.Debug(*data)
- return data
- }
- // 格式化User对象
- func formatUser(tmp map[string]interface{}) {
- v := reflect.ValueOf(User)
- if v.Kind() == reflect.Ptr {
- v = v.Elem()
- }
- t := v.Type()
- for i := 0; i < v.NumField(); i++ {
- field := t.Field(i).Tag.Get("json")
- value := v.Field(i).Interface()
- tmp[field] = value
- }
- }
- // 获取接口结果
- func getResult(param, result interface{}, route string) {
- jsonData, err := json.Marshal(param)
- if err != nil {
- qu.Debug("Error marshaling request:", err)
- return
- }
- req, err := http.NewRequest("POST", fmt.Sprintf(HREF, route), bytes.NewBuffer(jsonData))
- if err != nil {
- qu.Debug("Error creating request:", err)
- return
- }
- // 设置请求头
- req.Header.Set("Content-Type", "application/json")
- // 发送请求
- client := &http.Client{
- Timeout: 10 * time.Second,
- }
- resp, err := client.Do(req)
- if err != nil {
- qu.Debug("Error sending request:", err)
- return
- }
- defer resp.Body.Close()
- // 读取响应体
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- qu.Debug("Error reading response body:", err)
- return
- }
- if err := json.Unmarshal(body, &result); err != nil {
- qu.Debug("Error unmarshaling response:", err)
- return
- }
- qu.Debug(result)
- }
|