package org.jeecg.modules.ai.service.imp; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.ai.entity.LanguageModel; import org.jeecg.modules.ai.mapper.LanguageModelMapper; import org.jeecg.modules.ai.service.ILanguageModelService; import org.jeecg.modules.system.util.SecurityUtil; import org.jeecg.modules.utils.BeanMapper; import org.springframework.stereotype.Service; import java.util.List; /** * @author clown * * @date 2024/8/19 */ @Service public class LanguageModelServiceImpl extends ServiceImpl implements ILanguageModelService { @Override public boolean addLanguageModel(LanguageModel languageModel) { if (languageModel == null || languageModel.getAiType() == null) { return false; } LanguageModel model = new LanguageModel(); if (languageModel.getAiType() == 1) { boolean one =super.save(languageModel); if (one) { model.setProblem(languageModel.getProblem()); model.setParentId(languageModel.getId()); model.setAiType(2); super.save(model); return true; } } else if (languageModel.getAiType() == 2 || languageModel.getAiType() == 3) { //查询父类ID super.save(languageModel); return true; } return false; } @Override public LanguageModel selectParentId(Integer aiType, String aiId) { LanguageModel info = new LanguageModel(); List list = super.list(new LambdaQueryWrapper(). eq(LanguageModel::getAiType, aiType). eq(LanguageModel::getAiId, aiId). orderByDesc(LanguageModel::getCreateTime) ); if (list == null || list.isEmpty()) { return null; } BeanMapper.copy(list.get(0),info); return info; } @Override public List findListAiTitles() { LoginUser user = (LoginUser)SecurityUtils.getSubject().getPrincipal(); List list = super.list(new LambdaQueryWrapper(). eq(LanguageModel::getAiType, 1). eq(LanguageModel::getCreateBy, user.getUsername()). orderByDesc(LanguageModel::getCreateTime) ); if (list == null || list.isEmpty()) { return null; } return list; } @Override public List languageProblems(String id) { LoginUser user = (LoginUser)SecurityUtils.getSubject().getPrincipal(); LambdaQueryWrapper wrapperL = new LambdaQueryWrapper<>(); wrapperL.eq(LanguageModel::getCreateBy, user.getUsername()); wrapperL.eq(LanguageModel::getParentId, id); wrapperL.and((wrapper)->wrapper.eq(LanguageModel::getAiType, 2). or(). eq(LanguageModel::getAiType, 3)); wrapperL.orderByAsc(LanguageModel::getCreateTime); List list = super.list(wrapperL); if (list == null || list.isEmpty()) { return null; } return list; } }