feat: service category change rank fix
This commit is contained in:
@@ -130,14 +130,21 @@ class ServiceService(BaseService):
|
||||
service = await (self.session.get(Service, raw_service.id))
|
||||
if not service:
|
||||
return ServiceUpdateResponse(ok=False, message="Услуга не найдена")
|
||||
|
||||
prev_category_id = service.category_id
|
||||
new_category_id = request.data.category.id
|
||||
service_dict = raw_service.dict()
|
||||
service_dict['category_id'] = raw_service.category.id
|
||||
del service_dict['category']
|
||||
del service_dict['price_ranges']
|
||||
del service_dict['category_prices']
|
||||
del service_dict['is_placeholder']
|
||||
|
||||
if prev_category_id != new_category_id:
|
||||
latest_rank = await self.get_latest_rank_in_category(new_category_id, ServiceType(raw_service.service_type))
|
||||
if not latest_rank:
|
||||
latest_rank = middle(Bucket.BUCEKT_0)
|
||||
else:
|
||||
latest_rank = lexorank.parse(latest_rank)
|
||||
service_dict['rank'] = str(latest_rank.next())
|
||||
await self.session.execute(
|
||||
update(Service)
|
||||
.where(Service.id == raw_service.id)
|
||||
|
||||
Reference in New Issue
Block a user