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 AgentRepositoryprivate final AgentSettingsRestServiceprivate final AuthServiceprivate final BytedeskEventPublisherprivate final MemberRestServiceprivate final org.modelmapper.ModelMapperprivate final ThreadRestServiceprivate final UidUtilsprivate final UserService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionacceptByAgent(ThreadRequest threadRequest) convertToExcel(AgentEntity entity) convertToResponse(AgentEntity entity) create(AgentRequest request) voidcreateFromMember(String mobile, String orgUid) voidcreateFromMemberByEmail(String email, String orgUid) protected org.springframework.data.jpa.domain.Specification<AgentEntity>createSpecification(AgentRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(AgentRequest request) voiddeleteByUid(String uid) protected AgentEntitydoSave(AgentEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<AgentEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<AgentEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByUid(String uid) existsByUserUidAndOrgUid(String userUid, String orgUid) findByEmailAndOrgUid(String email, String orgUid) findByMobileAndOrgUid(String mobile, String orgUid) 强制从数据库加载(绕过 Spring Cache)。findByUserUid(String userUid) findByUserUidAndOrgUid(String userUid, String orgUid) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, AgentEntity agent) query(AgentRequest request) queryByUserUid(AgentRequest request) 根据指定 userUid 查询单个客服信息 - 若传入 orgUid:按 userUid + orgUid 精确查询 - 未传 orgUid:仅按 userUid 查询update(AgentRequest request) updateAutoReply(AgentRequest request) updateAvatar(AgentRequest request) updateStatus(AgentRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
agentRepository
-
uidUtils
-
memberRestService
-
userService
-
authService
-
bytedeskEventPublisher
-
threadRestService
-
agentSettingsRestService
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper
-
-
Constructor Details
-
AgentRestService
public AgentRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<AgentEntity> createSpecification(AgentRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<AgentEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<AgentEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
query
-
queryByUserUid
根据指定 userUid 查询单个客服信息 - 若传入 orgUid:按 userUid + orgUid 精确查询 - 未传 orgUid:仅按 userUid 查询 -
create
- Specified by:
createin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
createFromMember
-
createFromMemberByEmail
-
update
- Specified by:
updatein classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
updateAvatar
-
updateStatus
-
acceptByAgent
-
updateAutoReply
-
doSave
@Cacheable(value="agent", key="#entity.uid", unless="#result == null") protected AgentEntity doSave(AgentEntity entity) Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
delete
- Specified by:
deletein classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
convertToExcel
-
handleOptimisticLockingFailureException
public AgentEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, AgentEntity agent) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
findByUid
- Specified by:
findByUidin classBaseRestService<AgentEntity,AgentRequest, AgentResponse>
-
findByUidFromDatabase
强制从数据库加载(绕过 Spring Cache)。 说明: -findByUid(String)带有 @Cacheable,可能直接命中缓存 - 该方法直接走 Repository 查询,用于在缓存对象缺失关联(member/user)时兜底 -
findByUserUid
-
findByMobileAndOrgUid
-
findByEmailAndOrgUid
-
findByUserUidAndOrgUid
-
existsByUserUidAndOrgUid
-
existsByUid
-
findAllConnected
-