注释了后端的server文件包

feature/lxh
李炫好 3 months ago
parent 13dc7dd1dd
commit 218783f26b

@ -16,97 +16,177 @@ import java.util.List;
public interface ExamService {
/**
*
*
*
*
*/
List<QuestionVo> getQuestionAll();
/**
*
*
*
*
* @param questionVo
*
*
*
*/
QuestionVo updateQuestion(QuestionVo questionVo);
/**
*
*
*
*
*
* @param questionCreateVo
*
*
*/
void questionCreate(QuestionCreateVo questionCreateVo);
/**
*
*
*
*
* @return
*
*
*/
QuestionSelectionVo getSelections();
/**
*
*
*
*
* @param id id
*
*
* @return VO
*
*
*/
QuestionDetailVo getQuestionDetail(String id);
/**
*
*
*
*
*
*/
List<ExamVo> getExamAll();
/**
* 便
*
*
*
*
* @return
*
*
*
*/
ExamQuestionTypeVo getExamQuestionType();
/**
*
*
*
*
* @param examCreateVo
*
*
*
* @param userId id
*
*
*
* @return
*
*
*
*/
Exam create(ExamCreateVo examCreateVo, String userId);
/**
*
*
*
*
* @return
*
*
*/
List<ExamCardVo> getExamCardList();
/**
* id
*
*
*
*
* @param id exam
*
*
*
* @return VO
*
*
*/
ExamDetailVo getExamDetail(String id);
/**
*
*
*
*
* @param userId
*
*
* @param examId
*
*
* @param answersMap
*
*
* @return
*
*
*/
ExamRecord judge(String userId, String examId, HashMap<String, List<String>> answersMap);
/**
* id
*
*
*
* @param userId id
*
*
* @return
*
*
*/
List<ExamRecordVo> getExamRecordList(String userId);
/**
*
*
*
*
* @param recordId id
*
*
*
* @return
*
*
*
*/
RecordDetailVo getRecordDetail(String recordId);
@ -115,8 +195,17 @@ public interface ExamService {
*
*
* @param examVo
*
*
* @param userId
*
*
*
* @return
*
*
*
*
*/
Exam update(ExamVo examVo, String userId);
}

@ -16,30 +16,54 @@ public interface UserService {
/**
*
*
*
*
* @param registerDTO
*
*
*
* @return
*
*
*/
User register(RegisterDTO registerDTO);
/**
* token
*
*
*
* @param loginQo
*
*
* @return tokennull
*
*
*/
String login(LoginQo loginQo);
/**
* id
*
*
*
*
* @return
*
*
*/
UserVo getUserInfo(String userId);
/**
* ()
*
*
* @param userId id
*
*
* @return
*
*
*/
UserInfoVo getInfo(String userId);
}

@ -23,23 +23,33 @@ import java.util.*;
@Transactional
public class ExamServiceImpl implements ExamService {
// 试卷仓库
private final ExamRepository examRepository;
// 考试记录仓库
private final ExamRecordRepository examRecordRepository;
// 问题仓库
private final QuestionRepository questionRepository;
// 用户仓库
private final UserRepository userRepository;
// 问题等级仓库
private final QuestionLevelRepository questionLevelRepository;
// 问题类型仓库
private final QuestionTypeRepository questionTypeRepository;
// 问题类别仓库
private final QuestionCategoryRepository questionCategoryRepository;
private final QuestionOptionRepository questionOptionRepository;
// 问题选项仓库
// 定义一个final类型的QuestionOptionRepository对象
private final QuestionOptionRepository questionOptionRepository;
// 构造函数传入多个Repository对象
public ExamServiceImpl(QuestionRepository questionRepository, UserRepository userRepository, QuestionLevelRepository questionLevelRepository, QuestionTypeRepository questionTypeRepository, QuestionCategoryRepository questionCategoryRepository, QuestionOptionRepository questionOptionRepository, ExamRepository examRepository, ExamRecordRepository examRecordRepository) {
// 将传入的Repository对象赋值给对应的成员变量
this.questionRepository = questionRepository;//
this.userRepository = userRepository;//
this.questionLevelRepository = questionLevelRepository;//
@ -49,7 +59,6 @@ public class ExamServiceImpl implements ExamService {
this.examRepository = examRepository;
this.examRecordRepository = examRecordRepository;
}
@Override
public List<QuestionVo> getQuestionAll() {
List<Question> questionList = questionRepository.findAll();
@ -144,8 +153,10 @@ public class ExamServiceImpl implements ExamService {
for (int i = 0; i < questionOptionVoList.size(); i++) {
QuestionOptionVo questionOptionVo = questionOptionVoList.get(i);
QuestionOption questionOption = new QuestionOption();
// 2.把questionOptionVo中的属性值复制到questionOption中。
BeanUtils.copyProperties(questionOptionVo, questionOption);
questionOptionList.add(questionOption);
// 3.如果questionOptionVo中的answer属性为true则把questionOptionVo中的questionOptionId属性值添加到questionAnswerOptionIds中。
if (questionOptionVo.getAnswer()) {
if (i != size - 1) {
// 把更新后的答案的id加上去,记得用-连到一起。
@ -158,18 +169,25 @@ public class ExamServiceImpl implements ExamService {
}
// 1.更新问题。
// 根据问题id从数据库中查找问题
Question question = questionRepository.findById(questionVo.getQuestionId()).orElse(null);
// 断言问题不为空
assert question != null;
// 将questionVo中的属性值复制到question中
BeanUtils.copyProperties(questionVo, question);
// 将问题答案选项id转换为字符串并设置到question中
question.setQuestionAnswerOptionIds(questionAnswerOptionIds.toString());
// 保存更新后的question到数据库中
questionRepository.save(question);
// 2.更新所有的option。
// 将questionOptionList中的所有option保存到数据库中
questionOptionRepository.saveAll(questionOptionList);
// 返回更新后的问题,方便前端局部刷新。
// 将更新后的question转换为questionVo并返回
return getQuestionVo(question);
}
}
@Override
public void questionCreate(QuestionCreateVo questionCreateVo) {

@ -109,23 +109,35 @@ public class UserServiceImpl implements UserService {
@Override
public UserVo getUserInfo(String userId) {
// 根据用户ID从数据库中查找用户信息
User user = userRepository.findById(userId).orElse(null);
// 创建一个UserVo对象
UserVo userVo = new UserVo();
// 断言user对象不为空
assert user != null;
// 将user对象的属性复制到userVo对象中
BeanUtils.copyProperties(user, userVo);
// 返回userVo对象
return userVo;
}
@Override
public UserInfoVo getInfo(String userId) {
// 根据用户ID查询用户信息
User user = userRepository.findById(userId).orElse(null);
// 断言用户信息不为空
assert user != null;
// 创建用户信息视图对象
UserInfoVo userInfoVo = new UserInfoVo();
// 1.尽可能的拷贝属性
BeanUtils.copyProperties(user, userInfoVo);
// 获取用户角色ID
Integer roleId = user.getUserRoleId();
// 根据角色ID查询角色信息
Role role = roleRepository.findById(roleId).orElse(null);
// 断言角色信息不为空
assert role != null;
// 获取角色名称
String roleName = role.getRoleName();
// 2.设置角色名称
@ -149,17 +161,27 @@ public class UserServiceImpl implements UserService {
BeanUtils.copyProperties(page, pageVo);
// 4.2 向Page中添加action
List<ActionVo> actionVoList = new ArrayList<>();
String actionIdsStr = page.getActionIds();
String[] actionIdArr = actionIdsStr.split("-");
for (String actionIdStr : actionIdArr) {
Integer actionId = Integer.parseInt(actionIdStr);
Action action = actionRepository.findById(actionId).orElse(null);
ActionVo actionVo = new ActionVo();
assert action != null;
BeanUtils.copyProperties(action, actionVo);
actionVoList.add(actionVo);
}
// 创建一个ActionVo类型的列表
List<ActionVo> actionVoList = new ArrayList<>();
// 获取页面中的actionIds字符串
String actionIdsStr = page.getActionIds();
// 将actionIds字符串按照"-"进行分割,得到一个字符串数组
String[] actionIdArr = actionIdsStr.split("-");
// 遍历字符串数组
for (String actionIdStr : actionIdArr) {
// 将字符串转换为整数
Integer actionId = Integer.parseInt(actionIdStr);
// 根据actionId从数据库中查找对应的Action对象
Action action = actionRepository.findById(actionId).orElse(null);
// 创建一个ActionVo对象
ActionVo actionVo = new ActionVo();
// 断言action对象不为空
assert action != null;
// 将action对象的属性值复制到actionVo对象中
BeanUtils.copyProperties(action, actionVo);
// 将actionVo对象添加到列表中
actionVoList.add(actionVo);
}
// 设置actionVoList到pageVo中然后把pageVo加到pageVoList中
pageVo.setActionVoList(actionVoList);
// 设置pageVoList下面再设置到RoleVo中

Loading…
Cancel
Save