llm-survey/backend/src/main/java/ltd/qubit/survey/dao/SurveyResponseDao.java

58 lines
1.3 KiB
Java

package ltd.qubit.survey.dao;
import java.util.List;
import java.util.Optional;
import ltd.qubit.survey.model.SurveyResponse;
/**
* 问卷答案DAO接口
*/
public interface SurveyResponseDao extends BaseDao<SurveyResponse, Long> {
/**
* 根据用户ID查询答案列表
*
* @param userId 用户ID
* @return 答案列表
*/
List<SurveyResponse> findByUserId(Long userId);
/**
* 根据问题ID查询答案列表
*
* @param questionId 问题ID
* @return 答案列表
*/
List<SurveyResponse> findByQuestionId(Long questionId);
/**
* 根据用户ID和问题ID查询答案
*
* @param userId 用户ID
* @param questionId 问题ID
* @return 答案对象
*/
Optional<SurveyResponse> findByUserIdAndQuestionId(Long userId, Long questionId);
/**
* 批量插入答案
*
* @param responses 答案列表
* @return 影响的行数
*/
int batchInsert(List<SurveyResponse> responses);
/**
* 根据用户ID删除所有答案
*
* @param userId 用户ID
* @return 影响的行数
*/
int deleteByUserId(Long userId);
/**
* 获取所有已提交答案的用户ID列表
*
* @return 用户ID列表
*/
List<Long> findDistinctUserIds();
}