注释了后端的server文件包

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

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

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

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

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

Loading…
Cancel
Save