CollegeTestDetailService.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.ygj.yuemum.service.college;
  2. import com.ygj.yuemum.dao.college.CollegeTestDetailDao;
  3. import com.ygj.yuemum.domain.college.CollegeTest;
  4. import com.ygj.yuemum.domain.college.CollegeTestDetail;
  5. import com.ygj.yuemum.domain.college.CollegeTestResult;
  6. import com.ygj.yuemum.domain.college.CollegeUserPoints;
  7. import org.omg.PortableInterceptor.INACTIVE;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.util.LinkedHashMap;
  11. import java.util.List;
  12. @Service
  13. public class CollegeTestDetailService {
  14. @Autowired
  15. private CollegeTestDetailDao collegeTestDetailDao;
  16. @Autowired
  17. private CollegeTestResultService collegeTestResultService;
  18. @Autowired
  19. private CollegeTestService collegeTestService;
  20. @Autowired
  21. private CollegeUserPointsService collegeUserPointsService;
  22. public List<CollegeTestDetail> getCollegeTestDetails() {
  23. List<CollegeTestDetail> collegeTestDetails = collegeTestDetailDao.getAll();
  24. return collegeTestDetails;
  25. }
  26. public CollegeTestDetail getCollegeTestDetail(Integer id) {
  27. CollegeTestDetail collegeTestDetail = collegeTestDetailDao.selectByPrimaryKey(id);
  28. return collegeTestDetail;
  29. }
  30. public int addCollegeTestDetail(CollegeTestDetail collegeTestDetail) {
  31. return collegeTestDetailDao.insertSelective(collegeTestDetail);
  32. }
  33. public int deleteCollegeTestDetail(Integer id) {
  34. return collegeTestDetailDao.deleteByPrimaryKey(id);
  35. }
  36. public int updateCollegeTestDetail(CollegeTestDetail collegeTestDetail) {
  37. return collegeTestDetailDao.updateByPrimaryKeySelective(collegeTestDetail);
  38. }
  39. public CollegeTestDetail queryUserAnswers (CollegeTestDetail collegeTestDetail) {
  40. return collegeTestDetailDao.queryUserAnswers(collegeTestDetail);
  41. }
  42. public LinkedHashMap<String, Object> addTestDetail(String openid, Integer core_id, String answers) {
  43. LinkedHashMap<String, Object> tableData = new LinkedHashMap<>();
  44. CollegeTestDetail collegeTestDetailQuery = new CollegeTestDetail();
  45. collegeTestDetailQuery.setOpenid(openid);
  46. collegeTestDetailQuery.setCoreid(core_id);
  47. if(collegeTestDetailDao.selectByOpenId(collegeTestDetailQuery) == null) {
  48. CollegeTestDetail collegeTestDetail = new CollegeTestDetail();
  49. collegeTestDetail.setCoreid(core_id);
  50. collegeTestDetail.setOpenid(openid);
  51. collegeTestDetail.setStatus(9);
  52. String[] answersL = answers.split(",");
  53. int score = 0;
  54. int count = 0;
  55. int i = 0;
  56. List<CollegeTest> collegeTests = collegeTestService.selectByCoreId(core_id);
  57. for (CollegeTest collegeTest: collegeTests) {
  58. List<CollegeTestResult> collegeTestResults = collegeTestResultService.selectByTestId(collegeTest.getId());
  59. for(CollegeTestResult collegeTestResult:collegeTestResults) {
  60. if(collegeTestResult.isIsright()&&answersL[i].equals(String.valueOf(collegeTestResult.getSeq()))){
  61. score = score + collegeTest.getScore();
  62. count = count + 1;
  63. break;
  64. }
  65. }
  66. i++;
  67. }
  68. tableData.put("score",score);
  69. tableData.put("count",count);
  70. //insert into Detail
  71. collegeTestDetail.setResult(score);
  72. collegeTestDetail.setAnswers(answers);
  73. collegeTestDetailDao.insertSelective(collegeTestDetail);
  74. //增加学分
  75. if (collegeUserPointsService.queryOneUserPoints(openid) != null) {
  76. collegeUserPointsService.updatePointsByTest(openid);
  77. } else {
  78. CollegeUserPoints collegeUserPoints = new CollegeUserPoints();
  79. collegeUserPoints.setOpenid(openid);
  80. collegeUserPoints.setCredit_available(1);
  81. collegeUserPoints.setCredit_total(1);
  82. collegeUserPointsService.addCollegeUserPoints(collegeUserPoints);
  83. }
  84. return tableData;
  85. } else {
  86. tableData.put("score","已做过测试");
  87. return tableData;
  88. }
  89. }
  90. }