From a1b0f938832dd36eddc66fe2b92ea32ba26dee7d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 07 六月 2024 15:53:42 +0800
Subject: [PATCH] 模板、试卷增删改查

---
 src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java        |   46 ++++---
 src/main/java/com/ycl/jxkg/domain/vo/ExamTemplateVO.java                    |   43 +------
 src/main/java/com/ycl/jxkg/domain/form/ExamPaperForm.java                   |   87 ++++++++++++++
 src/main/java/com/ycl/jxkg/controller/admin/ExamTemplateController.java     |    4 
 src/main/resources/mapper/ExamTemplateMapper.xml                            |    9 
 src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java        |   87 +++++++++++++-
 src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperPageRequestVO.java |    8 
 src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamResponseVO.java         |    7 +
 src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java                        |   16 +-
 src/main/java/com/ycl/jxkg/domain/entity/ExamPaper.java                     |   15 ++
 src/main/java/com/ycl/jxkg/mapper/ExamTemplateMapper.java                   |    1 
 src/main/resources/mapper/ExamPaperMapper.xml                               |   27 ++--
 src/main/java/com/ycl/jxkg/domain/form/ExamTemplateForm.java                |    7 +
 13 files changed, 261 insertions(+), 96 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java
index 23b4b13..e51a998 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperController.java
@@ -3,6 +3,10 @@
 import com.ycl.jxkg.base.BaseApiController;
 import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.domain.entity.ExamPaper;
+import com.ycl.jxkg.domain.form.ExamPaperForm;
+import com.ycl.jxkg.enums.VisibilityEnum;
+import com.ycl.jxkg.group.Add;
+import com.ycl.jxkg.group.Update;
 import com.ycl.jxkg.mapper.ExamPaperMapper;
 import com.ycl.jxkg.service.ExamPaperService;
 import com.ycl.jxkg.utils.DateTimeUtil;
@@ -12,25 +16,30 @@
 import com.ycl.jxkg.domain.vo.admin.exam.ExamResponseVO;
 import com.github.pagehelper.PageInfo;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-
+import java.util.Date;
+@Validated
 @RequiredArgsConstructor
 @RestController("AdminExamPaperController")
 @RequestMapping(value = "/api/admin/exam/paper")
 public class ExamPaperController extends BaseApiController {
 
-    private final ExamPaperService  examPaperService;
+    private final ExamPaperService examPaperService;
 
     private final ExamPaperMapper baseMapper;
+
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     public Result<PageInfo<ExamResponseVO>> pageList(@RequestBody ExamPaperPageRequestVO model) {
         PageInfo<ExamPaper> pageInfo = examPaperService.page(model);
         PageInfo<ExamResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
             ExamResponseVO vo = new ExamResponseVO();
             BeanUtils.copyProperties(e, vo);
+            vo.setVisibility(VisibilityEnum.valueOf(vo.getVisibility()).getCode()+"");
             vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
             return vo;
         });
@@ -38,26 +47,27 @@
     }
 
 
-
-    @RequestMapping(value = "/taskExamPage", method = RequestMethod.POST)
-    public Result<PageInfo<ExamResponseVO>> taskExamPageList(@RequestBody ExamPaperPageRequestVO model) {
-        PageInfo<ExamPaper> pageInfo = examPaperService.taskExamPage(model);
-        PageInfo<ExamResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
-            ExamResponseVO vo = new ExamResponseVO();
-            BeanUtils.copyProperties(e, vo);
-            vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
-            return vo;
-        });
-        return Result.ok(page);
+    @RequestMapping(value = "/addPaper", method = RequestMethod.POST)
+    public Result taskExamPageList(@RequestBody @Validated(Add.class)  ExamPaperForm form) {
+        if (!StringUtils.isBlank(form.getVisibility())) {
+            form.setVisibility(VisibilityEnum.fromCode(form.getVisibility()).getName());
+        }
+        form.setCreateUser(getCurrentUser().getId());
+        form.setCreateTime(new Date());
+        ExamPaper entity = ExamPaperForm.getEntityByForm(form,null);
+        examPaperService.save(entity);
+        return Result.ok();
     }
-
 
 
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
-    public Result<ExamPaperEditRequestVO> edit(@RequestBody @Valid ExamPaperEditRequestVO model) {
-        ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser());
-        ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId());
-        return Result.ok(newVM);
+    public Result edit(@RequestBody @Validated(Update.class)  ExamPaperForm form) {
+        if (!StringUtils.isBlank(form.getVisibility())) {
+            form.setVisibility(VisibilityEnum.fromCode(form.getVisibility()).getName());
+        }
+        ExamPaper entity = ExamPaperForm.getEntityByForm(form,null);
+        examPaperService.updateById(entity);
+        return Result.ok();
     }
 
     @RequestMapping(value = "/select/{id}", method = RequestMethod.POST)
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamTemplateController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamTemplateController.java
index e8ebd12..4de12c9 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ExamTemplateController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ExamTemplateController.java
@@ -50,6 +50,10 @@
     @PutMapping
     @ApiOperation(value = "淇敼", notes = "淇敼")
     public Result update(@RequestBody @Validated(Update.class) ExamTemplateForm form) {
+        //鍙傛暟鏍¢獙
+        if(form.getDeductType()!=null && (form.getDeductType() ==PartCorrect.getCode() || form.getDeductType() == EachCorrect.getCode()) && (form.getDeductTypeScore() ==null || form.getDeductTypeScore().compareTo(BigDecimal.ZERO) <= 0)){
+            return Result.fail(SystemCode.ParameterValidError.getCode(),"澶氶�夎瘎鍒嗕笉鑳戒负0鎴栫┖");
+        }
         return examTemplateService.update(form);
     }
 
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaper.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaper.java
index 5c9cfe5..d5913af 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaper.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaper.java
@@ -2,10 +2,12 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.jxkg.domain.base.AbsEntity;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 @Data
@@ -36,7 +38,7 @@
      * 璇曞嵎鎬诲垎
      */
     @TableField("score")
-    private Integer score;
+    private BigDecimal score;
 
     /**
      * 棰樼洰鏁伴噺
@@ -54,6 +56,7 @@
     private Integer createUser;
 
     @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -63,8 +66,14 @@
     private String visibility;
 
     /**
-     * 鎵e垎绫诲瀷
+     * 澶氶�夋墸鍒嗙被鍨�
      * */
     @TableField("deduct_type")
-    private String deductType;
+    private Integer deductType;
+
+    /**
+     * 澶氶�夎瘎鍒嗗垎鏁�
+     * */
+    @TableField("deduct_type_score")
+    private BigDecimal deductTypeScore;
 }
diff --git a/src/main/java/com/ycl/jxkg/domain/form/ExamPaperForm.java b/src/main/java/com/ycl/jxkg/domain/form/ExamPaperForm.java
new file mode 100644
index 0000000..a80afc7
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/form/ExamPaperForm.java
@@ -0,0 +1,87 @@
+package com.ycl.jxkg.domain.form;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.jxkg.domain.base.AbsEntity;
+import com.ycl.jxkg.domain.base.AbsForm;
+import com.ycl.jxkg.domain.entity.ExamPaper;
+import com.ycl.jxkg.domain.entity.ExamTemplate;
+import com.ycl.jxkg.group.Add;
+import com.ycl.jxkg.group.Update;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("t_exam_paper")
+public class ExamPaperForm extends AbsForm {
+
+    /**
+     * 璇曞嵎鍚嶇О
+     */
+    @NotBlank(message = "璇曞嵎鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    private String name;
+
+    /**
+     * 瀛︾
+     */
+    @NotNull(message = "瀛︾涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    private Integer subjectId;
+
+    /**
+     * 璇曞嵎绫诲瀷( 1鍥哄畾璇曞嵎 2.闅忓嵆璇曞嵎 3.闅忓簭璇曞嵎)
+     */
+    @NotNull (message = "璇曞嵎绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    private Integer paperType;
+
+    /**
+     * 璇曞嵎鎬诲垎
+     */
+    private BigDecimal score;
+
+    /**
+     * 棰樼洰鏁伴噺
+     */
+    private Integer questionCount;
+
+    /**
+     * 寤鸿鏃堕暱(鍒嗛挓)
+     */
+    @Min(value = 1,message = "寤鸿鏃堕棿蹇呴』澶т簬0",groups = {Add.class, Update.class})
+    private Integer suggestTime;
+
+    private Integer createUser;
+
+    @JsonFormat(pattern = "yyyy-mm-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 鍙鎬э紝鍏紑/绉佹湁
+     * */
+    private String visibility;
+
+    /**
+     * 澶氶�夋墸鍒嗙被鍨�
+     * */
+    private Integer deductType;
+
+    /**
+     * 澶氶�夎瘎鍒嗗垎鏁�
+     * */
+    private BigDecimal deductTypeScore;
+
+    public static ExamPaper getEntityByForm(@NonNull ExamPaperForm form, ExamPaper entity) {
+        if(entity == null) {
+            entity = new ExamPaper();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/form/ExamTemplateForm.java b/src/main/java/com/ycl/jxkg/domain/form/ExamTemplateForm.java
index 7da12f5..65c4972 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/ExamTemplateForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/ExamTemplateForm.java
@@ -1,5 +1,6 @@
 package com.ycl.jxkg.domain.form;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.jxkg.domain.base.AbsForm;
 import com.ycl.jxkg.domain.entity.ExamTemplate;
 import com.ycl.jxkg.domain.question.TemplateQuestionDTO;
@@ -15,6 +16,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -31,7 +33,7 @@
     @ApiModelProperty("妯℃澘鍚�")
     private String name;
 
-    @NotNull(message = "瀛︾id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @NotNull (message = "瀛︾id涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("瀛︾id")
     private Integer subjectId;
 
@@ -54,6 +56,9 @@
     @ApiModelProperty("棰樼洰妯℃澘")
     private List<TemplateQuestionDTO> questionList;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd")
+    private Date createTime;
+    private Integer createUser;
     public static ExamTemplate getEntityByForm(@NonNull ExamTemplateForm form, ExamTemplate entity) {
         if(entity == null) {
           entity = new ExamTemplate();
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ExamTemplateVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ExamTemplateVO.java
index b887805..d5ac1b7 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/ExamTemplateVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/ExamTemplateVO.java
@@ -1,11 +1,14 @@
 package com.ycl.jxkg.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.jxkg.domain.base.AbsVo;
 import com.ycl.jxkg.domain.entity.ExamTemplate;
 
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+
+import com.ycl.jxkg.domain.question.TemplateQuestionDTO;
 import org.springframework.lang.NonNull;
 import org.springframework.beans.BeanUtils;
 import io.swagger.annotations.ApiModel;
@@ -28,7 +31,7 @@
     private Integer subjectId;
 
     /** 鎬诲垎 */
-    private Integer score;
+    private BigDecimal score;
 
     /** 鏄惁绉佹湁 */
     private String visibility;
@@ -42,46 +45,14 @@
     /** 澶氶�夎瘎鍒� */
     private BigDecimal deductTypeScore;
 
-    /** 鍗曢�夐鏁伴噺 */
-    private Integer singleChoice;
-
-    /** 澶氶�夐鏁伴噺 */
-    private Integer multipleChoice;
-
-    /** 濉┖棰樻暟閲� */
-    private Integer gapFilling;
-
-    /** 鍒ゆ柇鏁伴噺 */
-    private Integer trueFalse;
-
-    /** 绠�绛旈鏁伴噺 */
-    private Integer shortAnswer;
-
-    /** 璁$畻棰樻暟閲� */
-    private Integer calculation;
-
-    /** 鍗曢�夋瘡棰樺垎鏁� */
-    private BigDecimal singleScore;
-
-    /** 澶氶�夋瘡棰樺垎鏁� */
-    private BigDecimal multipleScore;
-
-    /** 濉┖姣忛鍒嗘暟 */
-    private BigDecimal gapScore;
-
-    /** 鍒ゆ柇姣忛鍒嗘暟 */
-    private BigDecimal trueFalseScore;
-
-    /** 绠�绛旀瘡棰樺垎鏁� */
-    private BigDecimal shortAnswerScore;
-
-    /** 璁$畻姣忛鍒嗘暟 */
-    private BigDecimal calculationScore;
+    /** 棰樼洰閰嶇疆 */
+    private List<TemplateQuestionDTO> questionList;
 
     /**  */
     private Integer createUser;
 
     /**  */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     public static ExamTemplateVO getVoByEntity(@NonNull ExamTemplate entity, ExamTemplateVO vo) {
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperPageRequestVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperPageRequestVO.java
index 110fea3..ff7052e 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperPageRequestVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperPageRequestVO.java
@@ -3,6 +3,8 @@
 import com.ycl.jxkg.base.BasePage;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 
 @Data
 public class ExamPaperPageRequestVO extends BasePage {
@@ -13,10 +15,10 @@
 
     private Integer subjectId;
 
-    private Integer level;
-
     private Integer paperType;
 
-    private Integer taskExamId;
+    private Integer suggestTime;
+
+    private BigDecimal score;
 
 }
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamResponseVO.java
index 72481c6..811b795 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamResponseVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamResponseVO.java
@@ -3,6 +3,7 @@
 
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 @Data
@@ -25,4 +26,10 @@
     private Integer paperType;
 
     private Integer suggestTime;
+
+    private Integer deductType;
+
+    private BigDecimal deductTypeScore;
+
+    private String visibility;
 }
diff --git a/src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java b/src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java
index 8007bf7..c46b40b 100644
--- a/src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java
+++ b/src/main/java/com/ycl/jxkg/enums/VisibilityEnum.java
@@ -4,13 +4,13 @@
 import java.util.Map;
 
 public enum VisibilityEnum {
-    Private(1,"PRIVATE", "鍙湁鑰佸笀鑷繁鑳界湅"),
-    Public(2,"PUBLIC", "鎵�鏈変汉鑳界湅");
-    Integer code;
+    Private("1","Private", "鍙湁鑰佸笀鑷繁鑳界湅"),
+    Public("2","Public", "鎵�鏈変汉鑳界湅");
+    String code;
     String name;
     String description;
 
-    VisibilityEnum(Integer code,String name, String description) {
+    VisibilityEnum(String code,String name, String description) {
         this.code = code;
         this.name = name;
         this.description = description;
@@ -32,22 +32,22 @@
         this.name = name;
     }
 
-    public Integer getCode() {
+    public String getCode() {
         return code;
     }
 
-    public void setCode(Integer code) {
+    public void setCode(String code) {
         this.code = code;
     }
 
-    private static final Map<Integer, VisibilityEnum> keyMap = new HashMap<>();
+    private static final Map<String, VisibilityEnum> keyMap = new HashMap<>();
 
     static {
         for (VisibilityEnum item : VisibilityEnum.values()) {
             keyMap.put(item.getCode(), item);
         }
     }
-    public static VisibilityEnum fromCode(Integer code) {
+    public static VisibilityEnum fromCode(String code) {
         return keyMap.get(code);
     }
 
diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamTemplateMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamTemplateMapper.java
index 614391c..5319d2e 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ExamTemplateMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ExamTemplateMapper.java
@@ -31,4 +31,5 @@
     */
     IPage getPage(IPage page, @Param("query") ExamTemplateQuery query);
 
+    void removeById(Integer id);
 }
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java
index d682060..81e94fb 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java
@@ -23,11 +23,13 @@
 import lombok.RequiredArgsConstructor;
 import com.ycl.jxkg.utils.PageUtil;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.security.Security;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -59,7 +61,7 @@
         entity.setCreateUser(currentUser.getId());
         entity.setCreateTime(new Date());
         if(!StringUtils.isEmpty(entity.getVisibility())) {
-            entity.setVisibility(VisibilityEnum.fromCode(Integer.parseInt(entity.getVisibility())).getName());
+            entity.setVisibility(VisibilityEnum.fromCode(entity.getVisibility()).getName());
         }
         List<TemplateQuestionDTO> questionList = form.getQuestionList();
         BigDecimal score = BigDecimal.ZERO;
@@ -111,13 +113,54 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result update(ExamTemplateForm form) {
-        ExamTemplate entity = baseMapper.selectById(form.getId());
-
-        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
-        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
-        BeanUtils.copyProperties(form, entity);
-        baseMapper.updateById(entity);
+        ExamTemplate entity = ExamTemplateForm.getEntityByForm(form, null);
+        if(!StringUtils.isEmpty(entity.getVisibility())) {
+            entity.setVisibility(VisibilityEnum.fromCode(entity.getVisibility()).getName());
+        }
+        List<TemplateQuestionDTO> questionList = form.getQuestionList();
+        BigDecimal score = BigDecimal.ZERO;
+        //璁剧疆棰樼洰淇℃伅
+        for (TemplateQuestionDTO dto : questionList) {
+            score = score.add(dto.getScore().multiply(BigDecimal.valueOf(dto.getNum())));
+            Integer questionType = dto.getQuestionType();
+            switch (QuestionTypeEnum.fromCode(questionType)){
+                //鍗曢��
+                case SingleChoice:
+                    entity.setSingleChoice(dto.getNum());
+                    entity.setSingleScore(dto.getScore());
+                    break;
+                //澶氶��
+                case MultipleChoice:
+                    entity.setMultipleChoice(dto.getNum());
+                    entity.setMultipleScore(dto.getScore());
+                    break;
+                //鍒ゆ柇
+                case TrueFalse:
+                    entity.setTrueFalse(dto.getNum());
+                    entity.setTrueFalseScore(dto.getScore());
+                    break;
+                //濉┖
+                case GapFilling:
+                    entity.setGapFilling(dto.getNum());
+                    entity.setGapScore(dto.getScore());
+                    break;
+                //绠�绛�
+                case ShortAnswer:
+                    entity.setShortAnswer(dto.getNum());
+                    entity.setShortAnswerScore(dto.getScore());
+                    break;
+                //璁$畻
+                case Calculation:
+                    entity.setCalculation(dto.getNum());
+                    entity.setCalculationScore(dto.getScore());
+                    break;
+            }
+        }
+        entity.setScore(score);
+        examTemplateMapper.removeById(entity.getId());
+        baseMapper.insert(entity);
         return Result.ok("淇敼鎴愬姛");
     }
 
@@ -150,9 +193,35 @@
      */
     @Override
     public Result page(ExamTemplateQuery query) {
-        IPage<ExamTemplateVO> page = PageUtil.getPage(query, ExamTemplateVO.class);
+        IPage<ExamTemplate> page = PageUtil.getPage(query, ExamTemplate.class);
         baseMapper.getPage(page, query);
-        return Result.ok().data(page.getRecords()).total(page.getTotal());
+        List<ExamTemplate> records = page.getRecords();
+        List<ExamTemplateVO> vos = new ArrayList<>();
+        for (ExamTemplate examTemplate : records) {
+            ExamTemplateVO vo = new ExamTemplateVO();
+            BeanUtils.copyProperties(examTemplate,vo);
+            String visibility = vo.getVisibility();
+            vo.setVisibility(VisibilityEnum.valueOf(visibility).getCode()+"");
+            //鏁寸悊棰樼洰淇℃伅涓洪泦鍚�
+            List<TemplateQuestionDTO> questionList = new ArrayList<>();
+            addQuestionList(questionList,QuestionTypeEnum.SingleChoice.getCode(),examTemplate.getSingleScore(),examTemplate.getSingleChoice());
+            addQuestionList(questionList,QuestionTypeEnum.MultipleChoice.getCode(),examTemplate.getMultipleScore(),examTemplate.getMultipleChoice());
+            addQuestionList(questionList,QuestionTypeEnum.TrueFalse.getCode(),examTemplate.getTrueFalseScore(),examTemplate.getTrueFalse());
+            addQuestionList(questionList,QuestionTypeEnum.GapFilling.getCode(),examTemplate.getGapScore(),examTemplate.getGapFilling());
+            addQuestionList(questionList,QuestionTypeEnum.ShortAnswer.getCode(),examTemplate.getShortAnswerScore(),examTemplate.getShortAnswer());
+            addQuestionList(questionList,QuestionTypeEnum.Calculation.getCode(),examTemplate.getCalculationScore(),examTemplate.getCalculation());
+            vo.setQuestionList(questionList);
+            vos.add(vo);
+        }
+        return Result.ok().data(vos).total(page.getTotal());
+    }
+
+    private void addQuestionList(List<TemplateQuestionDTO> questionList, Integer code,BigDecimal score,Integer num) {
+        TemplateQuestionDTO questionDTO = new TemplateQuestionDTO();
+        questionDTO.setQuestionType(code);
+        questionDTO.setScore(score);
+        questionDTO.setNum(num);
+        questionList.add(questionDTO);
     }
 
     /**
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index a8e01d7..52d8067 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -2,23 +2,24 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.jxkg.mapper.ExamPaperMapper">
     <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.ExamPaper">
-        <id column="id" jdbcType="INTEGER" property="id"/>
-        <result column="name" jdbcType="VARCHAR" property="name"/>
-        <result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
-        <result column="paper_type" jdbcType="INTEGER" property="paperType"/>
-        <result column="score" jdbcType="INTEGER" property="score"/>
-        <result column="question_count" jdbcType="INTEGER" property="questionCount"/>
-        <result column="suggest_time" jdbcType="INTEGER" property="suggestTime"/>
-        <result column="visibility" jdbcType="INTEGER" property="visibility"/>
-        <result column="deduct_type" jdbcType="INTEGER" property="deductType"/>
-        <result column="create_user" jdbcType="INTEGER" property="createUser"/>
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
-        <result column="deleted" jdbcType="BIT" property="deleted"/>
+        <id column="id"  property="id"/>
+        <result column="name"  property="name"/>
+        <result column="subject_id"  property="subjectId"/>
+        <result column="paper_type"  property="paperType"/>
+        <result column="score"  property="score"/>
+        <result column="question_count"  property="questionCount"/>
+        <result column="suggest_time"  property="suggestTime"/>
+        <result column="visibility"  property="visibility"/>
+        <result column="deduct_type" property="deductType"/>
+        <result column="deduct_type_score"  property="deductTypeScore"/>
+        <result column="create_user"  property="createUser"/>
+        <result column="create_time"  property="createTime"/>
+        <result column="deleted"  property="deleted"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id, name, subject_id, paper_type, score, question_count, suggest_time,visibility
-        ,deduct_type,create_user, create_time,deleted
+        ,deduct_type,deduct_type_score,create_user, create_time,deleted
     </sql>
 
     <resultMap id="PaperInfoResultMap" type="com.ycl.jxkg.domain.vo.student.dashboard.PaperInfo">
diff --git a/src/main/resources/mapper/ExamTemplateMapper.xml b/src/main/resources/mapper/ExamTemplateMapper.xml
index 31a41a8..2175930 100644
--- a/src/main/resources/mapper/ExamTemplateMapper.xml
+++ b/src/main/resources/mapper/ExamTemplateMapper.xml
@@ -3,7 +3,7 @@
 <mapper namespace="com.ycl.jxkg.mapper.ExamTemplateMapper">
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.ExamTemplateVO">
+    <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.ExamTemplate">
         <result column="name" property="name" />
         <result column="subject_id" property="subjectId" />
         <result column="score" property="score" />
@@ -26,10 +26,6 @@
         <result column="create_user" property="createUser" />
         <result column="create_time" property="createTime" />
     </resultMap>
-
-
-
-
 
 
 
@@ -101,4 +97,7 @@
         </where>
     </select>
 
+    <delete id="removeById">
+        delete from t_exam_template where id = #{id}
+    </delete>
 </mapper>

--
Gitblit v1.8.0