package youngee_talent_service import ( "fmt" "github.com/gogf/gf/encoding/gjson" "io/ioutil" "net/http" "net/url" "youngmini_server/app/dao" "youngmini_server/app/model/youngee_talent_model" "youngmini_server/app/utils" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" ) func GetTalentAccount(r *ghttp.Request) *TalentHttpResult { //达人id获取 tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) //定义除了youngee_platform_account_info表结构外额外还有info_third_platform的结构体(用表连接) if err != nil { return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"} } //查找给定达人id之后,该达人绑定了几个平台的账号 res, err := g.DB().Model("youngee_platform_account_info").All("talent_id", tid) fmt.Println("该账号社媒平台绑定结果为__________:", res) if err != nil { return &TalentHttpResult{Code: -2, Msg: "query database error"} } if res == nil { return &TalentHttpResult{Code: -3, Msg: "未绑定任何平台"} } return &TalentHttpResult{Code: 0, Msg: "success", Data: res} } func GetTalentAccountKuaishou(r *ghttp.Request) *TalentHttpResult { //达人id获取 tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) if err != nil { return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"} } //查找给定达人id之后,该达人绑定了几个平台的账号 res, err := g.DB().Model("platform_kuaishou_user_info").All("talent_id", tid) if err != nil { return &TalentHttpResult{Code: -2, Msg: "query database error"} } if res == nil { return &TalentHttpResult{Code: -3, Msg: "未绑定任何平台"} } return &TalentHttpResult{Code: 0, Msg: "success", Data: res} } func OnAddTalentAccount(r *ghttp.Request) *TalentHttpResult { tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) if err != nil { return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"} } account := youngee_talent_model.AddAccountReq{} //account := youngee_talent_model.KuaishouUserInfo{} err = r.ParseForm(&account) if err != nil { return &TalentHttpResult{Code: -2, Msg: err.Error()} } //获取 基本信息,头像昵称、粉丝数、作品数目、点赞数 //小红书 if account.PlatformId == 1 { //获取匿名cookie cookie := getXHSCookie() if cookie == "" { return &TalentHttpResult{Code: -1, Msg: "小红书cookie获取失败"} } //获取用户唯一标识 shareText := account.HomePageUrl parsedURL, err := url.Parse(shareText) if err != nil { fmt.Println("Error parsing URL:", err) } queryParams := parsedURL.Query() appuid := queryParams.Get("appuid") if appuid != "" { fmt.Println("appuid:", appuid) } else { fmt.Println("AppUID not found") } //获取用户基本信息 //插入平台表 } else { // 插入达人账号信息 _, err = g.Model("platform_kuaishou_user_info").Insert(account) if err != nil { return &TalentHttpResult{Code: -2, Msg: err.Error()} } // 修改talent表字段is_bind_account值为1 _, err = g.Model(dao.YoungeeTalentInfo.Table).Data("is_bind_account=1").Where("id", tid).Update() if err != nil { return &TalentHttpResult{Code: -2, Msg: err.Error()} } return &TalentHttpResult{Code: 0, Msg: "success"} } return &TalentHttpResult{Code: 0, Msg: "success"} } func OnUpdateTalentAccount(r *ghttp.Request) *TalentHttpResult { //tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r) //if err != nil { // return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"} //} //account := youngee_talent_model.PlatformAccountInfo{} //err = r.ParseForm(&account) //if err != nil { // return &TalentHttpResult{Code: -2, Msg: err.Error()} //} //account.TalentId = tid //_, err = g.DB().Model(dao.YoungeePlatformAccountInfo.Table).Update(account, "account_id = ? and talent_id = ?", account.AccountId, tid) //if err != nil { // return &TalentHttpResult{Code: -3, Msg: "update failed"} //} return &TalentHttpResult{Code: 0, Msg: "success"} } func getXHSCookie() string { // 请求的 URL url := "http://120.46.92.62:6888/api/xhs/any_account" // 创建 POST 请求(无请求体) resp, err := http.Post(url, "application/json", nil) if err != nil { fmt.Println("Error sending POST request:", err) return "" } defer resp.Body.Close() // 读取响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading response body:", err) return "" } // 解析 JSON 响应 jsonData, err := gjson.LoadContent(string(body)) if err != nil { fmt.Println("Error parsing JSON:", err) return "" } // 提取 `cookie` 字段的值 cookie := jsonData.GetString("data.response_body.data.cookie") if cookie != "" { return cookie } else { return "" } }