package api import ( "yunyan/comm" "yunyan/lego/sys/log" "yunyan/pb" ) // 获取品牌商列表 func (this *apiComp) GetBrands(session comm.IUserSession, req *pb.ApiGetBrandsReq) (resp *pb.ApiGetBrandsResp, errdata *pb.ErrorData) { var ( models []*pb.DBBrand err error ) if models, err = this.module.model.factorys(); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Message: err.Error(), } this.module.Error("GetBrands Fail!", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "err", Value: err.Error()}) return } // 运营/代理:按账号的 品牌商 + 产品白名单过滤 scope := this.getSessionScope(session) if !scope.Unlimited { allProducts, _ := this.module.model.products() allowed := visibleFactoryIDs(scope, allProducts) allowSet := make(map[uint32]struct{}, len(allowed)) for _, id := range allowed { allowSet[id] = struct{}{} } filtered := make([]*pb.DBBrand, 0, len(models)) for _, f := range models { if _, ok := allowSet[f.Id]; ok { filtered = append(filtered, f) } } models = filtered } resp = &pb.ApiGetBrandsResp{ Brands: models, } return }