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 }