28 lines
737 B
Python
28 lines
737 B
Python
from datetime import datetime
|
|
from decimal import Decimal
|
|
from clicker.celery import app
|
|
from clicks.models import Click
|
|
from users.models import ClickTransaction
|
|
|
|
|
|
@app.task
|
|
def handle_click(user_id, date_time, value_str, count=1):
|
|
date_time = datetime.fromtimestamp(date_time / 1000)
|
|
value = Decimal(value_str)
|
|
clicks = list()
|
|
for _ in range(count):
|
|
click = Click(
|
|
user_id=user_id,
|
|
value=value,
|
|
created_at=date_time
|
|
)
|
|
clicks.append(click)
|
|
Click.objects.bulk_create(clicks)
|
|
for click in clicks:
|
|
ClickTransaction.objects.create(
|
|
user_id=user_id,
|
|
date=date_time,
|
|
value=value,
|
|
click=click
|
|
)
|