diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTestApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTestApi.java index 9b083070..f774c236 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTestApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/ExamTestApi.java @@ -2,6 +2,7 @@ package com.xboe.module.exam.api; import javax.annotation.Resource; +import org.hibernate.exception.ConstraintViolationException; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -81,12 +82,25 @@ public class ExamTestApi extends ApiBaseController { if(StringUtil.isBlank(examTest.getTestName())){ return badRequest("标题为空"); } + + // 确保examTest有一个有效的主键ID(如果适用) + // 这取决于您的业务逻辑是否允许更新主键 + // 通常,更新操作不会改变主键 + if (examTest.getId() == null) { + return badRequest("更新操作需要有效的主键ID"); + } + try { examTestService.update(examTest); return success(examTest); + } catch (ConstraintViolationException e) { + // 捕获约束违反异常,并返回一个更具体的错误消息 + log.error("修改失败,违反了约束条件", e); + return error("修改失败,违反了约束条件(可能是主键已存在)"); } catch (Exception e) { - log.error("修改失败",e); - return error("修改失败",e.getMessage()); + // 捕获其他所有异常 + log.error("修改失败", e); + return error("修改失败", e.getMessage()); } } /**、 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java index fb665bc2..a4f313bb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java @@ -101,7 +101,7 @@ public class ExamTest extends BaseEntity { /** * 试卷的ID */ - @Column(name = "paper_id",nullable = false,length=20) + @Column(name = "paper_id",length=20) private String paperId; /** @@ -173,7 +173,7 @@ public class ExamTest extends BaseEntity { /**启用的,上架*/ - @Column(name = "enabled", nullable = false, length = 1) + @Column(name = "enabled", length = 1) private Boolean enabled; @Transient diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamTestServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamTestServiceImpl.java index 5b9bf331..8414badb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamTestServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamTestServiceImpl.java @@ -70,7 +70,18 @@ public class ExamTestServiceImpl implements IExamTestService { @Override public void update(ExamTest examTest) { - examTestDao.update(examTest); + if (examTest.getId() == null) { + throw new IllegalArgumentException("ID must not be null"); + } + String sql = "update boe_exam_test set arrange = "+ examTest.getArrange() +", deadline_time = '"+examTest.getDeadlineTime() +"' , " + + "entrance_time = '"+examTest.getEntranceTime() +"' , paper_id = "+examTest.getPaperId() +",pass_line = "+examTest.getPassLine() + + ", percent_score = "+examTest.getPercentScore() +" ,publish_time = '"+examTest.getPublishTime()+"' , published = "+examTest.getPublished()+ + ",random_count = "+examTest.getRandomCount()+" ,random_mode = "+examTest.getRandomMode()+",range_type = "+examTest.getRangeType() + + ",scoring_type = "+examTest.getScoringType() +",show_analysis="+examTest.getShowAnalysis() +",show_answer = "+examTest.getShowAnswer() + + ",test_duration = "+examTest.getTestDuration() +",test_name = '"+examTest.getTestName() +"',test_remark= "+examTest.getTestRemark() + + ",test_type= "+examTest.getTestType() +" ,test_up = '"+examTest.getTestUp() +"' ,test_front= "+examTest.getTestFront() + + ",times = '"+examTest.getTimes() +"' where id = "+examTest.getId()+""; + examTestDao.sqlUpdate(sql); } @Override