Selaa lähdekoodia

新增工作台api

wangliang 4 vuotta sitten
vanhempi
commit
77f8f1f338

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/EditResult.java

@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Objects;
 
@@ -15,7 +16,7 @@ import java.util.Objects;
  * @Date: 2021-03-22
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class EditResult {
+public class EditResult implements Serializable {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")

+ 119 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/WorkResult.java

@@ -0,0 +1,119 @@
+package com.qmth.distributed.print.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 工作台 result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/4/8
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class WorkResult implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "试卷编号")
+    String paperNumber;
+
+    @ApiModelProperty(value = "课程名称")
+    String courseName;
+
+    @ApiModelProperty(value = "课程代码")
+    String courseCode;
+
+    @ApiModelProperty(value = "命题结束时间")
+    Long endTime;
+
+    @ApiModelProperty(value = "剩余天数")
+    Integer remainCount;
+
+    @ApiModelProperty(value = "命题老师")
+    String questionName;
+
+    @ApiModelProperty(value = "提交时间")
+    Long createTime;
+
+    @ApiModelProperty(value = "待办条数")
+    Integer count;
+
+    public String getQuestionName() {
+        return questionName;
+    }
+
+    public void setQuestionName(String questionName) {
+        this.questionName = questionName;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public Long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Long endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getRemainCount() {
+        return remainCount;
+    }
+
+    public void setRemainCount(Integer remainCount) {
+        this.remainCount = remainCount;
+    }
+}

+ 32 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamCardMapper.java

@@ -1,7 +1,12 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamCard;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,31 @@ import com.qmth.distributed.print.business.entity.ExamCard;
  */
 public interface ExamCardMapper extends BaseMapper<ExamCard> {
 
+    /**
+     * 查询我的工作台
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    IPage<WorkResult> queryByMyWork(IPage<Map> iPage,
+                                    @Param("userId") Long userId,
+                                    @Param("schoolId") Long schoolId,
+                                    @Param("status") String status);
+
+    /**
+     * 查询我的工作台
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    IPage<WorkResult> queryByMyWorkSubmit(IPage<Map> iPage,
+                                    @Param("userId") Long userId,
+                                    @Param("schoolId") Long schoolId,
+                                    @Param("status") String status);
 }

+ 26 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamCardService.java

@@ -1,7 +1,12 @@
 package com.qmth.distributed.print.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamCard;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,25 @@ import com.qmth.distributed.print.business.entity.ExamCard;
  */
 public interface ExamCardService extends IService<ExamCard> {
 
+    /**
+     * 查询我的工作台
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status);
+
+    /**
+     * 查询我的工作台-审核待办
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    IPage<WorkResult> queryByMyWorkSubmit(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status);
 }

+ 37 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -1,11 +1,18 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamCard;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamCardMapper;
 import com.qmth.distributed.print.business.service.ExamCardService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Objects;
+
 /**
  * <p>
  * 题卡 服务实现类
@@ -17,4 +24,34 @@ import org.springframework.stereotype.Service;
 @Service
 public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> implements ExamCardService {
 
+    @Resource
+    ExamCardMapper examCardMapper;
+
+    /**
+     * 查询我的工作台
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    @Override
+    public IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status) {
+        return examCardMapper.queryByMyWork(iPage, userId, schoolId, Objects.nonNull(status) ? status.name() : null);
+    }
+
+    /**
+     * 查询我的工作台-审核待办
+     *
+     * @param iPage
+     * @param userId
+     * @param schoolId
+     * @param status
+     * @return
+     */
+    @Override
+    public IPage<WorkResult> queryByMyWorkSubmit(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status) {
+        return examCardMapper.queryByMyWorkSubmit(iPage, userId, schoolId, Objects.nonNull(status) ? status.name() : null);
+    }
 }

+ 65 - 10
distributed-print-business/src/main/resources/mapper/ExamCardMapper.xml

@@ -4,16 +4,16 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.qmth.distributed.print.business.entity.ExamCard">
-    <result column="id" property="id" />
-        <result column="school_id" property="schoolId" />
-        <result column="course_code" property="courseCode" />
-        <result column="course_name" property="courseName" />
-        <result column="title" property="title" />
-        <result column="make_method" property="makeMethod" />
-        <result column="create_id" property="createId" />
-        <result column="create_time" property="createTime" />
-        <result column="update_id" property="updateId" />
-        <result column="update_time" property="updateTime" />
+        <result column="id" property="id"/>
+        <result column="school_id" property="schoolId"/>
+        <result column="course_code" property="courseCode"/>
+        <result column="course_name" property="courseName"/>
+        <result column="title" property="title"/>
+        <result column="make_method" property="makeMethod"/>
+        <result column="create_id" property="createId"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_id" property="updateId"/>
+        <result column="update_time" property="updateTime"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -22,4 +22,59 @@
         school_id, course_code, course_name, title, make_method, create_id, create_time, update_id, update_time
     </sql>
 
+    <select id="queryByMyWork" resultType="com.qmth.distributed.print.business.bean.result.WorkResult">
+        <include refid="myworkCommonHead" />
+        <include refid="myworkCommonMiddle" />
+        <where>
+            <include refid="myworkCommonFoot" />
+        </where>
+    </select>
+
+    <select id="queryByMyWorkSubmit" resultType="com.qmth.distributed.print.business.bean.result.WorkResult">
+        <include refid="myworkCommonHead" />
+            ,et.create_time as createTime,
+            (
+            select
+            t.real_name
+            from
+            sys_user t
+            where
+            t.id = et.user_id) as questionName
+        <include refid="myworkCommonMiddle" />
+        <where>
+            <include refid="myworkCommonFoot" />
+        </where>
+    </select>
+
+    <sql id="myworkCommonHead">
+        select
+            et.id,
+            et.paper_number as paperNumber,
+            et.course_name as courseName,
+            et.course_code as courseCode,
+            et.end_time as endTime
+    </sql>
+
+    <sql id="myworkCommonMiddle">
+        from
+            exam_task et
+    </sql>
+
+    <sql id="myworkCommonFoot">
+        <choose>
+            <when test="userId != null and userId != ''">
+                and et.user_id = #{userId}
+            </when>
+            <otherwise>
+                and et.user_id is null
+            </otherwise>
+        </choose>
+        <if test="schoolId != null and schoolId != ''">
+            and et.school_id = #{schoolId}
+        </if>
+        <if test="status != null and status != ''">
+            and et.status = #{status}
+        </if>
+        and et.enable = 1
+    </sql>
 </mapper>

+ 62 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -1,18 +1,29 @@
 package com.qmth.distributed.print.api;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.core.enums.Platform;
-import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.bean.result.WorkResult;
+import com.qmth.distributed.print.business.entity.SysUser;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+import com.qmth.distributed.print.business.service.ExamCardService;
+import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.ResultUtil;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * @Description: 工作台 前端控制器
  * @Param:
@@ -26,13 +37,58 @@ import org.springframework.web.bind.annotation.RestController;
 @Aac(strict = BOOL.TRUE, platform = Platform.WEB)
 public class WorkController {
 
+    @Resource
+    ExamCardService examCardService;
+
     @ApiOperation(value = "命题待办接口")
     @RequestMapping(value = "/exam/task/ready", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    public Result examTaskReady(@ApiParam(value = "用户id", required = true) @RequestParam String userId,
-                                @RequestParam(value = "pageNumber", required = true) Integer pageNumber,
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskReady(@RequestParam(value = "pageNumber", required = true) Integer pageNumber,
                                 @RequestParam(value = "pageSize", required = true) Integer pageSize) {
-        return ResultUtil.ok();
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWork(new Page<>(pageNumber, pageSize), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY));
+    }
+
+    @ApiOperation(value = "命题待办计数接口")
+    @RequestMapping(value = "/exam/task/ready_count", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskReadyCount() {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY).getRecords().size());
+    }
+
+    @ApiOperation(value = "命题分配待办接口")
+    @RequestMapping(value = "/exam/task/new", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskNew(@RequestParam(value = "pageNumber", required = true) Integer pageNumber,
+                              @RequestParam(value = "pageSize", required = true) Integer pageSize) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWork(new Page<>(pageNumber, pageSize), null, sysUser.getSchoolId(), ExamStatusEnum.NEW));
+    }
+
+    @ApiOperation(value = "命题分配待办计数接口")
+    @RequestMapping(value = "/exam/task/new_count", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskNewCount() {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), null, sysUser.getSchoolId(), ExamStatusEnum.NEW).getRecords().size());
+    }
+
+    @ApiOperation(value = "审核待办接口")
+    @RequestMapping(value = "/exam/task/submit", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskSubmit(@RequestParam(value = "pageNumber", required = true) Integer pageNumber,
+                                 @RequestParam(value = "pageSize", required = true) Integer pageSize) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWorkSubmit(new Page<>(pageNumber, pageSize), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.SUBMIT));
+    }
+
+    @ApiOperation(value = "审核待办计数接口")
+    @RequestMapping(value = "/exam/task/submit_count", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    public Result examTaskSubmitCount() {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(examCardService.queryByMyWorkSubmit(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.SUBMIT).getRecords().size());
     }
 }