feat: crappy reordering
This commit is contained in:
@@ -160,6 +160,26 @@ class ServiceService(BaseService):
|
||||
raw_category = request.category
|
||||
category_dict = raw_category.model_dump()
|
||||
del category_dict['id']
|
||||
last_deal_service_rank = await self.session.scalar(
|
||||
select(ServiceCategory.deal_service_rank)
|
||||
.order_by(ServiceCategory.deal_service_rank.desc())
|
||||
.limit(1)
|
||||
)
|
||||
last_product_service_rank = await self.session.scalar(
|
||||
select(ServiceCategory.product_service_rank)
|
||||
.order_by(ServiceCategory.product_service_rank.desc())
|
||||
.limit(1)
|
||||
)
|
||||
last_product_service_rank = lexorank.parse(
|
||||
last_product_service_rank) if last_product_service_rank else middle(
|
||||
Bucket.BUCEKT_0)
|
||||
last_deal_service_rank = lexorank.parse(last_deal_service_rank) if last_deal_service_rank else middle(
|
||||
Bucket.BUCEKT_0)
|
||||
last_deal_service_rank = last_deal_service_rank.next()
|
||||
last_product_service_rank = last_product_service_rank.next()
|
||||
category_dict['deal_service_rank'] = str(last_deal_service_rank)
|
||||
category_dict['product_service_rank'] = str(last_product_service_rank)
|
||||
|
||||
category = ServiceCategory(**category_dict)
|
||||
self.session.add(category)
|
||||
await self.session.commit()
|
||||
@@ -379,3 +399,21 @@ class ServiceService(BaseService):
|
||||
return ServiceCategoryReorderResponse(ok=True, message="Категории успешно пересортированы")
|
||||
except Exception as e:
|
||||
return ServiceCategoryReorderResponse(ok=False, message=f"Неудалось пересортировать категорию, ошибка: {e}")
|
||||
|
||||
async def update_category(self, request: ServiceUpdateCategoryRequest) -> ServiceUpdateResponse:
|
||||
try:
|
||||
raw_category = request.category
|
||||
category = await (self.session.get(ServiceCategory, raw_category.id))
|
||||
if not category:
|
||||
return ServiceUpdateResponse(ok=False, message="Категория не найдена")
|
||||
category_dict = raw_category.dict()
|
||||
del category_dict['id']
|
||||
await self.session.execute(
|
||||
update(ServiceCategory)
|
||||
.where(ServiceCategory.id == raw_category.id)
|
||||
.values(**category_dict)
|
||||
)
|
||||
await self.session.commit()
|
||||
return ServiceUpdateResponse(ok=True, message="Категория успешно обновлена")
|
||||
except Exception as e:
|
||||
return ServiceUpdateResponse(ok=False, message=f"Неудалось обновить категорию, ошибка: {e}")
|
||||
|
||||
Reference in New Issue
Block a user