xiaof 4 年 前
コミット
298051c47f

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/CardCustDto.java

@@ -17,7 +17,9 @@ public class CardCustDto {
     private String orgId;
     private String orgName;
     private String createId;
+    private Long createTime;
     private String createName;
+    private Long updateTime;
 
     public String getExamTaskId() {
         return examTaskId;
@@ -122,4 +124,20 @@ public class CardCustDto {
     public void setCreateName(String createName) {
         this.createName = createName;
     }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+    }
 }

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

@@ -2,6 +2,8 @@ package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamCard;
 import org.apache.ibatis.annotations.Param;
@@ -18,4 +20,5 @@ import java.util.Map;
  */
 public interface ExamCardMapper extends BaseMapper<ExamCard> {
 
+    IPage<CardCustDto> listCardCust(Page<CardCustDto> page, @Param("status") String status, @Param("paperNumber") String paperNumber, @Param("userId") String userId, @Param("applyStartTime") Long applyStartTime, @Param("applyEndTime") Long applyEndTime, @Param("finishStartTime") Long finishStartTime, @Param("finishEndTime") Long finishEndTime);
 }

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamCardService.java

@@ -2,12 +2,9 @@ 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.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
-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>
@@ -20,4 +17,8 @@ import java.util.Map;
 public interface ExamCardService extends IService<ExamCard> {
 
     String saveExamCard(ExamCardParams examCardParams);
+
+    IPage<CardCustDto> listCardCust(String status, String paperNumber, String userId, Long applyStartTime, Long applyEndTime, Long finishStartTime, Long finishEndTime, Integer pageNumber, Integer pageSize);
+
+    String saveExamCardCust(ExamCardParams examCardParams);
 }

+ 55 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -1,11 +1,11 @@
 package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
-import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.enums.MakeMethodEnum;
 import com.qmth.distributed.print.business.mapper.ExamCardMapper;
 import com.qmth.distributed.print.business.service.BasicExamRuleService;
@@ -20,10 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.util.List;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * <p>
@@ -111,6 +108,52 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
         return String.valueOf(examCard.getId());
     }
 
+    @Override
+    public IPage<CardCustDto> listCardCust(String status, String paperNumber, String userId, Long applyStartTime, Long applyEndTime, Long finishStartTime, Long finishEndTime, Integer pageNumber, Integer pageSize) {
+        Page<CardCustDto> page = new Page<>(pageNumber, pageSize);
+        IPage<CardCustDto> cardCustDtoIPage = this.baseMapper.listCardCust(page, status, paperNumber, userId, applyStartTime, applyEndTime, finishStartTime, finishEndTime);
+        return cardCustDtoIPage;
+    }
+
+    @Transactional
+    @Override
+    public String saveExamCardCust(ExamCardParams examCardParams) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser user = (SysUser) ServletUtil.getRequestUser();
+
+        if(!MakeMethodEnum.CUST.name().equals(examCardParams.getMakeMethod().name())){
+            throw ExceptionResultEnum.ERROR.exception("题卡制作类型错误");
+        }
+        if (StringUtils.isBlank(examCardParams.getAttachmentId())) {
+            throw ExceptionResultEnum.ERROR.exception("客户制卡时,附件未上传");
+        }
+
+        ExamCard examCard = new ExamCard();
+        examCard.setId(SystemConstant.getDbUuid());
+        examCard.setSchoolId(schoolId);
+        examCard.setCourseCode(examCardParams.getCourseCode());
+        examCard.setCourseName(examCardParams.getCourseName());
+        examCard.setMakeMethod(examCardParams.getMakeMethod());
+        examCard.setStatus(examCardParams.getStatus());
+        examCard.setCreateId(user.getId());
+        examCard.setCreateTime(System.currentTimeMillis());
+        this.save(examCard);
+
+        ExamCardDetail examCardDetail = new ExamCardDetail();
+        examCardDetail.setId(SystemConstant.getDbUuid());
+        examCardDetail.setCardId(examCard.getId());
+        examCardDetail.setAttachmentId(examCardParams.getAttachmentId());
+        examCardDetail.setCreateId(user.getId());
+        examCardDetail.setCreateTime(System.currentTimeMillis());
+        examCardDetailService.save(examCardDetail);
+
+        // 绑定命题任务
+        examTaskDetailService.bindCardId(examCardParams.getExamTaskId(), examCard.getId());
+
+        return String.valueOf(examCard.getId());
+    }
+
+
     /**
      * 数据验证
      *
@@ -164,8 +207,13 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
                 }
             }
         } else if (MakeMethodEnum.CUST.name().equals(examCardParams.getMakeMethod().name())) {
-            if (StringUtils.isBlank(examCardParams.getAttachmentId())) {
-                throw ExceptionResultEnum.ERROR.exception("客户制卡时,附件未上传");
+            if (StringUtils.isBlank(examCardParams.getContent())) {
+                throw ExceptionResultEnum.ERROR.exception("题卡内容不能为空");
+            }
+            if ("SUBMIT".equals(examCardParams.getStatus())) {
+                if (StringUtils.isBlank(examCardParams.getHtmlContent())) {
+                    throw ExceptionResultEnum.ERROR.exception("提交题卡时,html内容不能为空");
+                }
             }
         }
     }

+ 55 - 0
distributed-print-business/src/main/resources/mapper/ExamCardMapper.xml

@@ -21,4 +21,59 @@
         id,
         school_id, course_code, course_name, title, make_method, create_id, create_time, update_id, update_time
     </sql>
+    <select id="listCardCust" resultType="com.qmth.distributed.print.business.bean.dto.CardCustDto">
+        SELECT
+            c.id examTaskId,
+            a.id cardId,
+            c.card_rule_id cardRuleId,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.status,
+            c.paper_number paperNumber,
+            d.school_id schoolId,
+            e.name schoolName,
+            d.org_id orgId,
+            f.name orgName,
+            a.create_id createId,
+            a.create_time createTime,
+            g.real_name createName,
+            a.update_time updateTime
+        FROM
+            exam_card a
+                LEFT JOIN
+            exam_task_detail b ON a.id = b.card_id
+                LEFT JOIN
+            exam_task c ON b.exam_task_id = c.id
+                LEFT JOIN
+            sys_user d ON c.user_id = d.id
+                LEFT JOIN
+            basic_school e ON d.school_id = e.id
+                LEFT JOIN
+            sys_org f ON d.org_id = f.id
+                LEFT JOIN
+            sys_user g ON a.create_id = g.id
+        <where>
+            <if test="status != null and status != ''">
+                and a.status = #{status}
+            </if>
+            <if test="paperNumber != null and paperNumber != ''">
+                and c.paper_number = #{paperNumber}
+            </if>
+            <if test="userId != null and userId != ''">
+                and a.create_id = #{userId}
+            </if>
+            <if test="applyStartTime != null and applyStartTime != ''">
+                and a.create_time &gt; #{applyStartTime}
+            </if>
+            <if test="applyEndTime != null and applyEndTime != ''">
+                and a.create_time &lt; #{applyEndTime}
+            </if>
+            <if test="finishStartTime != null and finishStartTime != ''">
+                and a.update_time &gt; #{finishStartTime}
+            </if>
+            <if test="finishEndTime != null and finishEndTime != ''">
+                and a.update_time &lt; #{finishEndTime}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 44 - 12
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -1,25 +1,19 @@
 package com.qmth.distributed.print.api;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.ApiUser;
+import com.qmth.distributed.print.business.bean.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
 import com.qmth.distributed.print.business.service.ExamCardService;
-import com.qmth.distributed.print.business.util.RequestUtils;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.ResultUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -41,17 +35,55 @@ public class ExamCardController {
     /**
      * 新建
      *
-     * @param request
      * @param examCardParams
      * @return
      */
     @ApiOperation(value = "新建")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(HttpServletRequest request, @RequestBody ExamCardParams examCardParams) {
-        ApiUser apiUser = RequestUtils.getApiUser(request);
+    public Result save(@RequestBody ExamCardParams examCardParams) {
         String cardId = examCardService.saveExamCard(examCardParams);
         return ResultUtil.ok(cardId, "");
     }
 
+    /**
+     * 客服制卡申请
+     * @param examCardParams
+     * @return
+     */
+    @ApiOperation(value = "客服制卡申请")
+    @RequestMapping(value = "/cust_save", method = RequestMethod.POST)
+    public Result custSave(@RequestBody ExamCardParams examCardParams) {
+        String cardId = examCardService.saveExamCardCust(examCardParams);
+        return ResultUtil.ok(cardId, "");
+    }
+
+    /**
+     * 客服制卡审核查询
+     * @param status
+     * @param paperNumber
+     * @param userId
+     * @param applyStartTime
+     * @param applyEndTime
+     * @param finishStartTime
+     * @param finishEndTime
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation(value = "客服制卡审核查询")
+    @RequestMapping(value = "/cust_list", method = RequestMethod.POST)
+    public Result list(@RequestParam(value = "status", required = false) String status,
+                       @RequestParam(value = "paperNumber", required = false) String paperNumber,
+                       @RequestParam(value = "userId", required = false) String userId,
+                       @RequestParam(value = "applyStartTime", required = false) Long applyStartTime,
+                       @RequestParam(value = "applyEndTime", required = false) Long applyEndTime,
+                       @RequestParam(value = "finishStartTime", required = false) Long finishStartTime,
+                       @RequestParam(value = "finishEndTime", required = false) Long finishEndTime,
+                       @RequestParam(value = "pageNumber") Integer pageNumber,
+                       @RequestParam(value = "pageSize") Integer pageSize) {
+        IPage<CardCustDto> cardCustDtoIPage = examCardService.listCardCust(status, paperNumber, userId, applyStartTime, applyEndTime, finishStartTime, finishEndTime, pageNumber, pageSize);
+        return ResultUtil.ok(cardCustDtoIPage);
+    }
+
 }