Package com.bytedesk.service.agent
Class AgentRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<AgentEntity,AgentRequest,AgentResponse>
com.bytedesk.service.agent.AgentRestService
@Service
public class AgentRestService
extends BaseRestService<AgentEntity,AgentRequest,AgentResponse>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ActionRestService
private final AgentRepository
private final AuthService
private final BytedeskEventPublisher
private static final int
private final MemberRestService
private final org.modelmapper.ModelMapper
private final MqttConnectionService
private static final long
private final Queue<AgentEntity>
private final ServiceSettingsService
private final ThreadRestService
private final UidUtils
private final UserService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertToResponse
(AgentEntity entity) create
(AgentRequest request) void
createFromMember
(String mobile, String orgUid, String agentUid) void
delete
(AgentRequest request) void
deleteByUid
(String uid) existsByUserUidAndOrgUid
(String userUid, String orgUid) findByConnected
(boolean connected) findByEmailAndOrgUid
(String email, String orgUid) findByMobileAndOrgUid
(String mobile, String orgUid) findByUserUid
(String userUid) findByUserUidAndOrgUid
(String userUid, String orgUid) private void
handleFailedRetries
(AgentEntity agent) void
handleOptimisticLockingFailureException
(org.springframework.orm.ObjectOptimisticLockingFailureException e, AgentEntity agent) private void
query
(AgentRequest request) org.springframework.data.domain.Page<AgentResponse>
queryByOrg
(AgentRequest request) org.springframework.data.domain.Page<AgentResponse>
queryByUser
(AgentRequest request) queryDetail
(String uid) save
(AgentEntity agent) syncCurrentThreadCount
(AgentRequest request) update
(AgentRequest request) updateAutoReply
(AgentRequest request) updateAvatar
(AgentRequest request) void
updateConnect
(String userUid, boolean connected) 更新坐席在线状态updateStatus
(AgentRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
getUidFromRequest, queryByUid
-
Field Details
-
agentRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
memberService
-
userService
-
authService
-
bytedeskEventPublisher
-
actionService
-
serviceSettingsService
-
mqttConnectionService
-
threadRestService
-
MAX_RETRY_ATTEMPTS
private static final int MAX_RETRY_ATTEMPTS- See Also:
-
RETRY_DELAY_MS
private static final long RETRY_DELAY_MS- See Also:
-
retryQueue
-
-
Constructor Details
-
AgentRestService
public AgentRestService()
-
-
Method Details
-
queryByOrg
- Specified by:
queryByOrg
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
queryByUser
- Specified by:
queryByUser
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
query
-
queryDetail
-
create
- Specified by:
create
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
createFromMember
-
update
- Specified by:
update
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
updateAvatar
-
updateStatus
-
syncCurrentThreadCount
-
updateAutoReply
-
updateConnect
更新坐席在线状态- Parameters:
userUid
- 用户IDconnected
- 是否在线
-
findByUid
@Cacheable(value="agent", key="#uid", unless="#result == null") public Optional<AgentEntity> findByUid(String uid) - Specified by:
findByUid
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
findByUserUid
@Cacheable(value="agent", key="#userUid", unless="#result == null") public Optional<AgentEntity> findByUserUid(String userUid) -
findByMobileAndOrgUid
@Cacheable(value="agent", key="#mobile", unless="#result == null") public Optional<AgentEntity> findByMobileAndOrgUid(String mobile, String orgUid) -
findByEmailAndOrgUid
@Cacheable(value="agent", key="#email", unless="#result == null") public Optional<AgentEntity> findByEmailAndOrgUid(String email, String orgUid) -
findByUserUidAndOrgUid
@Cacheable(value="agent", key="#userUid", unless="#result == null") public Optional<AgentEntity> findByUserUidAndOrgUid(String userUid, String orgUid) -
existsByUserUidAndOrgUid
-
findAllConnected
-
findByConnected
-
save
@CachePut(value="agent",key="#agent.uid") @CachePut(value="agent",key="#agent.mobile",unless="#agent.mobile == null") @CachePut(value="agent",key="#agent.email",unless="#agent.email == null") public AgentEntity save(AgentEntity agent) - Specified by:
save
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
deleteByUid
- Specified by:
deleteByUid
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
delete
- Specified by:
delete
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
convertToResponse
- Specified by:
convertToResponse
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
handleOptimisticLockingFailureException
public void handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, AgentEntity agent) - Specified by:
handleOptimisticLockingFailureException
in classBaseRestService<AgentEntity,
AgentRequest, AgentResponse>
-
processRetryQueue
private void processRetryQueue() -
handleFailedRetries
-