package ltd.qubit.survey.service; import java.util.List; import java.util.Optional; import ltd.qubit.survey.model.SurveyResponse; import org.springframework.transaction.annotation.Transactional; /** * 问卷答案服务接口 */ @Transactional(readOnly = true) public interface SurveyResponseService extends BaseService { /** * 根据用户ID查询答案列表 * * @param userId 用户ID * @return 答案列表 */ List findByUserId(Long userId); /** * 根据问题ID查询答案列表 * * @param questionId 问题ID * @return 答案列表 */ List findByQuestionId(Long questionId); /** * 根据用户ID和问题ID查询答案 * * @param userId 用户ID * @param questionId 问题ID * @return 答案对象 */ Optional findByUserIdAndQuestionId(Long userId, Long questionId); /** * 批量保存答案 * * @param responses 答案列表 * @return 保存成功的答案列表 */ @Transactional List batchSave(List responses); /** * 删除用户的所有答案 * * @param userId 用户ID */ @Transactional void deleteByUserId(Long userId); /** * 提交问卷答案 * * @param userId 用户ID * @param responses 答案列表 * @return 提交成功的答案列表 */ @Transactional List submitSurvey(Long userId, List responses); }