package service import ( "context" "fmt" "github.com/issue9/conv" "github.com/sirupsen/logrus" "youngee_b_api/db" "youngee_b_api/model/common_model" "youngee_b_api/model/http_model" ) var LocalLife *localLife type localLife struct { } func (*localLife) GetFullLocalLifeList(ctx context.Context, pageSize, pageNum int32, supplierId int, condition *common_model.SLocalLifeCondition) (*http_model.FullListData, error) { // 1. 查询本地生活任务基本信息 fullLocals, total, err := db.GetFullLocalLifeList(ctx, pageSize, pageNum, condition) if err != nil { logrus.WithContext(ctx).Errorf("[fullLocals service] call GetFullLocalLifeList error,err:%+v", err) return nil, err } var fullLocalData *http_model.FullListData fullLocalData = &http_model.FullListData{} fullLocalData.Total = total for _, fullLocal := range fullLocals { var fullLocalPreview *http_model.FullPreview fullLocalPreview = &http_model.FullPreview{} fullLocalPreview.LocalId = fullLocal.LocalId fullLocalPreview.LocalName = fullLocal.LocalName fullLocalPreview.TaskStatus = fullLocal.TaskStatus fullLocalPreview.LocalPlatform = fullLocal.LocalPlatform fullLocalPreview.TaskForm = fullLocal.TaskForm fullLocalPreview.LocalType = fullLocal.LocalType fullLocalPreview.LocalContentType = fullLocal.ContentType fullLocalData.FullPreview = append(fullLocalData.FullPreview, fullLocalPreview) } // 2. 查询本地生活补充信息:门店信息,招募策略 for _, local := range fullLocalData.FullPreview { // 2.1. 门店信息 storeInfo, productErr := db.FindStoreById(ctx, local.StoreId) if productErr != nil { return nil, productErr } if storeInfo != nil { local.StoreId = storeInfo.StoreId local.StoreName = storeInfo.StoreName } // 2.2. 门店图片信息 productPhotoInfo, productPhotoErr := db.GetStorePhotoByStoreID(ctx, local.StoreId) if productPhotoErr != nil { return nil, productPhotoErr } if productPhotoInfo != nil { for _, photo := range productPhotoInfo { fmt.Println(photo) if photo.Symbol == 1 { local.ProductPhotoSymbol = 1 local.ProductPhotoUrl = photo.PhotoUrl local.ProductPhotoUid = photo.PhotoUid } } } // 2.3. 招募策略信息 recruitStrategyInfo, recruitErr := db.GetRecruitStrategyByProjectId(ctx, local.LocalId) if recruitErr != nil { return nil, recruitErr } if recruitStrategyInfo != nil { for _, strategy := range recruitStrategyInfo { var recruitStrategy *http_model.EasyRecruitStrategy recruitStrategy = &http_model.EasyRecruitStrategy{} recruitStrategy.StrategyId = strategy.StrategyID recruitStrategy.FeeForm = strategy.FeeForm recruitStrategy.RecruitNumber = strategy.RecruitNumber local.RecruitStrategy = append(local.RecruitStrategy, recruitStrategy) } } // 2.4. 判断是否加入商单 sProjectCount, sProjectErr := db.FindSLocalByLocalIdAndSupplierId(ctx, local.LocalId, supplierId) if sProjectErr != nil { return nil, sProjectErr } if sProjectCount > 0 { local.AddToListStatus = 1 } else { local.AddToListStatus = 2 } } return fullLocalData, nil } func (*localLife) GetFullSLocalLifeList(ctx context.Context, pageSize, pageNum int32, supplierId int, condition *common_model.SLocalLifeCondition) (*http_model.FullSLocalListData, error) { // 1. 查询本地生活任务基本信息 fullLocals, total, err := db.GetFullSLocalLifeList(ctx, pageSize, pageNum, condition) if err != nil { logrus.WithContext(ctx).Errorf("[fullLocals service] call GetFullSLocalLifeList error,err:%+v", err) return nil, err } var fullLocalData *http_model.FullSLocalListData fullLocalData = &http_model.FullSLocalListData{} fullLocalData.Total = total for _, fullLocal := range fullLocals { var fullLocalPreview *http_model.FullSLocalPreview fullLocalPreview = &http_model.FullSLocalPreview{} fullLocalPreview.LocalId = fullLocal.LocalId fullLocalPreview.TaskStatus = fullLocal.TaskStatus fullLocalPreview.LocalPlatform = fullLocal.LocalPlatform fullLocalPreview.TaskForm = fullLocal.TaskForm fullLocalPreview.LocalType = fullLocal.LocalType fullLocalPreview.LocalContentType = fullLocal.ContentType fullLocalPreview.SupplierId = supplierId fullLocalPreview.SubAccountId = fullLocal.SubAccountId fullLocalPreview.OperatorType = fullLocal.OperatorType fullLocalPreview.CreateTime = conv.MustString(fullLocal.CreateTime) fullLocalPreview.ServiceCharge = fullLocal.ServiceCharge fullLocalPreview.ServiceChargeActual = fullLocal.ServiceChargeActual fullLocalPreview.ApplyNum = fullLocal.ApplyNum fullLocalPreview.RecruitNum = fullLocal.RecruitNum fullLocalPreview.SettleNum = fullLocal.SettleNum fullLocalData.FullSLocalPreview = append(fullLocalData.FullSLocalPreview, fullLocalPreview) } // 2. 查询本地生活补充信息:门店信息,招募策略 for _, local := range fullLocalData.FullSLocalPreview { // 2.1. 门店信息 storeInfo, productErr := db.FindStoreById(ctx, local.StoreId) if productErr != nil { return nil, productErr } if storeInfo != nil { local.StoreId = storeInfo.StoreId local.StoreName = storeInfo.StoreName } // 2.2. 门店图片信息 productPhotoInfo, productPhotoErr := db.GetStorePhotoByStoreID(ctx, local.StoreId) if productPhotoErr != nil { return nil, productPhotoErr } if productPhotoInfo != nil { for _, photo := range productPhotoInfo { fmt.Println(photo) if photo.Symbol == 1 { local.ProductPhotoSymbol = 1 local.ProductPhotoUrl = photo.PhotoUrl local.ProductPhotoUid = photo.PhotoUid } } } } return fullLocalData, nil }