Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dtable_events/statistics/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,19 @@
from sqlalchemy import func, desc, text, select, insert

from dtable_events.statistics.models import UserActivityStatistics, EmailSendingLog
from dtable_events.utils import get_user_org_id

logger = logging.getLogger(__name__)


def save_user_activity_stat(session, msg):
username = msg['username']
timestamp = msg['timestamp']
org_id = get_user_org_id(username)

user_time_md5 = md5((username + timestamp).encode('utf-8')).hexdigest()
msg['user_time_md5'] = user_time_md5
msg['org_id'] = org_id

cmd = "REPLACE INTO user_activity_statistics (user_time_md5, username, timestamp, org_id)" \
"values(:user_time_md5, :username, :timestamp, :org_id)"
Expand Down
12 changes: 12 additions & 0 deletions dtable_events/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -399,3 +399,15 @@ def get_dtable_owner_org_id(dtable_uuid, db_session):
value = {'owner': result.owner, 'org_id': result.org_id}
redis_cache.set(key, json.dumps(value), timeout=6 * 60 * 60)
return value

def get_user_org_id(username):
key = f'user:{username}:org_id'
org_id = redis_cache.get(key)
if org_id:
return org_id
orgs = ccnet_api.get_orgs_by_user(username)
org_id = -1
if orgs:
org_id = orgs[0].org_id
redis_cache.set(key, org_id, timeout=6 * 60 * 60)
return org_id
Loading