Ver código fonte

考试代码提交

pans 7 meses atrás
pai
commit
e5b2481c85
11 arquivos alterados com 143 adições e 14 exclusões
  1. 10 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceFootprintServiceImpl.java
  2. 15 7
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/admin/ExamPaperController.java
  3. 10 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/ExamPaper.java
  4. 1 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamAddParam.java
  5. 5 3
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/ExamPaperMapper.java
  6. 38 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml
  7. 3 2
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/ExamPaperService.java
  8. 17 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperServiceImpl.java
  9. 1 1
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java
  10. 24 1
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java
  11. 19 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/viewmodel/admin/exam/ExamPaperRequestVM.java

+ 10 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceFootprintServiceImpl.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.disk.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -21,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
@@ -32,6 +34,7 @@ import vip.xiaonuo.disk.param.footprint.ResourceFootprintIdParam;
 import vip.xiaonuo.disk.param.footprint.ResourceFootprintPageParam;
 import vip.xiaonuo.disk.service.ResourceFootprintService;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -61,6 +64,10 @@ public class ResourceFootprintServiceImpl extends ServiceImpl<ResourceFootprintM
     @Override
     public void add(ResourceFootprintAddParam resourceFootprintAddParam) {
         ResourceFootprint resourceFootprint = BeanUtil.toBean(resourceFootprintAddParam, ResourceFootprint.class);
+        resourceFootprint.setId(IdUtil.getSnowflakeNextIdStr());
+        resourceFootprint.setCreateTime(new Date());
+        resourceFootprint.setUserId(StpLoginUserUtil.getLoginUser().getId());
+        resourceFootprint.setCreateUser(StpLoginUserUtil.getLoginUser().getId());
         this.save(resourceFootprint);
     }
 
@@ -69,6 +76,9 @@ public class ResourceFootprintServiceImpl extends ServiceImpl<ResourceFootprintM
     public void edit(ResourceFootprintEditParam resourceFootprintEditParam) {
         ResourceFootprint resourceFootprint = this.queryEntity(resourceFootprintEditParam.getId());
         BeanUtil.copyProperties(resourceFootprintEditParam, resourceFootprint);
+        resourceFootprint.setUpdateTime(new Date());
+        resourceFootprint.setUserId(StpLoginUserUtil.getLoginUser().getId());
+        resourceFootprint.setUpdateUser(StpLoginUserUtil.getLoginUser().getId());
         this.updateById(resourceFootprint);
     }
 

+ 15 - 7
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/admin/ExamPaperController.java

@@ -1,19 +1,16 @@
 package vip.xiaonuo.exam.controller.admin;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.exam.base.BaseApiController;
-import vip.xiaonuo.exam.base.RestResponse;
 import vip.xiaonuo.exam.domain.ExamPaper;
 import vip.xiaonuo.exam.service.ExamPaperService;
 import vip.xiaonuo.exam.utility.DateTimeUtil;
-import vip.xiaonuo.exam.utility.PageInfoHelper;
-import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperPageRequestVM;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperEditRequestVM;
-import vip.xiaonuo.exam.viewmodel.admin.exam.ExamResponseVM;
-import com.github.pagehelper.PageInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperPageRequestVM;
+import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperRequestVM;
 
 import javax.validation.Valid;
 
@@ -46,6 +43,17 @@ public class ExamPaperController extends BaseApiController {
 
 
 
+
+    @RequestMapping(value = "/selectExamList", method = RequestMethod.POST)
+    public CommonResult<Page<ExamPaper>> selectExamList(@RequestBody @Valid ExamPaperRequestVM model) {
+        Page<ExamPaper> pageInfo = examPaperService.selectExamList(model);
+        pageInfo.getRecords().forEach(e -> {
+            e.setCreateTimeStr(DateTimeUtil.dateFormat(e.getCreateTime()));
+        });
+        return CommonResult.data(pageInfo);
+    }
+
+
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
     public CommonResult<ExamPaperEditRequestVM> edit(@RequestBody @Valid ExamPaperEditRequestVM model) {
         ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser());

+ 10 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/ExamPaper.java

@@ -69,6 +69,16 @@ public class ExamPaper implements Serializable {
 
     private Integer taskExamId;
 
+    private Integer isSelect;
+
+    public Integer getIsSelect() {
+        return isSelect;
+    }
+
+    public void setIsSelect(Integer isSelect) {
+        this.isSelect = isSelect;
+    }
+
     public Integer getId() {
         return id;
     }

+ 1 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamAddParam.java

@@ -83,4 +83,5 @@ public class TExamAddParam {
 
     @ApiModelProperty(value = "学期id", position = 15)
     private String semesterId;
+
 }

+ 5 - 3
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/ExamPaperMapper.java

@@ -1,15 +1,15 @@
 package vip.xiaonuo.exam.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.exam.domain.ExamPaper;
 import vip.xiaonuo.exam.domain.other.KeyValue;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperPageRequestVM;
-import vip.xiaonuo.exam.viewmodel.admin.exam.ExamResponseVM;
+import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperRequestVM;
 import vip.xiaonuo.exam.viewmodel.student.dashboard.PaperFilter;
 import vip.xiaonuo.exam.viewmodel.student.dashboard.PaperInfo;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperPageVM;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
@@ -34,4 +34,6 @@ public interface ExamPaperMapper extends BaseMapper<ExamPaper> {
     int clearTaskPaper(@Param("paperIds") List<Integer> paperIds);
 
     List<ExamPaper> selectByIds(@Param("ids") List<String> ids);
+
+    Page<ExamPaper> selectExamList(@Param("bo") ExamPaperRequestVM model, @Param("page") Page<ExamPaper> page);
 }

+ 38 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml

@@ -95,6 +95,9 @@
       <if test="taskExamId != null">
         task_exam_id,
       </if>
+       <if test="isSelect != null">
+         IS_SELECT
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -142,6 +145,9 @@
       <if test="taskExamId != null">
         #{taskExamId,jdbcType=INTEGER},
       </if>
+      <if test="isSelect != null">
+        #{isSelect,jdbcType=INTEGER}
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="vip.xiaonuo.exam.domain.ExamPaper">
@@ -189,6 +195,9 @@
       <if test="taskExamId != null">
         task_exam_id = #{taskExamId,jdbcType=INTEGER},
       </if>
+      <if test="isSelect != null">
+        IS_SELECT = #{isSelect,jdbcType=INTEGER}
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -342,4 +351,33 @@
       #{id}
     </foreach>
   </select>
+
+
+  <select id="selectExamList" resultMap="BaseResultMap">
+    SELECT
+    <include refid="Base_Column_List"/>
+    FROM t_exam_paper
+    <where>
+       deleted=0
+      and is_select=0
+      <if test="bo.paperType!=null">
+        and paper_type=#{bo.paperType}
+      </if>
+    </where>
+    <if test="bo.paperId!=null">
+      union all
+      SELECT
+      <include refid="Base_Column_List"/>
+      FROM t_exam_paper
+      <where>
+        deleted=0
+        and is_select=1
+        <if test="bo.paperType!=null">
+          and paper_type=#{bo.paperType}
+        </if>
+         and id=#{bo.paperId}
+      </where>
+    </if>
+      order by create_time desc
+  </select>
 </mapper>

+ 3 - 2
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/ExamPaperService.java

@@ -1,12 +1,11 @@
 package vip.xiaonuo.exam.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.github.pagehelper.PageInfo;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.exam.domain.ExamPaper;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperPageRequestVM;
-import vip.xiaonuo.exam.viewmodel.admin.exam.ExamResponseVM;
+import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperRequestVM;
 import vip.xiaonuo.exam.viewmodel.student.dashboard.PaperFilter;
 import vip.xiaonuo.exam.viewmodel.student.dashboard.PaperInfo;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperPageVM;
@@ -30,4 +29,6 @@ public interface ExamPaperService extends BaseService<ExamPaper> {
     Integer selectAllCount();
 
     List<Integer> selectMothCount();
+
+    Page<ExamPaper> selectExamList(ExamPaperRequestVM model);
 }

+ 17 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperServiceImpl.java

@@ -29,6 +29,7 @@ import vip.xiaonuo.exam.utility.JsonUtil;
 import vip.xiaonuo.exam.utility.ModelMapperSingle;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperPageRequestVM;
+import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperRequestVM;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperTitleItemVM;
 import vip.xiaonuo.exam.viewmodel.admin.question.QuestionEditRequestVM;
 import vip.xiaonuo.exam.viewmodel.student.dashboard.PaperFilter;
@@ -108,6 +109,7 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
             examPaper.setCreateTime(now);
             examPaper.setCreateUser(user.getId());
             examPaper.setDeleted(false);
+            examPaper.setIsSelect(0);
             examPaperFromVM(examPaperEditRequestVM, examPaper, titleItemsVM);
             examPaperMapper.insertSelective(examPaper);
         } else {
@@ -117,6 +119,7 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
             textContentService.updateByIdFilter(frameTextContent);
             modelMapper.map(examPaperEditRequestVM, examPaper);
             examPaperFromVM(examPaperEditRequestVM, examPaper, titleItemsVM);
+            examPaper.setIsSelect(0);
             examPaperMapper.updateByPrimaryKeySelective(examPaper);
         }
         return examPaper;
@@ -177,6 +180,20 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
         }).collect(Collectors.toList());
     }
 
+    /**
+     * 查询未选中的试卷
+     * @param model
+     * @return
+     */
+    @Override
+    public Page<ExamPaper> selectExamList(ExamPaperRequestVM model) {
+        //查出未选中的试卷
+        Page<ExamPaper> page = new Page<ExamPaper>(model.getCurrent(), model.getSize());
+        page.setSearchCount(true); // 设置计算总记录数
+        page=examPaperMapper.selectExamList(model,page);
+        return page;
+    }
+
     private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) {
         Integer gradeLevel = null;
         if(examPaperEditRequestVM.getSubjectId() != null){

+ 1 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java

@@ -175,7 +175,7 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
             default:
                 break;
         }
-        questionEditRequestVM.setScore(ExamUtil.scoreToVM(question.getScore()));
+        questionEditRequestVM.setScore(String.valueOf(question.getScore()));
         questionEditRequestVM.setAnalyze(questionObject.getAnalyze());
 
 

+ 24 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java

@@ -35,6 +35,7 @@ import vip.xiaonuo.exam.domain.exam.TExamEditParam;
 import vip.xiaonuo.exam.domain.exam.TExamIdParam;
 import vip.xiaonuo.exam.domain.exam.TExamPageParam;
 import vip.xiaonuo.exam.mapper.CourseChapterPaperMapper;
+import vip.xiaonuo.exam.mapper.ExamPaperMapper;
 import vip.xiaonuo.exam.mapper.TExamMapper;
 import vip.xiaonuo.exam.service.ExamPaperService;
 import vip.xiaonuo.exam.service.TExamService;
@@ -71,7 +72,8 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
     @Resource
     private TExamMapper tExamMapper;
 
-
+    @Resource
+    private ExamPaperMapper examPaperMapper;
     @Override
     public Page<TExamVo> page(TExamPageParam tExamPageParam) {
         Page<TExamVo> page = tExamMapper.queryList(CommonPageRequest.defaultPage(), tExamPageParam);
@@ -82,6 +84,12 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
     @Override
     public void add(TExamAddParam tExamAddParam) {
         ExamPaper examPaper = examPaperService.selectById(Integer.parseInt(tExamAddParam.getPaperId()));
+
+        ExamPaper newExamPaper=new ExamPaper();
+        newExamPaper.setId(Integer.valueOf(tExamAddParam.getPaperId()));
+        newExamPaper.setIsSelect(1);
+        examPaperMapper.updateByPrimaryKeySelective(newExamPaper);
+
         if(ExamPaperTypeEnum.TimeLimit.getCode() == examPaper.getPaperType()){
             tExamAddParam.setStartTime(examPaper.getLimitStartTime());
             tExamAddParam.setEndTime(examPaper.getLimitEndTime());
@@ -146,6 +154,21 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
         }
 
         TExam tExam = this.queryEntity(tExamEditParam.getId().toString());
+        //新选的卷子id,和旧卷子id不相等的时候,将旧卷子id的is_select字段置为0,将新卷子id的is_select字段置为1    is_select 0 未选中   1已选中
+        if(!ObjectUtil.equals(tExam.getPaperId(), tExamEditParam.getPaperId())){
+            //将旧卷子id的is_select字段置为0
+            ExamPaper newExamPaper=new ExamPaper();
+            newExamPaper.setId(Integer.valueOf(tExam.getPaperId()));
+            newExamPaper.setIsSelect(0);
+            examPaperMapper.updateByPrimaryKeySelective(newExamPaper);
+            //将新卷子id的is_select字段置为1
+            newExamPaper=new ExamPaper();
+            newExamPaper.setId(Integer.valueOf(tExamEditParam.getPaperId()));
+            newExamPaper.setIsSelect(1);
+            examPaperMapper.updateByPrimaryKeySelective(newExamPaper);
+        }
+
+
         if(tExamEditParam.getPaperId() != null && !tExamEditParam.getPaperId().isEmpty()){
             ExamPaper examPaper = examPaperService.selectById(Integer.parseInt(tExamEditParam.getPaperId()));
             if(ExamPaperTypeEnum.TimeLimit.getCode() == examPaper.getPaperType()){

+ 19 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/viewmodel/admin/exam/ExamPaperRequestVM.java

@@ -0,0 +1,19 @@
+package vip.xiaonuo.exam.viewmodel.admin.exam;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+@Setter
+@Getter
+public class ExamPaperRequestVM {
+
+    private Integer paperType;
+
+    private Integer paperId;
+    @NotNull(message = "页数不能为空")
+    private Integer current;
+    @NotNull(message = "每页多少条不能为空")
+    private Integer size;
+}