소스 검색

考务接口修改

wangliang 5 년 전
부모
커밋
13ecd92121

+ 66 - 4
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamActivityController.java

@@ -1,8 +1,26 @@
 package com.qmth.themis.backend.api;
 
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.themis.backend.util.ServletUtil;
+import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.entity.TBUser;
+import com.qmth.themis.business.entity.TEExamActivity;
+import com.qmth.themis.business.enums.FieldUniqueEnum;
+import com.qmth.themis.business.service.TEExamActivityService;
+import com.qmth.themis.business.util.JacksonUtil;
+import com.qmth.themis.common.contanst.Constants;
+import com.qmth.themis.common.exception.BusinessException;
+import com.qmth.themis.common.util.Result;
+import com.qmth.themis.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 
 /**
  * @Description: 考试场次 前端控制器
@@ -13,7 +31,51 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @Api(tags = "考试场次Controller")
 @RestController
-@RequestMapping("/${prefix.url.admin}/examActivity")
+@RequestMapping("/${prefix.url.admin}/activity")
 public class TEExamActivityController {
 
+    @Resource
+    TEExamActivityService teExamActivityService;
+
+    @ApiOperation(value = "考试场次修改/新增接口")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @Transactional
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    public Result save(@ApiParam(value = "考试场次信息", required = true) @RequestBody List<TEExamActivity> teExamActivityList) {
+        try {
+            HttpServletRequest request = ServletUtil.getRequest();
+            TBUser tbUser = (TBUser) ServletUtil.getRequestAccount(request);
+            teExamActivityList.forEach(s -> {
+                if (Objects.nonNull(s.getId())) {
+                    s.setUpdateId(tbUser.getId());
+                } else {
+                    s.setId(Constants.idGen.next());
+                    s.setCreateId(tbUser.getId());
+                }
+            });
+            teExamActivityService.saveOrUpdateBatch(teExamActivityList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+                throw new BusinessException("机构id[" + teExamActivityList.get(0).getExamId() + "]下的" + FieldUniqueEnum.convertToCode(columnStr) + "数据不允许重复插入");
+            } else if (e instanceof BusinessException) {
+                throw new BusinessException(e.getMessage());
+            } else {
+                throw new RuntimeException(e);
+            }
+        }
+        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+    }
+
+    @ApiOperation(value = "考试场次查询接口")
+    @RequestMapping(value = "/query", method = RequestMethod.GET)
+    @ApiResponses({@ApiResponse(code = 200, message = "考试场次信息", response = TEExamActivity.class)})
+    public Result query(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId, @ApiParam(value = "考试场次编码", required = false) @RequestParam(required = false) String code, @ApiParam(value = "开始日期", required = false) @RequestParam(required = false) String startDate, @ApiParam(value = "结束日期", required = false) @RequestParam(required = false) String finishDate, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
+        IPage<TEExamActivity> teExamActivityIPage = teExamActivityService.examActivityQuery(new Page<>(pageNumber, pageSize), examId, code, startDate, finishDate);
+        Map map = new HashMap<>();
+        map.put(SystemConstant.RECORDS, teExamActivityIPage);
+        return ResultUtil.ok(map);
+    }
 }

+ 21 - 1
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java

@@ -11,7 +11,9 @@ import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEExam;
+import com.qmth.themis.business.entity.TEExamActivity;
 import com.qmth.themis.business.enums.FieldUniqueEnum;
+import com.qmth.themis.business.service.TEExamActivityService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.common.contanst.Constants;
@@ -20,6 +22,7 @@ import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
 import io.swagger.annotations.*;
+import org.checkerframework.checker.units.qual.s;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -27,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -45,6 +49,9 @@ public class TEExamController {
     @Resource
     TEExamService teExamService;
 
+    @Resource
+    TEExamActivityService teExamActivityService;
+
     @ApiOperation(value = "考试批次修改/新增接口")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @Transactional
@@ -185,6 +192,20 @@ public class TEExamController {
             teExam.setCode(code);
             teExam.setName(name);
             teExamService.save(teExam);
+
+            QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
+            teExamActivityQueryWrapper.lambda().eq(TEExamActivity::getExamId, examId);
+            List<TEExamActivity> teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
+            if (Objects.nonNull(teExamActivityList)) {
+                teExamActivityList.forEach(s -> {
+                    s.setId(null);
+                    s.setExamId(teExam.getId());
+                    s.setCreateId(teExam.getCreateId());
+                    s.setUpdateId(null);
+                    s.setUpdateTime(null);
+                });
+                teExamActivityService.saveOrUpdateBatch(teExamActivityList);
+            }
         } catch (Exception e) {
             e.printStackTrace();
             if (e instanceof DuplicateKeyException) {
@@ -197,7 +218,6 @@ public class TEExamController {
                 throw new RuntimeException(e);
             }
         }
-        //todo 还需增加场次设置
         return ResultUtil.ok(JSONObject.parseObject(SystemConstant.SUCCESS));
     }
 }

+ 13 - 0
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamActivityMapper.java

@@ -6,6 +6,7 @@ import com.qmth.themis.business.entity.TEExamActivity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.Map;
 
 /**
@@ -57,4 +58,16 @@ public interface TEExamActivityMapper extends BaseMapper<TEExamActivity> {
      * @return
      */
     public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, @Param("tableName") String tableName);
+
+    /**
+     * 查询考场场次信息
+     *
+     * @param iPage
+     * @param examId
+     * @param code
+     * @param startDate
+     * @param finishDate
+     * @return
+     */
+    public IPage<TEExamActivity> examActivityQuery(IPage<Map> iPage, @Param("examId") Long examId, @Param("code") String code, @Param("startDate") String startDate, @Param("finishDate") String finishDate);
 }

+ 0 - 12
themis-business/src/main/java/com/qmth/themis/business/entity/TEExam.java

@@ -42,10 +42,6 @@ public class TEExam extends BaseEntity {
     @TableField(value = "end_time")
     private Date endTime;
 
-    @ApiModelProperty(value = "状态")
-    @TableField(value = "status")
-    private Integer status;
-
     @ApiModelProperty(value = "考试口令")
     @TableField(value = "short_code")
     private String shortCode;
@@ -394,14 +390,6 @@ public class TEExam extends BaseEntity {
         this.endTime = endTime;
     }
 
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
     public String getShortCode() {
         return shortCode;
     }

+ 2 - 2
themis-business/src/main/java/com/qmth/themis/business/entity/TEExamActivity.java

@@ -25,7 +25,7 @@ public class TEExamActivity extends BaseEntity {
     @TableField(value = "code")
     private String code;
 
-    @ApiModelProperty(value = "提前多长时间开始候考()")
+    @ApiModelProperty(value = "提前多长时间开始候考(分钟)")
     @TableField(value = "prepare_seconds")
     private Integer prepareSeconds;
 
@@ -37,7 +37,7 @@ public class TEExamActivity extends BaseEntity {
     @TableField(value = "enable")
     private Integer enable;
 
-    @ApiModelProperty(value = "允许开考时长()")
+    @ApiModelProperty(value = "允许开考时长(分钟)")
     @TableField(value = "opening_seconds")
     private Integer openingSeconds;
 

+ 13 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TEExamActivityService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.themis.business.entity.TEExamActivity;
 
+import java.util.Date;
 import java.util.Map;
 
 /**
@@ -54,4 +55,16 @@ public interface TEExamActivityService extends IService<TEExamActivity> {
      * @return
      */
     public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, String tableName);
+
+    /**
+     * 查询考场场次信息
+     *
+     * @param iPage
+     * @param examId
+     * @param code
+     * @param startDate
+     * @param finishDate
+     * @return
+     */
+    public IPage<TEExamActivity> examActivityQuery(IPage<Map> iPage, Long examId, String code, String startDate, String finishDate);
 }

+ 16 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamActivityServiceImpl.java

@@ -8,6 +8,7 @@ import com.qmth.themis.business.service.TEExamActivityService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.Map;
 
 /**
@@ -77,4 +78,19 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
     public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, String tableName) {
         return teExamActivityMapper.selectListPage(iPage, tableName);
     }
+
+    /**
+     * 查询考场场次信息
+     *
+     * @param iPage
+     * @param examId
+     * @param code
+     * @param startDate
+     * @param finishDate
+     * @return
+     */
+    @Override
+    public IPage<TEExamActivity> examActivityQuery(IPage<Map> iPage, Long examId, String code, String startDate, String finishDate) {
+        return teExamActivityMapper.examActivityQuery(iPage, examId, code, startDate, finishDate);
+    }
 }

+ 19 - 0
themis-business/src/main/resources/mapper/TEExamActivityMapper.xml

@@ -58,4 +58,23 @@
     <select id="selectListPage" resultType="com.qmth.themis.business.entity.TEExamActivity">
         select * from ${tableName}
     </select>
+
+    <select id="examActivityQuery" resultType="com.qmth.themis.business.entity.TEExamActivity">
+        select teea.* from t_e_exam_activity teea
+        left join t_e_exam tee on teea.exam_id = tee.id
+        <where>
+            <if test="examId != null and examId != ''">
+                and teea.exam_id = #{examId}
+            </if>
+            <if test="code != null and code != ''">
+                and teea.code like concat('%', #{code}, '%')
+            </if>
+            <if test="startDate != null and startDate != ''">
+                and teea.start_time = #{startDate}
+            </if>
+            <if test="finishDate != null and finishDate != ''">
+                and teea.finish_time = #{finishDate}
+            </if>
+        </where>
+    </select>
 </mapper>