diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuEvaluationController.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuEvaluationController.java index 8b499ba..931cc73 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuEvaluationController.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuEvaluationController.java @@ -2,6 +2,7 @@ package com.sztzjy.block_finance.controller; import com.sztzjy.block_finance.annotation.AnonymousAccess; import com.sztzjy.block_finance.entity.dto.StuAssessmentQuestionDetailsDTO; +import com.sztzjy.block_finance.entity.dto.StuLearningAssessmentScoreDTO; import com.sztzjy.block_finance.mappers.StuFinanNeedsMapper; import com.sztzjy.block_finance.service.StuEvaluationService; import com.sztzjy.block_finance.util.ResultDataEntity; @@ -10,9 +11,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -30,9 +29,17 @@ public class StuEvaluationController { @PostMapping("/getLearningAssessment") @AnonymousAccess @ApiOperation("理论测评查看") - public ResultDataEntity> getLearningAssessment(@ApiParam("归属模块") String module, @ApiParam("用户ID") String userId) { - List list = stuEvaluationService.getLearningAssessment(module,userId); + public ResultDataEntity> getLearningAssessment(@RequestParam @ApiParam("用户ID") String userId) { + List list = stuEvaluationService.getLearningAssessment(userId); return new ResultDataEntity<>(HttpStatus.OK, list); } + + @PostMapping("/submitEarningAssessment") + @AnonymousAccess + @ApiOperation("理论测评提交") + public ResultDataEntity submitEarningAssessment(@RequestBody StuLearningAssessmentScoreDTO assessmentScoreDTO) { + int result= stuEvaluationService.submitEarningAssessment(assessmentScoreDTO); + return new ResultDataEntity<>(HttpStatus.OK,"成功",result); + } } diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentDTO.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentDTO.java new file mode 100644 index 0000000..87e4c66 --- /dev/null +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentDTO.java @@ -0,0 +1,52 @@ +package com.sztzjy.block_finance.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author tz + * @date 2023/9/4 11:52 + */ +@Data +public class StuLearningAssessmentDTO { + private String topicId; + + private String topicName; + + private String topicType; + + private String topicDifficultyLevel; + + private BigDecimal topicScore; + + private Integer topicNumber; + + private String optionA; + + private String optionB; + + private String optionC; + + private String optionD; + + private String optionE; + + private String optionF; + + private String answer; + + private String[] studentAnswer; + + private String questionAnswer; + + private String module; + + private Integer logic; + + private Integer state; + + private String reason; + + private String optionImg; +} diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentScoreDTO.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentScoreDTO.java new file mode 100644 index 0000000..520b9cc --- /dev/null +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuLearningAssessmentScoreDTO.java @@ -0,0 +1,17 @@ +package com.sztzjy.block_finance.entity.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @author tz + * @date 2023/9/4 14:50 + */ +@Data +public class StuLearningAssessmentScoreDTO { + private String userId; + private String learningProjects; + private String assessmentItems; + private List stuLearningAssessmentDTOS; +} diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuEvaluationService.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuEvaluationService.java index ab2ea3b..ab18a1a 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuEvaluationService.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuEvaluationService.java @@ -1,6 +1,7 @@ package com.sztzjy.block_finance.service; import com.sztzjy.block_finance.entity.dto.StuAssessmentQuestionDetailsDTO; +import com.sztzjy.block_finance.entity.dto.StuLearningAssessmentScoreDTO; import java.util.List; @@ -9,5 +10,7 @@ import java.util.List; * @date 2024/4/7 10:20 */ public interface StuEvaluationService { - List getLearningAssessment(String module, String userId); + List getLearningAssessment(String userId); + + int submitEarningAssessment(StuLearningAssessmentScoreDTO assessmentScoreDTO); } diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java index f8b8b37..c3d0b22 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java @@ -237,6 +237,8 @@ public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartServ stuDigitalDebtVoucher.setImportFactorDigitalSignature(ciphertext); } stuDigitalDebtVoucherMapper.updateByPrimaryKey(stuDigitalDebtVoucher); + }else { + throw new ServiceException(HttpStatus.ACCEPTED,"数字债权凭证为生成"); } } @@ -265,10 +267,14 @@ public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartServ stuTransactionDocumentsInfo.setDiscountDisplay(0); } if(i<10){ //仅发起债权转让贴现展示 + if(i<7){ + stuTransactionDocumentsInfo.setDownloadStatus(1); + }else { + stuTransactionDocumentsInfo.setDownloadStatus(0); + } stuTransactionDocumentsInfo.setDiscountDisplay(1); stuTransactionDocumentsInfo.setSequence(i+1); - stuTransactionDocumentsInfo.setUploadStatus(1); - stuTransactionDocumentsInfo.setDownloadStatus(1); + stuTransactionDocumentsInfo.setUploadStatus(0); stuTransactionDocumentsInfo.setReadStatus(0); } if(strings[i].equals("应收账款转让通知书 回执")){ //核心企业和保理公司展示 @@ -342,11 +348,11 @@ public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartServ throw new ServiceException(HttpStatus.ACCEPTED,"供方填写信息错误"); } if(!materialName.equals("磁性器件")){ - throw new ServiceException(HttpStatus.ACCEPTED,"需方填写信息错误"); + throw new ServiceException(HttpStatus.ACCEPTED,"物料名称填写信息错误"); } String plainString = totalAmount.stripTrailingZeros().toPlainString(); if(!plainString.equals("100000")){ - throw new ServiceException(HttpStatus.ACCEPTED,"需方填写信息错误"); + throw new ServiceException(HttpStatus.ACCEPTED,"总金额填写信息错误"); } } @@ -365,7 +371,7 @@ public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartServ BigDecimalUtils bigDecimalUtils=new BigDecimalUtils(); // TODO: 2024/4/3 1、将代币加入保理商对应账户 StuJoinNodeBySupplyExample joinNodeExample=new StuJoinNodeBySupplyExample(); - joinNodeExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(3); + joinNodeExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(4); List stuJoinNodes = stuJoinNodeMapper.selectByExample(joinNodeExample); if(stuJoinNodes.isEmpty()){ throw new ServiceException(HttpStatus.ACCEPTED,"二级供应商未加入节点"); @@ -585,7 +591,7 @@ public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartServ List stuDigitalDebtVouchers = stuDigitalDebtVoucherMapper.selectByExample(example); if(stuDigitalDebtVouchers.isEmpty()){ - return null; + throw new ServiceException(HttpStatus.ACCEPTED,"数字债权凭证未生成"); } return stuDigitalDebtVouchers.get(0); } diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuEvaluationServiceImpl.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuEvaluationServiceImpl.java index c2cf2fa..02b60f4 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuEvaluationServiceImpl.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuEvaluationServiceImpl.java @@ -1,18 +1,21 @@ package com.sztzjy.block_finance.service.impl; -import com.sztzjy.block_finance.entity.StuAssessmentQuestionDetails; -import com.sztzjy.block_finance.entity.StuAssessmentQuestionDetailsExample; -import com.sztzjy.block_finance.entity.StuLearningAssessment; -import com.sztzjy.block_finance.entity.StuLearningAssessmentExample; +import com.sztzjy.block_finance.config.exception.handler.ServiceException; +import com.sztzjy.block_finance.entity.*; import com.sztzjy.block_finance.entity.dto.StuAssessmentQuestionDetailsDTO; +import com.sztzjy.block_finance.entity.dto.StuLearningAssessmentDTO; +import com.sztzjy.block_finance.entity.dto.StuLearningAssessmentScoreDTO; import com.sztzjy.block_finance.mappers.StuAssessmentQuestionDetailsMapper; import com.sztzjy.block_finance.mappers.StuLearningAssessmentMapper; import com.sztzjy.block_finance.service.StuEvaluationService; import com.sztzjy.block_finance.util.ConvertUtil; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; +import java.util.UUID; /** * @author tz @@ -27,16 +30,14 @@ public class StuEvaluationServiceImpl implements StuEvaluationService { @Resource StuLearningAssessmentMapper stuLearningAssessmentMapper; @Override - public List getLearningAssessment(String module, String userId) { + public List getLearningAssessment(String userId) { StuAssessmentQuestionDetailsExample detailsExample=new StuAssessmentQuestionDetailsExample(); - detailsExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module); + detailsExample.createCriteria().andUserIdEqualTo(userId); List stuAssessmentQuestionDetails = stuAssessmentQuestionDetailsMapper.selectByExample(detailsExample); - StuLearningAssessmentExample example = new StuLearningAssessmentExample(); - StuLearningAssessmentExample.Criteria criteria = example.createCriteria(); - criteria.andModuleEqualTo(module).andLogicEqualTo(1); - List stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(example); + + List stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(null); List stuAssessmentQuestionDetailsDTOS = convertUtil.entityToDTOList(stuLearningAssessments, StuAssessmentQuestionDetailsDTO.class); if(stuAssessmentQuestionDetails.size()!=0){ for (int i = 0; i < stuAssessmentQuestionDetails.size(); i++) { @@ -56,4 +57,88 @@ public class StuEvaluationServiceImpl implements StuEvaluationService { } return stuAssessmentQuestionDetailsDTOS; } + + @Override + public int submitEarningAssessment(StuLearningAssessmentScoreDTO assessmentScoreDTO) { + StuAssessmentQuestionDetailsExample detailsExample = new StuAssessmentQuestionDetailsExample(); + detailsExample.createCriteria().andUserIdEqualTo(assessmentScoreDTO.getUserId()); + List stuAssessmentQuestionDetails = stuAssessmentQuestionDetailsMapper.selectByExample(detailsExample); + + List stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(null); + + List stuLearningAssessmentDTOS = assessmentScoreDTO.getStuLearningAssessmentDTOS(); + + int count = 0; + if (!stuAssessmentQuestionDetails.isEmpty()) { + + + for (int i = 0; i < stuLearningAssessmentDTOS.size(); i++) { + for (int j = 0; j < stuLearningAssessments.size(); j++) { + if (stuLearningAssessmentDTOS.get(i).getTopicId().equals(stuLearningAssessments.get(j).getTopicId())) { + String[] studentAnswer = stuLearningAssessmentDTOS.get(i).getStudentAnswer(); + String saw = ""; + for (int k = 0; k < studentAnswer.length; k++) { + if (studentAnswer.length - 1 == k) { + saw += studentAnswer[k]; + } else { + saw += studentAnswer[k] + ","; + } + } + String string = stuLearningAssessments.get(j).getAnswer(); + for (int k = 0; k < stuAssessmentQuestionDetails.size(); k++) { + if (stuAssessmentQuestionDetails.get(k).getTopicId().equals(stuLearningAssessmentDTOS.get(i).getTopicId())) { + StuAssessmentQuestionDetails assessmentQuestionDetails = stuAssessmentQuestionDetails.get(k); + assessmentQuestionDetails.setStudentAnswer(saw); + assessmentQuestionDetails.setUserId(assessmentScoreDTO.getUserId()); + if (saw.equals(string)) { + assessmentQuestionDetails.setRightOrWrong("正确"); + } else { + assessmentQuestionDetails.setRightOrWrong("错误"); + count++; + } + stuAssessmentQuestionDetailsMapper.updateByPrimaryKey(assessmentQuestionDetails); + } + } + } + } + } + + return count; + } else { + + for (int i = 0; i < stuLearningAssessmentDTOS.size(); i++) { + for (int j = 0; j < stuLearningAssessments.size(); j++) { + if (stuLearningAssessmentDTOS.get(i).getTopicId().equals(stuLearningAssessments.get(j).getTopicId())) { + String[] studentAnswer = stuLearningAssessmentDTOS.get(i).getStudentAnswer(); + String saw = ""; + for (int k = 0; k < studentAnswer.length; k++) { + if (studentAnswer.length - 1 == k) { + saw += studentAnswer[k]; + } else { + saw += studentAnswer[k] + ","; + } + } + String string = stuLearningAssessments.get(j).getAnswer(); + StuAssessmentQuestionDetails details = new StuAssessmentQuestionDetails(); + int uuid = UUID.randomUUID().hashCode(); + if (uuid < 0) { + uuid = -uuid; + } + details.setDetailsId(uuid); + details.setStudentAnswer(saw); + details.setTopicId(stuLearningAssessmentDTOS.get(i).getTopicId()); + details.setUserId(assessmentScoreDTO.getUserId()); + if (saw.equals(string)) { + details.setRightOrWrong("正确"); + } else { + details.setRightOrWrong("错误"); + count++; + } + stuAssessmentQuestionDetailsMapper.insert(details); + } + } + } + return count; + } + } }