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