push queue id param
This commit is contained in:
parent
aa616704fb
commit
e81fb93143
@ -14,8 +14,9 @@ public interface CommonCampaignService {
|
||||
*
|
||||
* @param campaignKey campaign key
|
||||
* @param agent agent
|
||||
* @return queue id
|
||||
*/
|
||||
void enqueue(String campaignKey, Agent agent);
|
||||
Integer enqueue(String campaignKey, Agent agent);
|
||||
|
||||
/**
|
||||
* agent dequeue
|
||||
|
@ -37,18 +37,18 @@ public class CommonCampaignServiceImpl
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void enqueue(final String campaignKey, final Agent agent) {
|
||||
public Integer enqueue(final String campaignKey, final Agent agent) {
|
||||
log.info("Agent [{}] enqueue campaign [{}].", agent, campaignKey);
|
||||
|
||||
final Campaign campaign = findValid(campaignKey);
|
||||
final Integer queueId = campaign.getTargetId();
|
||||
final Queue queue = queueMapper.find(queueId);
|
||||
val campaign = findValid(campaignKey);
|
||||
val queueId = campaign.getTargetId();
|
||||
val queue = queueMapper.find(queueId);
|
||||
Assert.state(queue != null,
|
||||
() -> "Campaign [" + campaignKey + "] queue not found");
|
||||
Assert.state(queue.getActive(),
|
||||
() -> "Campaign [" + campaignKey + "] queue is not active");
|
||||
final Integer agentId = agent.getId();
|
||||
final QueueAgent queueAgentExisted =
|
||||
val agentId = agent.getId();
|
||||
val queueAgentExisted =
|
||||
queueAgentMapper.find(
|
||||
new Search(QueueAgent.QUEUE_ID, queueId)
|
||||
.eq(QueueAgent.AGENT_ID, agentId));
|
||||
@ -56,10 +56,10 @@ public class CommonCampaignServiceImpl
|
||||
if (queueAgentExisted != null) {
|
||||
log.warn("Agent [{}] exists in queue [{}], ignore enqueue.",
|
||||
agentId, queueId);
|
||||
return;
|
||||
return queueId;
|
||||
}
|
||||
|
||||
final QueueAgent queueAgent = new QueueAgent();
|
||||
val queueAgent = new QueueAgent();
|
||||
queueAgent.setTenantId(agent.getTenantId());
|
||||
queueAgent.setTenantCode(agent.getTenantCode());
|
||||
queueAgent.setQueueId(queueId);
|
||||
@ -68,6 +68,7 @@ public class CommonCampaignServiceImpl
|
||||
queueAgent.setAccount(agent.getAccount());
|
||||
queueAgent.setCreatedBy(agent.getAccount());
|
||||
queueAgentMapper.insert(queueAgent);
|
||||
return queueId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.pudonghot.yo.openapi.controller;
|
||||
|
||||
import lombok.val;
|
||||
import javax.validation.Valid;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.pudonghot.yo.model.domain.Agent;
|
||||
import com.pudonghot.yo.service.AgentService;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import com.pudonghot.yo.openapi.request.ReqCampaign;
|
||||
@ -39,11 +39,12 @@ public class CampaignController implements SessionAbility {
|
||||
final String account,
|
||||
@Valid @RequestBody final ReqCampaign form) {
|
||||
|
||||
final Agent agent = agentService.findValid(
|
||||
val agent = agentService.findValid(
|
||||
form.getTenantId(), account);
|
||||
agentStatusService.findRegisteredAgentStatus(agent);
|
||||
commonCampaignService.dequeue(agent);
|
||||
commonCampaignService.enqueue(form.getCampaignKey(), agent);
|
||||
val queueId = commonCampaignService.enqueue(form.getCampaignKey(), agent);
|
||||
agent.setQueues(String.valueOf(queueId));
|
||||
|
||||
// agent ready
|
||||
agentStatusService.ready(agent);
|
||||
|
@ -29,6 +29,7 @@ import org.springframework.beans.factory.InitializingBean;
|
||||
import com.pudonghot.yo.service.CommonAgentEventQueueService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.context.request.async.DeferredResult;
|
||||
import static com.pudonghot.yo.model.agentevent.EventType.AgentState_CancelNotReady_Success;
|
||||
|
||||
/**
|
||||
* @author Donghuang
|
||||
@ -98,7 +99,9 @@ public class AgentEventServiceImpl implements AgentEventService, InitializingBea
|
||||
*/
|
||||
@Override
|
||||
public void publish(final Agent agent, final EventType eventType) {
|
||||
publish(agent, eventType, null);
|
||||
publish(agent, eventType,
|
||||
AgentState_CancelNotReady_Success == eventType ?
|
||||
agent.getQueues() : null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user