package com.vincent.rsf.server.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.system.entity.AiParam; import com.vincent.rsf.server.system.mapper.AiParamMapper; import com.vincent.rsf.server.system.service.AiParamService; import org.springframework.stereotype.Service; import java.util.List; @Service("aiParamService") public class AiParamServiceImpl extends ServiceImpl implements AiParamService { @Override public boolean existsModelCode(String modelCode, Long excludeId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(AiParam::getModelCode, modelCode); if (excludeId != null) { wrapper.ne(AiParam::getId, excludeId); } return this.count(wrapper) > 0; } @Override public void resetDefaultFlag(Long excludeId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper() .set(AiParam::getDefaultFlag, 0) .eq(AiParam::getDefaultFlag, 1); if (excludeId != null) { wrapper.ne(AiParam::getId, excludeId); } this.update(wrapper); } @Override public List listEnabledModels() { return this.list(new LambdaQueryWrapper() .eq(AiParam::getStatus, 1) .orderByDesc(AiParam::getDefaultFlag) .orderByAsc(AiParam::getSort, AiParam::getId)); } @Override public AiParam getEnabledModel(String modelCode) { return this.getOne(new LambdaQueryWrapper() .eq(AiParam::getModelCode, modelCode) .eq(AiParam::getStatus, 1) .last("limit 1")); } @Override public AiParam getDefaultModel() { AiParam aiParam = this.getOne(new LambdaQueryWrapper() .eq(AiParam::getDefaultFlag, 1) .eq(AiParam::getStatus, 1) .orderByAsc(AiParam::getSort, AiParam::getId) .last("limit 1")); if (aiParam != null) { return aiParam; } List list = listEnabledModels(); return list.isEmpty() ? null : list.get(0); } }