1. GetSubCategory
@logger.catch
def 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.id
category_list_rsp.info.name = category_info.name
category_list_rsp.info.level = category_info.level
category_list_rsp.info.isTab = category_info.is_tab
if category_info.parent_category:
category_list_rsp.info.parentCategory = category_info.parent_category_id
except 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.id
category_rsp.name = category.name
if category_info.parent_category:
category_rsp.parentCategory = category_info.parent_category_id
category_rsp.level = category.level
category_rsp.isTab = category.is_tab
category_list_rsp.subCategorys.append(category_rsp)
return category_list_rsp
2. CreateCategory
@logger.catch
def CreateCategory(self, request: goods_pb2.CategoryInfoRequest, context):
try:
category = Category()
category.name = request.name
if request.level != 1:
category.parent_category = request.parentCategory
category.level = request.level
category.is_tab = request.isTab
category.save()
category_rsp = goods_pb2.CategoryInfoResponse()
category_rsp.id = category.id
category_rsp.name = category.name
if category.parent_category:
category_rsp.parentCategory = category.parent_category.id
category_rsp.level = category.level
category_rsp.isTab = category.is_tab
except Exception as e:
context.set_code(grpc.StatusCode.INTERNAL)
context.set_details('插入数据失败')
return empty_pb2.Empty()
return category_rsp
3. DeleteCategory
@logger.catch
def 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.catch
def UpdateCategory(self, request: goods_pb2.CategoryInfoRequest, context):
try:
category = Category.get(request.id)
if request.name:
category.name = request.name
if request.parentCategory:
category.parent_category = request.parentCategory
if request.level:
category.level = request.level
if request.isTab:
category.is_tab = request.isTab
category.save()
return empty_pb2.Empty()
except DoesNotExist:
context.set_code(grpc.StatusCode.NOT_FOUND)
context.set_details('记录不存在')
return empty_pb2.Empty()