1. CategoryBrandList

  1. @logger.catch
  2. def CategoryBrandList(self, request: empty_pb2.Empty, context):
  3. # 获取品牌分类列表
  4. rsp = goods_pb2.CategoryBrandListResponse()
  5. category_brands = GoodsCategoryBrand.select()
  6. #分页
  7. start = 0
  8. per_page_nums = 10
  9. if request.pagePerNums:
  10. per_page_nums = request.PagePerNums
  11. if request.pages:
  12. start = per_page_nums * (request.pages - 1)
  13. category_brands = category_brands.limit(per_page_nums).offset(start)
  14. rsp.total = category_brands.count()
  15. for category_brand in category_brands:
  16. category_brand_rsp = goods_pb2.CategoryBrandResponse()
  17. category_brand_rsp.id = category_brand.id
  18. category_brand_rsp.brand.id = category_brand.brand.id
  19. category_brand_rsp.brand.name = category_brand.brand.name
  20. category_brand_rsp.brand.logo = category_brand.brand.logo
  21. category_brand_rsp.category.id = category_brand.category.id
  22. category_brand_rsp.category.name = category_brand.category.name
  23. category_brand_rsp.category.parentCategory = category_brand.category.parent_category_id
  24. category_brand_rsp.category.level = category_brand.category.level
  25. category_brand_rsp.category.isTab = category_brand.category.is_tab
  26. rsp.data.append(category_brand_rsp)
  27. return rsp

2. GetCategoryBrandList

  1. @logger.catch
  2. def GetCategoryBrandList(self, request, context):
  3. #获取某一个分类的所有品牌
  4. rsp = goods_pb2.BrandListResponse()
  5. try:
  6. category = Category.get(Category.id == request.id)
  7. category_brands = GoodsCategoryBrand.select().where(GoodsCategoryBrand.category == category)
  8. rsp.total = category_brands.count()
  9. for category_brand in category_brands:
  10. brand_rsp = goods_pb2.BrandInfoResponse()
  11. brand_rsp.id = category_brand.brand.id
  12. brand_rsp.name = category_brand.brand.name
  13. brand_rsp.logo = category_brand.brand.logo
  14. rsp.data.append(brand_rsp)
  15. except DoesNotExist as e:
  16. context.set_code(grpc.StatusCode.NOT_FOUND)
  17. context.set_details('记录不存在')
  18. return rsp
  19. return rsp

3. CreateCategoryBrand

  1. @logger.catch
  2. def CreateCategoryBrand(self, request: goods_pb2.CategoryBrandRequest, context):
  3. category_brand = GoodsCategoryBrand()
  4. try:
  5. brand = Brands.get(request.brandId)
  6. category_brand.brand = brand
  7. category = Category.get(request.categoryId)
  8. category_brand.category = category
  9. category_brand.save()
  10. rsp = goods_pb2.CategoryBrandResponse()
  11. rsp.id = category_brand.id #是另外一种思路
  12. return rsp
  13. except DoesNotExist:
  14. context.set_code(grpc.StatusCode.NOT_FOUND)
  15. context.set_details('记录不存在')
  16. return goods_pb2.CategoryBrandResponse()
  17. except Exception as e:
  18. context.set_code(grpc.StatusCode.INTERNAL)
  19. context.set_details('内部错误')
  20. return goods_pb2.CategoryBrandResponse()

4. DeleteCategoryBrand

5. UpdateCategoryBrand