package finder import ( "context" "joybuywork/internal/repository/cache" "joybuywork/internal/repository/model" "reflect" ) // User 用户id类型字段找一条数据 // // params: val id, hash_id func User(ctx context.Context, val ...any) (*model.User, error) { cu := cache.NewUser(ctx) for _, v := range val { kind := reflect.TypeOf(v).Kind() if kind == reflect.Int64 && v.(int64) > 0 { return cu.FindById(v.(int64)) } if kind == reflect.String && v.(string) != "" { return cu.FindByHashId(v.(string)) } } return nil, nil } // Project 项目id类型字段找一条数据 // // params: val id, hash_id func Project(ctx context.Context, val ...any) (*model.Project, error) { cu := cache.NewProject(ctx) for _, v := range val { kind := reflect.TypeOf(v).Kind() if kind == reflect.Int64 && v.(int64) > 0 { return cu.FindById(v.(int64)) } if kind == reflect.String && v.(string) != "" { return cu.FindByHashId(v.(string)) } } return nil, nil } // Campaign 活动id类型字段找一条数据 // // params: val id, link_hash_id func Campaign(ctx context.Context, val ...any) (*model.FissionCampaign, error) { cu := cache.NewCampaign(ctx) for _, v := range val { kind := reflect.TypeOf(v).Kind() if kind == reflect.Int64 && v.(int64) > 0 { return cu.FindById(v.(int64)) } if kind == reflect.String && v.(string) != "" { return cu.FindByHashId(v.(string)) } } return nil, nil } // FissionUser 参与用户id类型字段找一条数据 // // params: val id, link_hash_id func FissionUser(ctx context.Context, campaignId int64, val ...any) (*model.FissionUser, error) { cu := cache.NewFissionUser(ctx, campaignId) for _, v := range val { kind := reflect.TypeOf(v).Kind() if kind == reflect.Int64 && v.(int64) > 0 { return cu.FindById(v.(int64)) } if kind == reflect.String && v.(string) != "" { return cu.FindByHashId(v.(string)) } } return nil, nil } // FissionTemp 参与用户id类型字段找一条数据 // // params: val id, link_hash_id func FissionTemp(ctx context.Context, val ...any) (*model.FissionTemp, error) { cu := cache.NewFissionTemp(ctx) for _, v := range val { kind := reflect.TypeOf(v).Kind() if kind == reflect.Int64 && v.(int64) > 0 { return cu.FindById(v.(int64)) } if kind == reflect.String && v.(string) != "" { return cu.FindByHashId(v.(string)) } } return nil, nil }