s_t_cooperate.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package service
  2. import (
  3. "context"
  4. "time"
  5. "youngee_b_api/db"
  6. "youngee_b_api/model/gorm_model"
  7. "youngee_b_api/model/http_model"
  8. )
  9. var STCooperate *stcooperate
  10. type stcooperate struct {
  11. }
  12. // CreateSTCooperate 创建或更新服务商-达人合作关系
  13. func (*stcooperate) CreateSTCooperate(ctx context.Context, supplierId int, TaskIds []string) error {
  14. // 1. 根据taskId取出对应的platform_user_id
  15. for _, taskId := range TaskIds {
  16. taskInfo, taskInfoErr := db.GetTaskByTaskId(ctx, taskId)
  17. if taskInfoErr != nil {
  18. return taskInfoErr
  19. }
  20. if taskInfo != nil {
  21. platformUserInfo, platformUserInfoErr := db.FindUserInfoByOpenId(ctx, taskInfo.OpenId)
  22. if platformUserInfoErr != nil {
  23. return platformUserInfoErr
  24. }
  25. if platformUserInfo != nil {
  26. // 根据platformUserId判断需要新增一条记录还是合作次数增加
  27. total, countErr := db.CountCooperateInfoBySupplierAndPlatform(ctx, supplierId, platformUserInfo.Id)
  28. if countErr != nil {
  29. return countErr
  30. }
  31. if total == 0 {
  32. // create
  33. var cooperateInfo *gorm_model.SupplierTalentCooperate
  34. cooperateInfo = &gorm_model.SupplierTalentCooperate{}
  35. cooperateInfo.SupplierId = supplierId
  36. cooperateInfo.CooperateNum = 1
  37. cooperateInfo.TalentID = taskInfo.TalentID
  38. cooperateInfo.TaskType = 1
  39. // cooperateInfo.ProjectTaskId = taskId
  40. cooperateInfo.Platform = platformUserInfo.PlatformId
  41. cooperateInfo.PlatformUserId = platformUserInfo.Id
  42. current := time.Now()
  43. cooperateInfo.CreateTime = &current
  44. createErr := db.CreateSTCooperateInfo(ctx, cooperateInfo)
  45. if createErr != nil {
  46. return createErr
  47. }
  48. } else {
  49. // +1
  50. plusErr := db.UpdateSTCooperateInfo(ctx, supplierId, platformUserInfo.Id)
  51. if plusErr != nil {
  52. return plusErr
  53. }
  54. }
  55. }
  56. }
  57. }
  58. return nil
  59. }
  60. // GetTalentListInfo 合作列表信息
  61. func (*stcooperate) GetTalentListInfo(ctx context.Context, request *http_model.TalentListRequest) (*http_model.TalentListData, error) {
  62. var talentListData *http_model.TalentListData
  63. talentListData = &http_model.TalentListData{}
  64. // 1. 查找信息
  65. talentListInfo, total, talentListInfoErr := db.GetSTCooperateInfo(ctx, request.SupplierId, request.Type, request.Platform, request.Nickname, request.PageSize, request.PageNum)
  66. if talentListInfoErr != nil {
  67. return nil, talentListInfoErr
  68. }
  69. if talentListInfo != nil {
  70. talentListData.Total = total
  71. for _, c := range talentListInfo {
  72. var cooperateData *http_model.SupplierTalentCooperateData
  73. cooperateData = &http_model.SupplierTalentCooperateData{}
  74. cooperateData.SupplierId = c.SupplierId
  75. cooperateData.CooperateID = c.CooperateID
  76. cooperateData.Platform = c.Platform
  77. cooperateData.CooperateNum = c.CooperateNum
  78. cooperateData.PlatformUserId = c.PlatformUserId
  79. // 查询平台信息
  80. platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, cooperateData.PlatformUserId)
  81. if platformUserErr != nil {
  82. return nil, platformUserErr
  83. }
  84. if platformUserInfo != nil {
  85. cooperateData.City = platformUserInfo.City
  86. cooperateData.Nickname = platformUserInfo.NickName
  87. cooperateData.HeadUrl = platformUserInfo.HeadUri
  88. cooperateData.Fans = platformUserInfo.Fan
  89. cooperateData.LikeNum = platformUserInfo.LikeNum
  90. cooperateData.CommitNum = 0
  91. cooperateData.CollectNum = 0
  92. }
  93. talentListData.TalentListInfo = append(talentListData.TalentListInfo, cooperateData)
  94. }
  95. }
  96. return talentListData, nil
  97. }
  98. // GetTalentInfo 达人信息
  99. func (*stcooperate) GetTalentInfo(ctx context.Context, request *http_model.TalentDataRequest) (*http_model.TalentData, error) {
  100. var cooperateData *http_model.TalentData
  101. cooperateData = &http_model.TalentData{}
  102. // 查询平台信息
  103. platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
  104. if platformUserErr != nil {
  105. return nil, platformUserErr
  106. }
  107. if platformUserInfo != nil {
  108. cooperateData.City = platformUserInfo.City
  109. cooperateData.Nickname = platformUserInfo.NickName
  110. cooperateData.HeadUrl = platformUserInfo.HeadUri
  111. cooperateData.Fans = platformUserInfo.Fan
  112. cooperateData.VoteNum = platformUserInfo.LikeNum
  113. cooperateData.Sale30Days = 0
  114. cooperateData.Sale60Days = 0
  115. cooperateData.Sale90Days = 0
  116. cooperateData.CommitNum = 0
  117. cooperateData.CollectNum = 0
  118. cooperateData.Skill = platformUserInfo.Skill
  119. cooperateData.Gender = platformUserInfo.Gender
  120. }
  121. return cooperateData, nil
  122. }
  123. // CountTalentTaskNum 统计达人任务数量
  124. func (*stcooperate) CountTalentTaskNum(ctx context.Context, request *http_model.TalentCooperateDataRequest) (*http_model.TalentCooperateData, error) {
  125. var cooperateData *http_model.TalentCooperateData
  126. cooperateData = &http_model.TalentCooperateData{}
  127. // 查询平台信息
  128. platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
  129. if platformUserErr != nil {
  130. return nil, platformUserErr
  131. }
  132. if platformUserInfo != nil {
  133. }
  134. return cooperateData, nil
  135. }
  136. // GetTalentProjectList 达人种草表现
  137. func (*stcooperate) GetTalentProjectList(ctx context.Context, request *http_model.TalentProjectListRequest) (*http_model.TalentProjectListData, error) {
  138. return nil, nil
  139. }
  140. // GetTalentLocalList 达人本地表现
  141. func (*stcooperate) GetTalentLocalList(ctx context.Context, request *http_model.TalentLocalListRequest) (*http_model.TalentLocalListData, error) {
  142. return nil, nil
  143. }