64 lines
1.5 KiB
Java
64 lines
1.5 KiB
Java
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<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 保存成功的答案列表
|
|
*/
|
|
@Transactional
|
|
List<SurveyResponse> batchSave(List<SurveyResponse> responses);
|
|
|
|
/**
|
|
* 删除用户的所有答案
|
|
*
|
|
* @param userId 用户ID
|
|
*/
|
|
@Transactional
|
|
void deleteByUserId(Long userId);
|
|
|
|
/**
|
|
* 提交问卷答案
|
|
*
|
|
* @param userId 用户ID
|
|
* @param responses 答案列表
|
|
* @return 提交成功的答案列表
|
|
*/
|
|
@Transactional
|
|
List<SurveyResponse> submitSurvey(Long userId, List<SurveyResponse> responses);
|
|
} |