智盟项目
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

166 строки
5.3 KiB

  1. package svc
  2. import (
  3. offical "applet/app/db/official"
  4. md2 "applet/app/es/md"
  5. "applet/app/task/md"
  6. "applet/app/utils"
  7. "applet/app/utils/cache"
  8. "code.fnuoos.com/go_rely_warehouse/zyos_go_es.git/es"
  9. "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/tik_tok"
  10. zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils"
  11. "encoding/json"
  12. "fmt"
  13. "github.com/jinzhu/copier"
  14. "github.com/tidwall/gjson"
  15. "strings"
  16. "time"
  17. )
  18. func TikTokTask() {
  19. //doc, _ := es.FirstDoc(md2.ZhiosTikTokTaskEsIndex, "tik_tok_task_tt99fdef4006c36ff001")
  20. //fmt.Println(string(doc.Source))
  21. //return
  22. //es.CreateIndexIfNotExists(md2.ZhiosTikTokTaskEsIndex, md2.ZhiosTikTokTaskEsMapping)
  23. //es.CreateIndexIfNotExists(md2.ZhiosTikTokTaskDetailEsIndex, md2.ZhiosTikTokTaskDetailEsMapping)
  24. appidList := offical.MasterListCfgGetOneData("0", "tik_tok_task_appid")
  25. split := strings.Split(appidList, ";")
  26. for _, v := range split {
  27. appidTime := offical.MasterListCfgGetOneData("0", "tik_tok_task_appid_time_"+v)
  28. if appidTime == "" {
  29. appidTime = utils.Int64ToStr(time.Now().Unix())
  30. }
  31. startTime := utils.StrToInt64(appidTime)
  32. endTime := startTime + 7*86400
  33. if endTime > time.Now().Unix() {
  34. endTime = time.Now().Unix()
  35. }
  36. param := map[string]interface{}{
  37. "appid": v,
  38. "create_start_time": startTime,
  39. "create_end_time": endTime,
  40. }
  41. api, _ := tik_tok.TaskApi("query_app_task_id/", TikTokTaskToken(), zhios_third_party_utils.SerializeStr(param))
  42. taskIds := gjson.Get(api, "data.task_ids").String()
  43. fmt.Println(taskIds)
  44. if taskIds == "" || taskIds == "[]" {
  45. fmt.Println(endTime)
  46. offical.MasterListCfgSave("0", "tik_tok_task_appid_time_"+v, utils.Int64ToStr(endTime))
  47. continue
  48. }
  49. commAddTask("tik_tok_task_"+v, taskIds)
  50. var tmp = make([]int64, 0)
  51. json.Unmarshal([]byte(taskIds), &tmp)
  52. getTaskDetail(v, tmp)
  53. fmt.Println(endTime)
  54. offical.MasterListCfgSave("0", "tik_tok_task_appid_time_"+v, utils.Int64ToStr(endTime))
  55. }
  56. }
  57. func getTaskDetail(appId string, tmp []int64) {
  58. for _, v := range tmp {
  59. param := map[string]interface{}{
  60. "appid": appId,
  61. "query_params_type": "1",
  62. "query_params_content": utils.Int64ToStr(v),
  63. "page_no": "1",
  64. "page_size": "10",
  65. }
  66. api, _ := tik_tok.TaskApi("query_task_info/", TikTokTaskToken(), zhios_third_party_utils.SerializeStr(param))
  67. detail := gjson.Get(api, "data.tasks").String()
  68. if detail == "" {
  69. fmt.Println("失败", v)
  70. continue
  71. }
  72. var tmpDetail = make([]md.TikTokTaskDetail, 0)
  73. json.Unmarshal([]byte(detail), &tmpDetail)
  74. for _, v1 := range tmpDetail {
  75. var tmpIn md.TikTokTaskDetailSecond
  76. err := copier.Copy(&tmpIn, &v1)
  77. fmt.Println(err)
  78. tmpIn.OrientedTalentRelList = utils.SerializeStr(v1.OrientedTalentRelList)
  79. tmpIn.ReferMaCaptures = utils.SerializeStr(v1.ReferMaCaptures)
  80. tmpIn.TaskTags = utils.SerializeStr(v1.TaskTags)
  81. tmpIn.ReferVideoCaptures = utils.SerializeStr(v1.ReferVideoCaptures)
  82. ex := strings.Split(tmpIn.StartPage, "bookId=")
  83. if len(ex) > 1 {
  84. exSecond := strings.Split(ex[1], "&")
  85. tmpIn.VideoId = exSecond[0]
  86. }
  87. if tmpIn.VideoId == "" {
  88. fmt.Println("失败", tmpIn)
  89. continue
  90. }
  91. commAddTaskDetail(utils.Int64ToStr(tmpIn.TaskId), tmpIn)
  92. }
  93. }
  94. }
  95. func commAddTask(uniqueId string, taskIds string) {
  96. doc, _ := es.FirstDoc(md2.ZhiosTikTokTaskEsIndex, uniqueId)
  97. if doc == nil {
  98. var tmpData = map[string]string{
  99. "task_ids": taskIds,
  100. }
  101. createDocRet, err := es.CreateDoc(md2.ZhiosTikTokTaskEsIndex, uniqueId, tmpData)
  102. if err != nil {
  103. return
  104. }
  105. fmt.Printf("CreateDoc ==> %+v \n\n", createDocRet)
  106. } else {
  107. source := doc.Source
  108. tmpData := make(map[string]string)
  109. json.Unmarshal(source, &tmpData)
  110. var tmpOld = make([]int64, 0)
  111. json.Unmarshal([]byte(tmpData["task_ids"]), &tmpOld)
  112. var tmp = make([]int64, 0)
  113. json.Unmarshal([]byte(taskIds), &tmp)
  114. tmp = utils.MergeArr(tmpOld, tmp)
  115. tmp = utils.UniqueArr(tmp)
  116. tmpData = map[string]string{
  117. "task_ids": utils.SerializeStr(tmp),
  118. }
  119. createDocRet, err := es.UpdateDoc(md2.ZhiosTikTokTaskEsIndex, uniqueId, tmpData)
  120. if err != nil {
  121. return
  122. }
  123. fmt.Printf("CreateDoc ==> %+v \n\n", createDocRet)
  124. }
  125. }
  126. func commAddTaskDetail(uniqueId string, tmp md.TikTokTaskDetailSecond) {
  127. doc, _ := es.FirstDoc(md2.ZhiosTikTokTaskDetailEsIndex, uniqueId)
  128. if doc == nil {
  129. createDocRet, err := es.CreateDoc(md2.ZhiosTikTokTaskDetailEsIndex, uniqueId, tmp)
  130. if err != nil {
  131. return
  132. }
  133. fmt.Printf("CreateDoc ==> %+v \n\n", createDocRet)
  134. } else {
  135. createDocRet, err := es.UpdateDoc(md2.ZhiosTikTokTaskDetailEsIndex, uniqueId, tmp)
  136. if err != nil {
  137. return
  138. }
  139. fmt.Printf("CreateDoc ==> %+v \n\n", createDocRet)
  140. }
  141. }
  142. func TikTokTaskToken() string {
  143. tikTokOpenAppkey := offical.MasterListCfgGetOneData("0", "tik_tok_task_open_appkey")
  144. tikTokOpenAppSecret := offical.MasterListCfgGetOneData("0", "tik_tok_task_open_app_secret")
  145. args := map[string]string{
  146. "appkey": tikTokOpenAppkey,
  147. "appSecret": tikTokOpenAppSecret,
  148. }
  149. key := "tikTok_client_" + args["appkey"]
  150. tokeStr, err := cache.GetString(key)
  151. if tokeStr == "" || err != nil {
  152. token := tik_tok.GetClientToken(args)
  153. if token["tik_tok_acc_token"] != "" {
  154. tokeStr = token["tik_tok_acc_token"]
  155. cache.SetEx(key, token["tik_tok_acc_token"], utils.StrToInt(token["expires_in"]))
  156. }
  157. }
  158. return tokeStr
  159. }