余尚辉 4 bulan lalu
induk
melakukan
61116f4c03
2 mengubah file dengan 32 tambahan dan 55 penghapusan
  1. 14 19
      src/core/callcenter/agent.py
  2. 18 36
      src/core/callcenter/views.py

+ 14 - 19
src/core/callcenter/agent.py

@@ -54,25 +54,20 @@ class AgentOperService:
         db.session.commit()
 
     def checkin(self, req: AgentActionRequest):
-       try:
-           agent = _get_agent(req.saas_id, req.agent_id)
-           if not agent or agent.agent_state == AgentState.DISABLE.code:
-               raise BizException(BizErrorCode.ERROR_NOT_FOLLOW_CHECK_IN)
-           phone = _get_phone(req.saas_id, agent.phone_num)
-           agent_monitor = _get_agent_monitor(req.saas_id, agent.agent_num)
-           agent_monitor.check_scene = req.scene
-           self.agent_monitor_service.update_checkin(agent_monitor)
-           self.agent_actionlog_service.insert_check_state(agent_monitor, AgentCheck.IN, AgentLogState.CHECKIN)
-           self.agent_state_service.checkin(agent.saas_id, agent.out_id, agent.phone_num)
-
-           if req.scene == AgentScene.MANUAL.code:
-               # 如果是手动外呼增加置闲
-               self._handle_idle(req.scene, agent)
-           return self._push_event_for_checkin(agent, agent_monitor, phone, req.scene)
-       except Exception as e:
-           self.logger.error(traceback.format_exc())
-           raise e
-
+        agent = _get_agent(req.saas_id, req.agent_id)
+        if not agent or agent.agent_state == AgentState.DISABLE.code:
+            raise BizException(BizErrorCode.ERROR_NOT_FOLLOW_CHECK_IN)
+        phone = _get_phone(req.saas_id, agent.phone_num)
+        agent_monitor = _get_agent_monitor(req.saas_id, agent.agent_num)
+        agent_monitor.check_scene = req.scene
+        self.agent_monitor_service.update_checkin(agent_monitor)
+        self.agent_actionlog_service.insert_check_state(agent_monitor, AgentCheck.IN, AgentLogState.CHECKIN)
+        self.agent_state_service.checkin(agent.saas_id, agent.out_id, agent.phone_num)
+
+        if req.scene == AgentScene.MANUAL.code:
+            # 如果是手动外呼增加置闲
+            self._handle_idle(req.scene, agent)
+        return self._push_event_for_checkin(agent, agent_monitor, phone, req.scene)
     def checkout(self, req: AgentActionRequest):
         agent = _get_agent(req.saas_id, req.agent_id)
         if not agent or agent.agent_state == AgentState.DISABLE.code:

+ 18 - 36
src/core/callcenter/views.py

@@ -59,15 +59,10 @@ def get_cdn_url():
 @app.route('/open/agent/get-init-config', methods=['POST'])
 def get_init_config():
     """获取初始化配置"""
-    try:
-        data = request.get_json()
-        param = AgentActionRequest.from_json(data)
-        res = agent_service.get_and_check(param)
-        return success_response(res)
-
-    except Exception as e:
-        print("Exception occurred: %s", str(e))
-        return error_response(str(e))
+    data = request.get_json()
+    param = AgentActionRequest.from_json(data)
+    res = agent_service.get_and_check(param)
+    return success_response(res)
 
 
 @app.route('/open/agent/check-in', methods=['POST'])
@@ -109,42 +104,29 @@ def idle():
 @app.route('/open/agent/turn-on', methods=['POST'])
 def turn_on():
     """接通"""
-    try:
-        data = request.get_json()
-        param = AgentActionRequest.from_json(data)
-        return agent_oper_service.checkin(param)
-    except Exception as e:
-        print("Exception occurred: %s", str(e))
-        return {"error": "An error occurred", "details": str(e)}, 500
+    data = request.get_json()
+    param = AgentActionRequest.from_json(data)
+    return agent_oper_service.checkin(param)
 
 
 @app.route('/open/agent/hang-up', methods=['POST'])
 def hang_up():
     """挂断"""
-    try:
-        data = request.get_json()
-        param = AgentActionRequest.from_json(data)
-        res = call_service.hangup(param)
-        return success_response(res)
-    except Exception as e:
-        print("Exception occurred: %s", str(e))
-        return {"error": "An error occurred", "details": str(e)}, 500
-
+    data = request.get_json()
+    param = AgentActionRequest.from_json(data)
+    res = call_service.hangup(param)
+    return success_response(res)
 
 @app.route('/open/agent/agent-state', methods=['POST'])
 def agent_state():
     """获取坐席状态"""
-    try:
-        data = request.get_json()
-        # param = HumanServiceQueryRequest.from_json(data)
-        # res = agent_service.watch_agent_state(param)
-        param = AgentActionRequest.from_json(data)
-        res = agent_oper_service.agent_state(param)
-
-        return success_response(res)
-    except Exception as e:
-        print("Exception occurred: %s", str(e))
-        return {"error": "An error occurred", "details": str(e)}, 500
+    data = request.get_json()
+    # param = HumanServiceQueryRequest.from_json(data)
+    # res = agent_service.watch_agent_state(param)
+    param = AgentActionRequest.from_json(data)
+    res = agent_oper_service.agent_state(param)
+
+    return success_response(res)
 
 
 @app.route('/open/agent/manual-call', methods=['POST'])