123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- package service
- import (
- "context"
- "time"
- "youngee_b_api/db"
- "youngee_b_api/model/gorm_model"
- "youngee_b_api/model/http_model"
- )
- var STCooperate *stcooperate
- type stcooperate struct {
- }
- // CreateSTCooperate 创建或更新服务商-达人合作关系
- func (*stcooperate) CreateSTCooperate(ctx context.Context, supplierId int, TaskIds []string) error {
- // 1. 根据taskId取出对应的platform_user_id
- for _, taskId := range TaskIds {
- taskInfo, taskInfoErr := db.GetTaskByTaskId(ctx, taskId)
- if taskInfoErr != nil {
- return taskInfoErr
- }
- if taskInfo != nil {
- platformUserInfo, platformUserInfoErr := db.FindUserInfoByOpenId(ctx, taskInfo.OpenId)
- if platformUserInfoErr != nil {
- return platformUserInfoErr
- }
- if platformUserInfo != nil {
- // 根据platformUserId判断需要新增一条记录还是合作次数增加
- total, countErr := db.CountCooperateInfoBySupplierAndPlatform(ctx, supplierId, platformUserInfo.Id, 1)
- if countErr != nil {
- return countErr
- }
- if total == 0 {
- // create
- var cooperateInfo *gorm_model.SupplierTalentCooperate
- cooperateInfo = &gorm_model.SupplierTalentCooperate{}
- cooperateInfo.SupplierId = supplierId
- cooperateInfo.CooperateNum = 1
- cooperateInfo.TalentID = taskInfo.TalentID
- cooperateInfo.TaskType = 1
- cooperateInfo.ProjectTaskId = taskId
- cooperateInfo.Platform = platformUserInfo.PlatformId
- cooperateInfo.PlatformUserId = platformUserInfo.Id
- current := time.Now()
- cooperateInfo.CreateTime = ¤t
- createErr := db.CreateSTCooperateInfo(ctx, cooperateInfo)
- if createErr != nil {
- return createErr
- }
- } else {
- // +1
- plusErr := db.UpdateSTCooperateInfo(ctx, supplierId, platformUserInfo.Id, 1)
- if plusErr != nil {
- return plusErr
- }
- }
- }
- }
- }
- return nil
- }
- // CreateSTLocalCooperate 创建或更新服务商-达人本地生活合作关系
- func (*stcooperate) CreateSTLocalCooperate(ctx context.Context, supplierId int, TaskIds []string) error {
- // 1. 根据taskId取出对应的platform_user_id
- for _, taskId := range TaskIds {
- taskInfo, taskInfoErr := db.GetLocalTaskInfoById(ctx, taskId)
- if taskInfoErr != nil {
- return taskInfoErr
- }
- if taskInfo != nil {
- platformUserInfo, platformUserInfoErr := db.FindUserInfoByOpenId(ctx, taskInfo.OpenID)
- if platformUserInfoErr != nil {
- return platformUserInfoErr
- }
- if platformUserInfo != nil {
- // 根据platformUserId判断需要新增一条记录还是合作次数增加
- total, countErr := db.CountCooperateInfoBySupplierAndPlatform(ctx, supplierId, platformUserInfo.Id, 2)
- if countErr != nil {
- return countErr
- }
- if total == 0 {
- // create
- var cooperateInfo *gorm_model.SupplierTalentCooperate
- cooperateInfo = &gorm_model.SupplierTalentCooperate{}
- cooperateInfo.SupplierId = supplierId
- cooperateInfo.CooperateNum = 1
- cooperateInfo.TalentID = taskInfo.TalentID
- cooperateInfo.TaskType = 2
- cooperateInfo.LocalTaskID = taskId
- cooperateInfo.Platform = platformUserInfo.PlatformId
- cooperateInfo.PlatformUserId = platformUserInfo.Id
- current := time.Now()
- cooperateInfo.CreateTime = ¤t
- createErr := db.CreateSTCooperateInfo(ctx, cooperateInfo)
- if createErr != nil {
- return createErr
- }
- } else {
- // +1
- plusErr := db.UpdateSTCooperateInfo(ctx, supplierId, platformUserInfo.Id, 2)
- if plusErr != nil {
- return plusErr
- }
- }
- }
- }
- }
- return nil
- }
- // GetTalentListInfo 合作列表信息
- func (*stcooperate) GetTalentListInfo(ctx context.Context, request *http_model.TalentListRequest) (*http_model.TalentListData, error) {
- var talentListData *http_model.TalentListData
- talentListData = &http_model.TalentListData{}
- // 1. 查找信息
- talentListInfo, total, talentListInfoErr := db.GetSTCooperateInfo(ctx, request.SupplierId, request.Type, request.Platform, request.Nickname, request.PageSize, request.PageNum)
- if talentListInfoErr != nil {
- return nil, talentListInfoErr
- }
- if talentListInfo != nil {
- talentListData.Total = total
- for _, c := range talentListInfo {
- var cooperateData *http_model.SupplierTalentCooperateData
- cooperateData = &http_model.SupplierTalentCooperateData{}
- cooperateData.SupplierId = c.SupplierId
- cooperateData.CooperateID = c.CooperateID
- cooperateData.Platform = c.Platform
- cooperateData.CooperateNum = c.CooperateNum
- cooperateData.PlatformUserId = c.PlatformUserId
- // 查询平台信息
- platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, cooperateData.PlatformUserId)
- if platformUserErr != nil {
- return nil, platformUserErr
- }
- if platformUserInfo != nil {
- cooperateData.City = platformUserInfo.City
- cooperateData.Nickname = platformUserInfo.NickName
- cooperateData.HeadUrl = platformUserInfo.HeadUri
- cooperateData.Fans = platformUserInfo.Fan
- cooperateData.LikeNum = platformUserInfo.LikeNum
- cooperateData.CommitNum = 0
- cooperateData.CollectNum = 0
- }
- talentListData.TalentListInfo = append(talentListData.TalentListInfo, cooperateData)
- }
- }
- return talentListData, nil
- }
- // GetTalentInfo 达人信息
- func (*stcooperate) GetTalentInfo(ctx context.Context, request *http_model.TalentDataRequest) (*http_model.TalentData, error) {
- var cooperateData *http_model.TalentData
- cooperateData = &http_model.TalentData{}
- // 查询平台信息
- platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
- if platformUserErr != nil {
- return nil, platformUserErr
- }
- if platformUserInfo != nil {
- cooperateData.City = platformUserInfo.City
- cooperateData.Nickname = platformUserInfo.NickName
- cooperateData.HeadUrl = platformUserInfo.HeadUri
- cooperateData.Fans = platformUserInfo.Fan
- cooperateData.VoteNum = platformUserInfo.LikeNum
- cooperateData.Sale30Days = 0
- cooperateData.Sale60Days = 0
- cooperateData.Sale90Days = 0
- cooperateData.CommitNum = 0
- cooperateData.CollectNum = 0
- cooperateData.Skill = platformUserInfo.Skill
- cooperateData.Gender = platformUserInfo.Gender
- }
- return cooperateData, nil
- }
- // CountTalentTaskNum 统计达人任务数量
- func (*stcooperate) CountTalentTaskNum(ctx context.Context, request *http_model.TalentCooperateDataRequest) (*http_model.TalentCooperateData, error) {
- var cooperateData *http_model.TalentCooperateData
- cooperateData = &http_model.TalentCooperateData{}
- // 查询平台信息
- platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
- if platformUserErr != nil {
- return nil, platformUserErr
- }
- if platformUserInfo != nil {
- }
- return cooperateData, nil
- }
- // GetTalentProjectList 达人种草表现
- func (*stcooperate) GetTalentProjectList(ctx context.Context, request *http_model.TalentProjectListRequest) (*http_model.TalentProjectListData, error) {
- // 1. 查询openId
- var projectTasks *http_model.TalentProjectListData
- projectTasks = &http_model.TalentProjectListData{}
- platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
- if platformUserErr != nil {
- return nil, platformUserErr
- }
- if platformUserInfo != nil {
- // 2. 查询种草子任务信息
- projectTaskInfo, total, projectTaskInfoErr := db.GetTaskListByOpenId(ctx, platformUserInfo.OpenId, request.OrderBy, request.OrderDesc, request.PageNum, request.PageSize)
- if projectTaskInfoErr != nil {
- projectTasks.Total = 0
- return nil, projectTaskInfoErr
- }
- if projectTaskInfo != nil {
- projectTasks.Total = total
- for _, task := range projectTaskInfo {
- var projectTask *http_model.TalentProjectData
- projectTask = &http_model.TalentProjectData{}
- projectTask.ReadNum = task.ViewAvg
- projectTask.VoteNum = task.VoteAvg
- projectTask.CollectNum = task.CommitAvg
- projectTask.CommitNum = task.CommitAvg
- // 种草任务信息
- projectInfo, projectInfoErr := db.GetProjectDetail(ctx, task.ProjectID)
- if projectInfoErr != nil {
- return nil, projectInfoErr
- }
- if projectInfo != nil {
- projectTask.ProjectName = projectInfo.ProjectName
- // 商品信息
- productInfo, productInfoErr := db.GetProductByID(ctx, projectInfo.ProductID)
- if productInfoErr != nil {
- return nil, productInfoErr
- }
- if productInfo != nil {
- projectTask.ProductPrice = productInfo.ProductPrice
- }
- // 商品图片
- productPhotoInfo, productPhotoErr := db.GetProductPhotoByProductID(ctx, projectInfo.ProductID)
- if productPhotoErr != nil {
- return nil, productPhotoErr
- }
- if productPhotoInfo != nil {
- for _, photo := range productPhotoInfo {
- // fmt.Println(photo)
- if photo.Symbol == 1 {
- projectTask.ProductPhotoSymbol = 1
- projectTask.ProductPhotoUrl = photo.PhotoUrl
- projectTask.ProductPhotoUid = photo.PhotoUid
- }
- }
- }
- }
- projectTasks.TalentProjectDataListInfo = append(projectTasks.TalentProjectDataListInfo, projectTask)
- }
- }
- }
- return projectTasks, nil
- }
- // GetTalentLocalList 达人本地表现
- func (*stcooperate) GetTalentLocalList(ctx context.Context, request *http_model.TalentLocalListRequest) (*http_model.TalentLocalListData, error) {
- return nil, nil
- }
|