package com.vincent.rsf.server.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.system.entity.AiModelRoute; import com.vincent.rsf.server.system.mapper.AiModelRouteMapper; import com.vincent.rsf.server.system.service.AiModelRouteService; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service("aiModelRouteService") public class AiModelRouteServiceImpl extends ServiceImpl implements AiModelRouteService { @Override public AiModelRoute getTenantRoute(Long tenantId, Long id) { if (tenantId == null || id == null) { return null; } return this.getOne(new LambdaQueryWrapper() .eq(AiModelRoute::getTenantId, tenantId) .eq(AiModelRoute::getId, id) .last("limit 1")); } @Override public List listAvailableRoutes(Long tenantId, String routeCode) { Date now = new Date(); return this.list(new LambdaQueryWrapper() .eq(AiModelRoute::getTenantId, tenantId) .eq(AiModelRoute::getRouteCode, routeCode) .eq(AiModelRoute::getStatus, 1) .and(wrapper -> wrapper.isNull(AiModelRoute::getCooldownUntil).or().le(AiModelRoute::getCooldownUntil, now)) .orderByAsc(AiModelRoute::getPriority, AiModelRoute::getId)); } }