123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- 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 ""
- }
- }
|