Jelajahi Sumber

Merge branch 'develop' of ssh://gitlab.fuxicarbon.com:1111/client_service/voice-gateway-service into develop

余尚辉 5 bulan lalu
induk
melakukan
4207f84c49
3 mengubah file dengan 9 tambahan dan 6 penghapusan
  1. 4 2
      src/core/callcenter/acd.py
  2. 3 3
      src/core/callcenter/agent.py
  3. 2 1
      src/core/callcenter/api.py

+ 4 - 2
src/core/callcenter/acd.py

@@ -11,6 +11,8 @@ from src.core.callcenter.api import CallInfo, AgentActionRequest
 from apscheduler.schedulers.background import BackgroundScheduler
 from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED, FIRST_COMPLETED
 
+from src.core.callcenter.constant import saasId
+
 
 class AcdService:
     def __init__(self, client, logger):
@@ -28,7 +30,7 @@ class AcdService:
         # 1. hold住并且播放等待音
         self.call_service.hold(call_info, device_id)
         # 获得空闲坐席
-        agent_number = self.agent_service.assign(AgentActionRequest())
+        agent_number = self.agent_service.assign(AgentActionRequest(saas_id=saasId, service_id=service_id))
         if not agent_number:
             # 如果没有空闲坐席,播放等待音
             self.logger.info("AcdService transferToAgent agentNumber is empty serviceId:%s,called:%s,callId:%s",
@@ -61,7 +63,7 @@ class AcdService:
             call_info = Cache.get_call_info(call_id)
             if not call_info or not call_info.device_list:
                 continue
-            agent_number = self.agent_service.assign(AgentActionRequest())
+            agent_number = self.agent_service.assign(AgentActionRequest(saas_id=saasId, service_id=task_service_id))
             if not agent_number:
                 self.logger.info("AcdService tryTransferAgent agentNumber is Empty %s", call_id)
                 tmp_arr.append(call_id)

+ 3 - 3
src/core/callcenter/agent.py

@@ -119,8 +119,8 @@ class AgentOperService:
             raise BizException(BizErrorCode.AGENT_DISABLE_NOT_ALLOW_OPERATE)
         self._handle_idle(req.scene, agent)
 
-    def assign(self, request: AgentActionRequest):
-        pass
+    def assign(self, req: AgentActionRequest):
+        return self.agent_state_service.assign_agent(req.saas_id, req.service_id)
 
     def idle_agent_exist(self, request: AgentActionRequest):
         pass
@@ -543,7 +543,7 @@ class AgentStateService:
         key = self._check_in_key(saas_id)
         self.redis_handler.redis.hdel(key, phone_num)
 
-    def assign_agent(self, saas_id, service_id, called, ivr_id=None, task_id=None, cbp=None):
+    def assign_agent(self, saas_id, service_id, called=None, ivr_id=None, task_id=None, cbp=None):
         choose_phone_num = ''
         self.logger.info("assignAgent %s %s %s", saas_id, service_id, called)
         idle_agents = self.idle_agents(saas_id, service_id)

+ 2 - 1
src/core/callcenter/api.py

@@ -98,7 +98,7 @@ class AgentActionRequest(BaseApi):
     """
     坐席操作
     """
-    def __init__(self, saas_id, agent_id, agent_number=None, out_id=None, identity_type=None, scene='manual',**kwargs):
+    def __init__(self, saas_id, agent_id, agent_number=None, out_id=None, identity_type=None, scene='manual', service_id=None, **kwargs):
         self.saas_id =saas_id
         # 坐席工号
         self.agent_id = agent_id
@@ -110,6 +110,7 @@ class AgentActionRequest(BaseApi):
         self.identity_type = identity_type
         # 场景 manual:手动外呼; robot:机器人外呼; monitor:监听
         self.scene = scene
+        self.service_id = service_id
 
 
 class HumanServiceQueryRequest(BaseApi):