libushang 1 тиждень тому
батько
коміт
1ad9db95c8
2 змінених файлів з 30 додано та 2 видалено
  1. 26 1
      common/db/db_task.py
  2. 4 1
      routers/api/taskRegistration/__init__.py

+ 26 - 1
common/db/db_task.py

@@ -7,6 +7,7 @@ from database import get_db
 from extensions import logger
 import random
 from models import *
+from utils import *
 
 def get_next_event_id(db: Session):
     while True:
@@ -72,4 +73,28 @@ def get_task_type_text(task_type: str) -> str:
     elif task_type == '3':
         return '督办任务'
     else:
-        return str(task_type)
+        return str(task_type)
+    
+
+def get_task_feebacks(db: Session, task_id: str):
+    rows = db.query(TaskFeeback).filter(and_(TaskFeeback.task_id == task_id)).all()
+    data = []
+    for row in rows:
+        info = get_model_dict(row)
+        info['create_time'] = get_datetime_str(row.create_time)
+        info['approval_time'] = get_datetime_str(row.approval_time)
+
+        data.append(info)
+    
+    return data
+
+# 任务发布后半个小时内没反馈记录就需要alert
+def need_task_alert(db: Session, task_id: str):
+    rows = db.query(TaskFeeback).filter(and_(TaskFeeback.task_id == task_id)).all()
+    if len(rows) > 0:
+        return False
+
+    row = db.query(TaskRegistration).filter(TaskRegistration.task_id == task_id).first()
+    alert_time = row.creation_time + timedelta(seconds=60 * 30) # 半个小时后
+
+    return datetime.now() > alert_time

+ 4 - 1
routers/api/taskRegistration/__init__.py

@@ -208,7 +208,10 @@ async def select_tasks(
             info['expire_time'] = get_date_str(info['expire_time'])
             info['imgList'] = db_task.get_image_file_list(db, info['task_id'])
             info['fileList'] = db_task.get_task_file_list(db, info['task_id'])
-            
+            info['feebacks'] = db_task.get_task_feebacks(db, info['task_id'])
+
+            # # 任务发布后半个小时内没反馈记录就需要alert
+            info['need_alert'] = db_task.need_task_alert(db, info['task_id'])
             data.append(info)
 
         return {