1. GetSubCategory
@logger.catchdef GetSubCategory(self, request: goods_pb2.CategoryListRequest, context):category_list_rsp = goods_pb2.SubCategoryListResponse()try:category_info = Category.get(Category.id == request.id)category_list_rsp.info.id = category_info.idcategory_list_rsp.info.name = category_info.namecategory_list_rsp.info.level = category_info.levelcategory_list_rsp.info.isTab = category_info.is_tabif category_info.parent_category:category_list_rsp.info.parentCategory = category_info.parent_category_idexcept DoesNotExist:context.set_code(grpc.StatusCode.NOT_FOUND)context.set_details('记录不存在')return empty_pb2.Empty()categorys = Category.select().where(Category.parent_category == request.id)category_list_rsp.total = categorys.count()for category in categorys:category_rsp = goods_pb2.CategoryInfoResponse()category_rsp.id = category.idcategory_rsp.name = category.nameif category_info.parent_category:category_rsp.parentCategory = category_info.parent_category_idcategory_rsp.level = category.levelcategory_rsp.isTab = category.is_tabcategory_list_rsp.subCategorys.append(category_rsp)return category_list_rsp
2. CreateCategory
@logger.catchdef CreateCategory(self, request: goods_pb2.CategoryInfoRequest, context):try:category = Category()category.name = request.nameif request.level != 1:category.parent_category = request.parentCategorycategory.level = request.levelcategory.is_tab = request.isTabcategory.save()category_rsp = goods_pb2.CategoryInfoResponse()category_rsp.id = category.idcategory_rsp.name = category.nameif category.parent_category:category_rsp.parentCategory = category.parent_category.idcategory_rsp.level = category.levelcategory_rsp.isTab = category.is_tabexcept Exception as e:context.set_code(grpc.StatusCode.INTERNAL)context.set_details('插入数据失败')return empty_pb2.Empty()return category_rsp
3. DeleteCategory
@logger.catchdef DeleteCategory(self, request: goods_pb2.DeleteCategoryRequest, context):try:category = Category.get(request.id)category.delete_instance()# TODO 删除响应的category下的商品return empty_pb2.Empty()except DoesNotExist:context.set_code(grpc.StatusCode.NOT_FOUND)context.set_details('记录不存在')return empty_pb2.Empty()
4. UpdateCategory
@logger.catchdef UpdateCategory(self, request: goods_pb2.CategoryInfoRequest, context):try:category = Category.get(request.id)if request.name:category.name = request.nameif request.parentCategory:category.parent_category = request.parentCategoryif request.level:category.level = request.levelif request.isTab:category.is_tab = request.isTabcategory.save()return empty_pb2.Empty()except DoesNotExist:context.set_code(grpc.StatusCode.NOT_FOUND)context.set_details('记录不存在')return empty_pb2.Empty()
