1. CategoryBrandList
@logger.catchdef CategoryBrandList(self, request: empty_pb2.Empty, context):# 获取品牌分类列表rsp = goods_pb2.CategoryBrandListResponse()category_brands = GoodsCategoryBrand.select()#分页start = 0per_page_nums = 10if request.pagePerNums:per_page_nums = request.PagePerNumsif request.pages:start = per_page_nums * (request.pages - 1)category_brands = category_brands.limit(per_page_nums).offset(start)rsp.total = category_brands.count()for category_brand in category_brands:category_brand_rsp = goods_pb2.CategoryBrandResponse()category_brand_rsp.id = category_brand.idcategory_brand_rsp.brand.id = category_brand.brand.idcategory_brand_rsp.brand.name = category_brand.brand.namecategory_brand_rsp.brand.logo = category_brand.brand.logocategory_brand_rsp.category.id = category_brand.category.idcategory_brand_rsp.category.name = category_brand.category.namecategory_brand_rsp.category.parentCategory = category_brand.category.parent_category_idcategory_brand_rsp.category.level = category_brand.category.levelcategory_brand_rsp.category.isTab = category_brand.category.is_tabrsp.data.append(category_brand_rsp)return rsp
2. GetCategoryBrandList
@logger.catchdef GetCategoryBrandList(self, request, context):#获取某一个分类的所有品牌rsp = goods_pb2.BrandListResponse()try:category = Category.get(Category.id == request.id)category_brands = GoodsCategoryBrand.select().where(GoodsCategoryBrand.category == category)rsp.total = category_brands.count()for category_brand in category_brands:brand_rsp = goods_pb2.BrandInfoResponse()brand_rsp.id = category_brand.brand.idbrand_rsp.name = category_brand.brand.namebrand_rsp.logo = category_brand.brand.logorsp.data.append(brand_rsp)except DoesNotExist as e:context.set_code(grpc.StatusCode.NOT_FOUND)context.set_details('记录不存在')return rspreturn rsp
3. CreateCategoryBrand
@logger.catchdef CreateCategoryBrand(self, request: goods_pb2.CategoryBrandRequest, context):category_brand = GoodsCategoryBrand()try:brand = Brands.get(request.brandId)category_brand.brand = brandcategory = Category.get(request.categoryId)category_brand.category = categorycategory_brand.save()rsp = goods_pb2.CategoryBrandResponse()rsp.id = category_brand.id #是另外一种思路return rspexcept DoesNotExist:context.set_code(grpc.StatusCode.NOT_FOUND)context.set_details('记录不存在')return goods_pb2.CategoryBrandResponse()except Exception as e:context.set_code(grpc.StatusCode.INTERNAL)context.set_details('内部错误')return goods_pb2.CategoryBrandResponse()
