1. GetSubCategory

  1. @logger.catch
  2. def GetSubCategory(self, request: goods_pb2.CategoryListRequest, context):
  3. category_list_rsp = goods_pb2.SubCategoryListResponse()
  4. try:
  5. category_info = Category.get(Category.id == request.id)
  6. category_list_rsp.info.id = category_info.id
  7. category_list_rsp.info.name = category_info.name
  8. category_list_rsp.info.level = category_info.level
  9. category_list_rsp.info.isTab = category_info.is_tab
  10. if category_info.parent_category:
  11. category_list_rsp.info.parentCategory = category_info.parent_category_id
  12. except DoesNotExist:
  13. context.set_code(grpc.StatusCode.NOT_FOUND)
  14. context.set_details('记录不存在')
  15. return empty_pb2.Empty()
  16. categorys = Category.select().where(Category.parent_category == request.id)
  17. category_list_rsp.total = categorys.count()
  18. for category in categorys:
  19. category_rsp = goods_pb2.CategoryInfoResponse()
  20. category_rsp.id = category.id
  21. category_rsp.name = category.name
  22. if category_info.parent_category:
  23. category_rsp.parentCategory = category_info.parent_category_id
  24. category_rsp.level = category.level
  25. category_rsp.isTab = category.is_tab
  26. category_list_rsp.subCategorys.append(category_rsp)
  27. return category_list_rsp

2. CreateCategory

  1. @logger.catch
  2. def CreateCategory(self, request: goods_pb2.CategoryInfoRequest, context):
  3. try:
  4. category = Category()
  5. category.name = request.name
  6. if request.level != 1:
  7. category.parent_category = request.parentCategory
  8. category.level = request.level
  9. category.is_tab = request.isTab
  10. category.save()
  11. category_rsp = goods_pb2.CategoryInfoResponse()
  12. category_rsp.id = category.id
  13. category_rsp.name = category.name
  14. if category.parent_category:
  15. category_rsp.parentCategory = category.parent_category.id
  16. category_rsp.level = category.level
  17. category_rsp.isTab = category.is_tab
  18. except Exception as e:
  19. context.set_code(grpc.StatusCode.INTERNAL)
  20. context.set_details('插入数据失败')
  21. return empty_pb2.Empty()
  22. return category_rsp

3. DeleteCategory

  1. @logger.catch
  2. def DeleteCategory(self, request: goods_pb2.DeleteCategoryRequest, context):
  3. try:
  4. category = Category.get(request.id)
  5. category.delete_instance()
  6. # TODO 删除响应的category下的商品
  7. return empty_pb2.Empty()
  8. except DoesNotExist:
  9. context.set_code(grpc.StatusCode.NOT_FOUND)
  10. context.set_details('记录不存在')
  11. return empty_pb2.Empty()

4. UpdateCategory

  1. @logger.catch
  2. def UpdateCategory(self, request: goods_pb2.CategoryInfoRequest, context):
  3. try:
  4. category = Category.get(request.id)
  5. if request.name:
  6. category.name = request.name
  7. if request.parentCategory:
  8. category.parent_category = request.parentCategory
  9. if request.level:
  10. category.level = request.level
  11. if request.isTab:
  12. category.is_tab = request.isTab
  13. category.save()
  14. return empty_pb2.Empty()
  15. except DoesNotExist:
  16. context.set_code(grpc.StatusCode.NOT_FOUND)
  17. context.set_details('记录不存在')
  18. return empty_pb2.Empty()