Selaa lähdekoodia

fix 模板商品

he2802 3 vuotta sitten
vanhempi
commit
9bdda62230
73 muutettua tiedostoa jossa 3563 lisäystä ja 8 poistoa
  1. 131 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/exam/ExamApplyController.java
  2. 130 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/exam/ExamBeforeController.java
  3. 67 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyAddBo.java
  4. 73 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyEditBo.java
  5. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsAddBo.java
  6. 37 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsEditBo.java
  7. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsQueryBo.java
  8. 76 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyQueryBo.java
  9. 42 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteAddBo.java
  10. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteEditBo.java
  11. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteQueryBo.java
  12. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeAddBo.java
  13. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeEditBo.java
  14. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeQueryBo.java
  15. 27 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeTwoAddBo.java
  16. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeAddBo.java
  17. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeEditBo.java
  18. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsAddBo.java
  19. 37 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsEditBo.java
  20. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsQueryBo.java
  21. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeQueryBo.java
  22. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlAddBo.java
  23. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlEditBo.java
  24. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlQueryBo.java
  25. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamSiteQueryBo.java
  26. 65 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApply.java
  27. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplyGoods.java
  28. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplySite.java
  29. 44 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplySiteTime.java
  30. 49 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBefore.java
  31. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBeforeGoods.java
  32. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBeforeUrl.java
  33. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplyGoodsMapper.java
  34. 23 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplyMapper.java
  35. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplySiteMapper.java
  36. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplySiteTimeMapper.java
  37. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeGoodsMapper.java
  38. 19 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeMapper.java
  39. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeUrlMapper.java
  40. 54 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplyGoodsService.java
  41. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplyService.java
  42. 54 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplySiteService.java
  43. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplySiteTimeService.java
  44. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeGoodsService.java
  45. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeService.java
  46. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeUrlService.java
  47. 116 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyGoodsServiceImpl.java
  48. 130 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java
  49. 136 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplySiteServiceImpl.java
  50. 101 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplySiteTimeServiceImpl.java
  51. 108 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeGoodsServiceImpl.java
  52. 112 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeServiceImpl.java
  53. 101 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeUrlServiceImpl.java
  54. 19 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNumberServiceImpl.java
  55. 26 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamSiteServiceImpl.java
  56. 35 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyGoodsVo.java
  57. 27 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteTimeTwoVo.java
  58. 44 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteTimeVo.java
  59. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteVo.java
  60. 77 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyVo.java
  61. 35 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeGoodsVo.java
  62. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeUrlVo.java
  63. 85 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeVo.java
  64. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamNumberVo.java
  65. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyGoodsMapper.xml
  66. 80 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml
  67. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplySiteMapper.xml
  68. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplySiteTimeMapper.xml
  69. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeGoodsMapper.xml
  70. 56 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeMapper.xml
  71. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeUrlMapper.xml
  72. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberGoodsMapper.xml
  73. 4 3
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberMapper.xml

+ 131 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/exam/ExamApplyController.java

@@ -0,0 +1,131 @@
+package com.zhongzheng.controller.exam;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.exam.bo.*;
+import com.zhongzheng.modules.exam.service.IExamApplyGoodsService;
+import com.zhongzheng.modules.exam.service.IExamApplySiteService;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.exam.vo.ExamApplyVo;
+import com.zhongzheng.modules.exam.service.IExamApplyService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 考试安排Controller
+ * 
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Api(value = "考试安排控制器", tags = {"考试安排管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/apply")
+public class ExamApplyController extends BaseController {
+
+    private final IExamApplyService iExamApplyService;
+
+    private final IExamApplySiteService iExamApplySiteService;
+
+    private final IExamApplyGoodsService iExamApplyGoodsService;
+
+    /**
+     * 查询考试安排列表
+     */
+    @ApiOperation("查询考试安排列表")
+    @PreAuthorize("@ss.hasPermi('system:apply:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ExamApplyVo> list(ExamApplyQueryBo bo) {
+        startPage();
+        List<ExamApplyVo> list = iExamApplyService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 获取考试安排详细信息
+     */
+    @ApiOperation("获取考试安排详细信息")
+    @PreAuthorize("@ss.hasPermi('system:apply:query')")
+    @GetMapping("/{applyId}")
+    public AjaxResult<ExamApplyVo> getInfo(@PathVariable("applyId" ) Long applyId) {
+        return AjaxResult.success(iExamApplyService.queryById(applyId));
+    }
+
+    /**
+     * 新增考试安排
+     */
+    @ApiOperation("新增考试安排")
+    @PreAuthorize("@ss.hasPermi('system:apply:add')")
+    @Log(title = "考试安排", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody ExamApplyAddBo bo) {
+        return toAjax(iExamApplyService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改考试安排
+     */
+    @ApiOperation("修改考试安排")
+    @PreAuthorize("@ss.hasPermi('system:apply:edit')")
+    @Log(title = "考试安排", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult<Void> edit(@RequestBody ExamApplyEditBo bo) {
+        return toAjax(iExamApplyService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 新增考试安排地点
+     */
+    @ApiOperation("新增考试安排地点")
+    @PreAuthorize("@ss.hasPermi('system:site:add')")
+    @Log(title = "考试安排地点", businessType = BusinessType.INSERT)
+    @PostMapping("addSite")
+    public AjaxResult<Void> addSite(@RequestBody List<ExamApplySiteAddBo> bo) {
+        return toAjax(iExamApplySiteService.addSite(bo) ? 1 : 0);
+    }
+
+
+    /**
+     * 新增考试安排绑定商品
+     */
+    @ApiOperation("新增考试安排绑定商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "考试安排绑定商品", businessType = BusinessType.INSERT)
+    @PostMapping("addGoods")
+    public AjaxResult<Void> addGoods(@RequestBody ExamApplyGoodsAddBo bo) {
+        return toAjax(iExamApplyGoodsService.addGoods(bo) ? 1 : 0);
+    }
+
+    /**
+     * 查询考试配置绑定商品列表
+     */
+    @ApiOperation("查询考试安排商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/listGoods")
+    public TableDataInfo<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
+        startPage();
+        List<ExamNumberGoodsVo> list = iExamApplyService.listGoods(bo);
+        return getDataTable(list);
+    }
+
+
+}

+ 130 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/exam/ExamBeforeController.java

@@ -0,0 +1,130 @@
+package com.zhongzheng.controller.exam;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.exam.bo.*;
+import com.zhongzheng.modules.exam.service.IExamBeforeGoodsService;
+import com.zhongzheng.modules.exam.service.IExamBeforeUrlService;
+import com.zhongzheng.modules.exam.vo.ExamBeforeUrlVo;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.exam.vo.ExamBeforeVo;
+import com.zhongzheng.modules.exam.service.IExamBeforeService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 前培安排Controller
+ * 
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Api(value = "前培安排控制器", tags = {"前培安排管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/before")
+public class ExamBeforeController extends BaseController {
+
+    private final IExamBeforeService iExamBeforeService;
+    private final IExamBeforeUrlService iExamBeforeUrlService;
+    private final IExamBeforeGoodsService iExamBeforeGoodsService;
+
+    /**
+     * 查询前培安排列表
+     */
+    @ApiOperation("查询前培安排列表")
+    @PreAuthorize("@ss.hasPermi('system:before:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ExamBeforeVo> list(ExamBeforeQueryBo bo) {
+        startPage();
+        List<ExamBeforeVo> list = iExamBeforeService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 获取前培安排详细信息
+     */
+    @ApiOperation("获取前培安排详细信息")
+    @PreAuthorize("@ss.hasPermi('system:before:query')")
+    @GetMapping("/{beforeId}")
+    public AjaxResult<ExamBeforeVo> getInfo(@PathVariable("beforeId" ) Long beforeId) {
+        return AjaxResult.success(iExamBeforeService.queryById(beforeId));
+    }
+
+    /**
+     * 新增前培安排
+     */
+    @ApiOperation("新增前培安排")
+    @PreAuthorize("@ss.hasPermi('system:before:add')")
+    @Log(title = "前培安排", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody ExamBeforeAddBo bo) {
+        return toAjax(iExamBeforeService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改前培安排
+     */
+    @ApiOperation("修改前培安排")
+    @PreAuthorize("@ss.hasPermi('system:before:edit')")
+    @Log(title = "前培安排", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult<Void> edit(@RequestBody ExamBeforeEditBo bo) {
+        return toAjax(iExamBeforeService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 查询前培url列表
+     */
+    @ApiOperation("查询前培url列表")
+    @PreAuthorize("@ss.hasPermi('system:url:list')")
+    @GetMapping("/listUrl")
+    public TableDataInfo<ExamBeforeUrlVo> list(ExamBeforeUrlQueryBo bo) {
+        startPage();
+        List<ExamBeforeUrlVo> list = iExamBeforeUrlService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询考试配置绑定商品列表
+     */
+    @ApiOperation("查询前培商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/listGoods")
+    public TableDataInfo<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
+        startPage();
+        List<ExamNumberGoodsVo> list = iExamBeforeService.listGoods(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 新增前培绑定商品
+     */
+    @ApiOperation("新增前培绑定商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "前培绑定商品", businessType = BusinessType.INSERT)
+    @PostMapping("addGoods")
+    public AjaxResult<Void> addGoods(@RequestBody ExamBeforeGoodsAddBo bo) {
+        return toAjax(iExamBeforeGoodsService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+}

+ 67 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyAddBo.java

@@ -0,0 +1,67 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 考试安排添加对象 exam_apply
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排添加对象")
+public class ExamApplyAddBo {
+
+    /** 考试封面 */
+    @ApiModelProperty("考试封面")
+    private String applyUrl;
+    /** 考试标题 */
+    @ApiModelProperty("考试标题")
+    private String applyName;
+    /** 考试简介 */
+    @ApiModelProperty("考试简介")
+    private String applyIntroduce;
+    /** 1非补考学员 2补考学员 3都有 */
+    @ApiModelProperty("1非补考学员 2补考学员 3都有")
+    private Integer applyStatus;
+    /** 开始日期 */
+    @ApiModelProperty("开始日期")
+    private Long applyStartTime;
+    /** 结束日期 */
+    @ApiModelProperty("结束日期")
+    private Long applyEndTime;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 1 启用 0未启用 -1删除 2已过期 */
+    @ApiModelProperty("1 启用 0未启用 -1删除 2已过期")
+    private Integer status;
+    /** 商品类型 1视频2题库 3补考 4前培  */
+    @ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+    private Integer goodsType;
+
+    /** 教育类型id */
+    @ApiModelProperty("教育类型id")
+    private Long educationTypeId;
+
+    /** 业务层次id */
+    @ApiModelProperty("业务层次id")
+    private Long businessId;
+
+    /** 项目ID */
+    @ApiModelProperty("项目ID")
+    private Long projectId;
+    /** 编码 */
+    @ApiModelProperty("编码")
+    private String code;
+
+}

+ 73 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyEditBo.java

@@ -0,0 +1,73 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 考试安排编辑对象 exam_apply
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排编辑对象")
+public class ExamApplyEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long applyId;
+
+    /** 考试封面 */
+    @ApiModelProperty("考试封面")
+    private String applyUrl;
+
+    /** 考试标题 */
+    @ApiModelProperty("考试标题")
+    private String applyName;
+
+    /** 考试简介 */
+    @ApiModelProperty("考试简介")
+    private String applyIntroduce;
+
+    /** 1非补考学员 2补考学员 3都有 */
+    @ApiModelProperty("1非补考学员 2补考学员 3都有")
+    private Integer applyStatus;
+
+    /** 开始日期 */
+    @ApiModelProperty("开始日期")
+    private Long applyStartTime;
+
+    /** 结束日期 */
+    @ApiModelProperty("结束日期")
+    private Long applyEndTime;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+    /** 1 启用 0未启用 -1删除 2已过期 */
+    @ApiModelProperty("1 启用 0未启用 -1删除 2已过期")
+    private Integer status;
+
+    /** 商品类型 1视频2题库 3补考 4前培  */
+    @ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+    private Integer goodsType;
+
+    /** 教育类型id */
+    @ApiModelProperty("教育类型id")
+    private Long educationTypeId;
+
+    /** 业务层次id */
+    @ApiModelProperty("业务层次id")
+    private Long businessId;
+
+    /** 项目ID */
+    @ApiModelProperty("项目ID")
+    private Long projectId;
+
+}

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsAddBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 考试安排绑定商品添加对象 exam_apply_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排绑定商品添加对象")
+public class ExamApplyGoodsAddBo {
+
+    /** 绑定考试安排ID */
+    @ApiModelProperty("绑定考试安排ID")
+    private Long applyId;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 绑定商品*/
+    @ApiModelProperty("绑定商品")
+    private Long[] goodsId;
+}

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsEditBo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 考试安排绑定商品编辑对象 exam_apply_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排绑定商品编辑对象")
+public class ExamApplyGoodsEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 绑定考试安排ID */
+    @ApiModelProperty("绑定考试安排ID")
+    private Long applyId;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long goodsId;
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyGoodsQueryBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 考试安排绑定商品分页查询对象 exam_apply_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("考试安排绑定商品分页查询对象")
+public class ExamApplyGoodsQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 绑定考试安排ID */
+	@ApiModelProperty("绑定考试安排ID")
+	private Long applyId;
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long goodsId;
+}

+ 76 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyQueryBo.java

@@ -0,0 +1,76 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 考试安排分页查询对象 exam_apply
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("考试安排分页查询对象")
+public class ExamApplyQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 考试封面 */
+	@ApiModelProperty("考试封面")
+	private String applyUrl;
+	/** 考试标题 */
+	@ApiModelProperty("考试标题")
+	private String applyName;
+	/** 考试简介 */
+	@ApiModelProperty("考试简介")
+	private String applyIntroduce;
+	/** 1非补考学员 2补考学员 3都有 */
+	@ApiModelProperty("1非补考学员 2补考学员 3都有")
+	private Integer applyStatus;
+	/** 开始日期 */
+	@ApiModelProperty("开始日期")
+	private Long applyStartTime;
+	/** 结束日期 */
+	@ApiModelProperty("结束日期")
+	private Long applyEndTime;
+	/** 1 启用 0未启用 -1删除 2已过期 */
+	@ApiModelProperty("1 启用 0未启用 -1删除 2已过期")
+	private Integer status;
+
+	/** 商品类型 1视频2题库 3补考 4前培  */
+	@ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+	private Integer goodsType;
+
+	/** 教育类型id */
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+
+	/** 业务层次id */
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+
+	/** 项目ID */
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+}

+ 42 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteAddBo.java

@@ -0,0 +1,42 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 考试安排地点添加对象 exam_apply_site
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点添加对象")
+public class ExamApplySiteAddBo {
+
+    /** 考试地点 */
+    @ApiModelProperty("考试地点")
+    private Long siteId;
+    /** 考试安排ID */
+    @ApiModelProperty("考试安排ID")
+    private Long applyId;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 1 考试地点 2考培地点 */
+    @ApiModelProperty("1 考试地点 2考培地点")
+    private Integer status;
+
+    /** 考试时间 */
+    @ApiModelProperty("考试时间")
+    private List<ExamApplySiteTimeAddBo> examApplySiteTime;
+
+
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteEditBo.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 考试安排地点编辑对象 exam_apply_site
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点编辑对象")
+public class ExamApplySiteEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 考试地点 */
+    @ApiModelProperty("考试地点")
+    private Long siteId;
+
+    /** 考试安排ID */
+    @ApiModelProperty("考试安排ID")
+    private Long applyId;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+    /** 1 考试地点 2考培地点 */
+    @ApiModelProperty("1 考试地点 2考培地点")
+    private Integer status;
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 考试安排地点分页查询对象 exam_apply_site
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("考试安排地点分页查询对象")
+public class ExamApplySiteQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 考试地点 */
+	@ApiModelProperty("考试地点")
+	private Long siteId;
+	/** 考试安排ID */
+	@ApiModelProperty("考试安排ID")
+	private Long applyId;
+	/** 1 考试地点 2考培地点 */
+	@ApiModelProperty("1 考试地点 2考培地点")
+	private Integer status;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeAddBo.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 考试安排地点绑定时间添加对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点绑定时间添加对象")
+public class ExamApplySiteTimeAddBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long applySiteId;
+    /** 时间的json */
+    @ApiModelProperty("时间的json")
+    private String siteTime;
+    /** 考试日期 */
+    @ApiModelProperty("考试日期")
+    private Long examTime;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+    /** 考试时间段 */
+    @ApiModelProperty("考试时间段")
+    private List<ExamApplySiteTimeTwoAddBo> examApplySiteTimeTwo;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeEditBo.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 考试安排地点绑定时间编辑对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点绑定时间编辑对象")
+public class ExamApplySiteTimeEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long applySiteId;
+
+    /** 时间的json */
+    @ApiModelProperty("时间的json")
+    private String siteTime;
+
+    /** 考试日期 */
+    @ApiModelProperty("考试日期")
+    private Long examTime;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 考试安排地点绑定时间分页查询对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("考试安排地点绑定时间分页查询对象")
+public class ExamApplySiteTimeQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long applySiteId;
+	/** 时间的json */
+	@ApiModelProperty("时间的json")
+	private String siteTime;
+	/** 考试日期 */
+	@ApiModelProperty("考试日期")
+	private Long examTime;
+}

+ 27 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplySiteTimeTwoAddBo.java

@@ -0,0 +1,27 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 考试安排地点绑定时间添加对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点绑定时间添加对象")
+public class ExamApplySiteTimeTwoAddBo {
+
+
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+    /** 更新时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+
+    @ApiModelProperty("人数上限")
+    private Long num;
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeAddBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 前培安排添加对象 exam_before
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培安排添加对象")
+public class ExamBeforeAddBo {
+
+    /** 编码 */
+    @ApiModelProperty("编码")
+    private String code;
+    /** 标题 */
+    @ApiModelProperty("标题")
+    private String beforeName;
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long beforeStartTime;
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long beforeEndTime;
+    /** 1 内部接口 2外部接口 3关联题库资源 */
+    @ApiModelProperty("1 内部接口 2外部接口 3关联题库资源")
+    private Integer beforeStatus;
+    /** 接口地址 */
+    @ApiModelProperty("接口地址")
+    private Long beforeUrl;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 1启用 0未启用 -1删除 2过期 */
+    @ApiModelProperty("1启用 0未启用 -1删除 2过期")
+    private Integer status;
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeEditBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 前培安排编辑对象 exam_before
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培安排编辑对象")
+public class ExamBeforeEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long beforeId;
+
+    /** 编码 */
+    @ApiModelProperty("编码")
+    private String code;
+
+    /** 标题 */
+    @ApiModelProperty("标题")
+    private String beforeName;
+
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long beforeStartTime;
+
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long beforeEndTime;
+
+    /** 1 内部接口 2外部接口 3关联题库资源 */
+    @ApiModelProperty("1 内部接口 2外部接口 3关联题库资源")
+    private Integer beforeStatus;
+
+    /** 接口地址 */
+    @ApiModelProperty("接口地址")
+    private Long beforeUrl;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+    /** 1启用 0未启用 -1删除 2过期 */
+    @ApiModelProperty("1启用 0未启用 -1删除 2过期")
+    private Integer status;
+
+}

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsAddBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 前培绑定商品添加对象 exam_before_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培绑定商品添加对象")
+public class ExamBeforeGoodsAddBo {
+
+    /** 前培ID */
+    @ApiModelProperty("前培ID")
+    private Long beforeId;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long[] goodsId;
+}

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsEditBo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 前培绑定商品编辑对象 exam_before_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培绑定商品编辑对象")
+public class ExamBeforeGoodsEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 前培ID */
+    @ApiModelProperty("前培ID")
+    private Long beforeId;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long goodsId;
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeGoodsQueryBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 前培绑定商品分页查询对象 exam_before_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("前培绑定商品分页查询对象")
+public class ExamBeforeGoodsQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 前培ID */
+	@ApiModelProperty("前培ID")
+	private Long beforeId;
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long goodsId;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeQueryBo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 前培安排分页查询对象 exam_before
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("前培安排分页查询对象")
+public class ExamBeforeQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 编码 */
+	@ApiModelProperty("编码")
+	private String code;
+	/** 标题 */
+	@ApiModelProperty("标题")
+	private String beforeName;
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long beforeStartTime;
+	/** 结束时间 */
+	@ApiModelProperty("结束时间")
+	private Long beforeEndTime;
+	/** 1 内部接口 2外部接口 3关联题库资源 */
+	@ApiModelProperty("1 内部接口 2外部接口 3关联题库资源")
+	private Integer beforeStatus;
+	/** 接口地址 */
+	@ApiModelProperty("接口地址")
+	private Long beforeUrl;
+	/** 1启用 0未启用 -1删除 2过期 */
+	@ApiModelProperty("1启用 0未启用 -1删除 2过期")
+	private Integer status;
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlAddBo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 前培url添加对象 exam_before_url
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培url添加对象")
+public class ExamBeforeUrlAddBo {
+
+    /** 1 内部接口 2外部接口 3题库资源 */
+    @ApiModelProperty("1 内部接口 2外部接口 3题库资源")
+    private Integer urlStatus;
+    /** 链接名字 */
+    @ApiModelProperty("链接名字")
+    private String urlName;
+    /** 链接地址 */
+    @ApiModelProperty("链接地址")
+    private String url;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlEditBo.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 前培url编辑对象 exam_before_url
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培url编辑对象")
+public class ExamBeforeUrlEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long beforeUrlId;
+
+    /** 1 内部接口 2外部接口 3题库资源 */
+    @ApiModelProperty("1 内部接口 2外部接口 3题库资源")
+    private Integer urlStatus;
+
+    /** 链接名字 */
+    @ApiModelProperty("链接名字")
+    private String urlName;
+
+    /** 链接地址 */
+    @ApiModelProperty("链接地址")
+    private String url;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamBeforeUrlQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 前培url分页查询对象 exam_before_url
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("前培url分页查询对象")
+public class ExamBeforeUrlQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 1 内部接口 2外部接口 3题库资源 */
+	@ApiModelProperty("1 内部接口 2外部接口 3题库资源")
+	private Integer urlStatus;
+	/** 链接名字 */
+	@ApiModelProperty("链接名字")
+	private String urlName;
+	/** 链接地址 */
+	@ApiModelProperty("链接地址")
+	private String url;
+}

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamSiteQueryBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -47,5 +48,5 @@ public class ExamSiteQueryBo extends BaseEntity {
 	private Long people;
 	/** 1启用 0关闭 -1删除 */
 	@ApiModelProperty("1启用 0关闭 -1删除")
-	private Integer status;
+	private List<Integer> status;
 }

+ 65 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApply.java

@@ -0,0 +1,65 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 考试安排对象 exam_apply
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_apply")
+public class ExamApply implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "exam_apply_id")
+    private Long applyId;
+    /** 考试封面 */
+    private String applyUrl;
+    /** 考试标题 */
+    private String applyName;
+    /** 考试简介 */
+    private String applyIntroduce;
+    /** 1非补考学员 2补考学员 3都有 */
+    private Integer applyStatus;
+    /** 开始日期 */
+    private Long applyStartTime;
+    /** 结束日期 */
+    private Long applyEndTime;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 1 启用 0未启用 -1删除 2已过期 */
+    private Integer status;
+
+    /** 商品类型 1视频2题库 3补考 4前培  */
+    private Integer goodsType;
+
+    /** 教育类型id */
+    private Long educationTypeId;
+
+    /** 业务层次id */
+    private Long businessId;
+
+    /** 项目ID */
+    private Long projectId;
+
+    /** 编码 */
+    private String code;
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplyGoods.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 考试安排绑定商品对象 exam_apply_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_apply_goods")
+public class ExamApplyGoods implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 绑定考试安排ID */
+    private Long applyId;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** $column.columnComment */
+    private Long goodsId;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplySite.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 考试安排地点对象 exam_apply_site
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_apply_site")
+public class ExamApplySite implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 考试地点 */
+    private Long siteId;
+    /** 考试安排ID */
+    private Long applyId;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 1 考试地点 2考培地点 */
+    private Integer status;
+}

+ 44 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApplySiteTime.java

@@ -0,0 +1,44 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 考试安排地点绑定时间对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_apply_site_time")
+public class ExamApplySiteTime implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** $column.columnComment */
+    private Long applySiteId;
+    /** 时间的json */
+    private String siteTime;
+    /** 考试日期 */
+    private Long examTime;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 考试安排ID */
+    private Long applyId;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 49 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBefore.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 前培安排对象 exam_before
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_before")
+public class ExamBefore implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "before_id")
+    private Long beforeId;
+    /** 编码 */
+    private String code;
+    /** 标题 */
+    private String beforeName;
+    /** 开始时间 */
+    private Long beforeStartTime;
+    /** 结束时间 */
+    private Long beforeEndTime;
+    /** 1 内部接口 2外部接口 3关联题库资源 */
+    private Integer beforeStatus;
+    /** 接口地址 */
+    private Long beforeUrl;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 1启用 0未启用 -1删除 2过期 */
+    private Integer status;
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBeforeGoods.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 前培绑定商品对象 exam_before_goods
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_before_goods")
+public class ExamBeforeGoods implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 前培ID */
+    private Long beforeId;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** $column.columnComment */
+    private Long goodsId;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamBeforeUrl.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 前培url对象 exam_before_url
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_before_url")
+public class ExamBeforeUrl implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "before_url_id")
+    private Long beforeUrlId;
+    /** 1 内部接口 2外部接口 3题库资源 */
+    private Integer urlStatus;
+    /** 链接名字 */
+    private String urlName;
+    /** 链接地址 */
+    private String url;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplyGoodsMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamApplyGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 考试安排绑定商品Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamApplyGoodsMapper extends BaseMapper<ExamApplyGoods> {
+
+}

+ 23 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplyMapper.java

@@ -0,0 +1,23 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.domain.ExamApply;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+
+import java.util.List;
+
+/**
+ * 考试安排Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamApplyMapper extends BaseMapper<ExamApply> {
+
+    List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo);
+
+    List<Long> countGoods(Long applyId);
+
+    List<ExamNumberGoodsVo> examNumberGoodsVos(Long applyId);
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplySiteMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamApplySite;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 考试安排地点Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamApplySiteMapper extends BaseMapper<ExamApplySite> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamApplySiteTimeMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamApplySiteTime;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 考试安排地点绑定时间Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamApplySiteTimeMapper extends BaseMapper<ExamApplySiteTime> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeGoodsMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamBeforeGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 前培绑定商品Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamBeforeGoodsMapper extends BaseMapper<ExamBeforeGoods> {
+
+}

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeMapper.java

@@ -0,0 +1,19 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.domain.ExamBefore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+
+import java.util.List;
+
+/**
+ * 前培安排Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamBeforeMapper extends BaseMapper<ExamBefore> {
+
+    List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo);
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamBeforeUrlMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamBeforeUrl;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 前培urlMapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface ExamBeforeUrlMapper extends BaseMapper<ExamBeforeUrl> {
+
+}

+ 54 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplyGoodsService.java

@@ -0,0 +1,54 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamApplyGoods;
+import com.zhongzheng.modules.exam.vo.ExamApplyGoodsVo;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 考试安排绑定商品Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamApplyGoodsService extends IService<ExamApplyGoods> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamApplyGoodsVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamApplyGoodsVo> queryList(ExamApplyGoodsQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入考试安排绑定商品
+	 * @param bo 考试安排绑定商品新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamApplyGoodsAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改考试安排绑定商品
+	 * @param bo 考试安排绑定商品编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamApplyGoodsEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    boolean addGoods(ExamApplyGoodsAddBo bo);
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplyService.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.domain.ExamApply;
+import com.zhongzheng.modules.exam.vo.ExamApplyVo;
+import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 考试安排Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamApplyService extends IService<ExamApply> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamApplyVo queryById(Long applyId);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamApplyVo> queryList(ExamApplyQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入考试安排
+	 * @param bo 考试安排新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamApplyAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改考试安排
+	 * @param bo 考试安排编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamApplyEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo);
+}

+ 54 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplySiteService.java

@@ -0,0 +1,54 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamApplySite;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 考试安排地点Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamApplySiteService extends IService<ExamApplySite> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamApplySiteVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamApplySiteVo> queryList(ExamApplySiteQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入考试安排地点
+	 * @param bo 考试安排地点新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamApplySiteAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改考试安排地点
+	 * @param bo 考试安排地点编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamApplySiteEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    boolean addSite(List<ExamApplySiteAddBo> bo);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamApplySiteTimeService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamApplySiteTime;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 考试安排地点绑定时间Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamApplySiteTimeService extends IService<ExamApplySiteTime> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamApplySiteTimeVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamApplySiteTimeVo> queryList(ExamApplySiteTimeQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入考试安排地点绑定时间
+	 * @param bo 考试安排地点绑定时间新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamApplySiteTimeAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改考试安排地点绑定时间
+	 * @param bo 考试安排地点绑定时间编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamApplySiteTimeEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeGoodsService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamBeforeGoods;
+import com.zhongzheng.modules.exam.vo.ExamBeforeGoodsVo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 前培绑定商品Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamBeforeGoodsService extends IService<ExamBeforeGoods> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamBeforeGoodsVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamBeforeGoodsVo> queryList(ExamBeforeGoodsQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入前培绑定商品
+	 * @param bo 前培绑定商品新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamBeforeGoodsAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改前培绑定商品
+	 * @param bo 前培绑定商品编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamBeforeGoodsEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeService.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.domain.ExamBefore;
+import com.zhongzheng.modules.exam.vo.ExamBeforeVo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 前培安排Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamBeforeService extends IService<ExamBefore> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamBeforeVo queryById(Long beforeId);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamBeforeVo> queryList(ExamBeforeQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入前培安排
+	 * @param bo 前培安排新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamBeforeAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改前培安排
+	 * @param bo 前培安排编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamBeforeEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamBeforeUrlService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamBeforeUrl;
+import com.zhongzheng.modules.exam.vo.ExamBeforeUrlVo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 前培urlService接口
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+public interface IExamBeforeUrlService extends IService<ExamBeforeUrl> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamBeforeUrlVo queryById(Long beforeUrlId);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamBeforeUrlVo> queryList(ExamBeforeUrlQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入前培url
+	 * @param bo 前培url新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamBeforeUrlAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改前培url
+	 * @param bo 前培url编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamBeforeUrlEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 116 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyGoodsServiceImpl.java

@@ -0,0 +1,116 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyGoodsEditBo;
+import com.zhongzheng.modules.exam.domain.ExamApplyGoods;
+import com.zhongzheng.modules.exam.mapper.ExamApplyGoodsMapper;
+import com.zhongzheng.modules.exam.vo.ExamApplyGoodsVo;
+import com.zhongzheng.modules.exam.service.IExamApplyGoodsService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 考试安排绑定商品Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamApplyGoodsServiceImpl extends ServiceImpl<ExamApplyGoodsMapper, ExamApplyGoods> implements IExamApplyGoodsService {
+
+    @Override
+    public ExamApplyGoodsVo queryById(Long id){
+        ExamApplyGoods db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ExamApplyGoodsVo.class);
+    }
+
+    @Override
+    public List<ExamApplyGoodsVo> queryList(ExamApplyGoodsQueryBo bo) {
+        LambdaQueryWrapper<ExamApplyGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getApplyId() != null, ExamApplyGoods::getApplyId, bo.getApplyId());
+        lqw.eq(bo.getGoodsId() != null, ExamApplyGoods::getGoodsId, bo.getGoodsId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamApplyGoodsVo> entity2Vo(Collection<ExamApplyGoods> collection) {
+        List<ExamApplyGoodsVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamApplyGoodsVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamApplyGoods> page = (Page<ExamApplyGoods>)collection;
+            Page<ExamApplyGoodsVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamApplyGoodsAddBo bo) {
+        ExamApplyGoods add = BeanUtil.toBean(bo, ExamApplyGoods.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamApplyGoodsEditBo bo) {
+        ExamApplyGoods update = BeanUtil.toBean(bo, ExamApplyGoods.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamApplyGoods entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+    @Override
+    public boolean addGoods(ExamApplyGoodsAddBo bo) {
+        LambdaQueryWrapper<ExamApplyGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ExamApplyGoods::getApplyId, bo.getApplyId());
+        this.remove(lqw);
+        for (Long goodsId : bo.getGoodsId()) {
+            ExamApplyGoods add = new ExamApplyGoods();
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setApplyId(bo.getApplyId());
+            add.setGoodsId(goodsId);
+            this.save(add);
+        }
+        return true;
+    }
+}

+ 130 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java

@@ -0,0 +1,130 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamApplyAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplyEditBo;
+import com.zhongzheng.modules.exam.domain.ExamApply;
+import com.zhongzheng.modules.exam.mapper.ExamApplyMapper;
+import com.zhongzheng.modules.exam.vo.ExamApplyVo;
+import com.zhongzheng.modules.exam.service.IExamApplyService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 考试安排Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply> implements IExamApplyService {
+
+    @Override
+    public ExamApplyVo queryById(Long applyId){
+        ExamApply db = this.baseMapper.selectById(applyId);
+        ExamApplyVo examApplyVo = BeanUtil.toBean(db, ExamApplyVo.class);
+        List<ExamNumberGoodsVo> examNumberGoodsVos = baseMapper.examNumberGoodsVos(applyId);
+        return examApplyVo;
+    }
+
+    @Override
+    public List<ExamApplyVo> queryList(ExamApplyQueryBo bo) {
+        LambdaQueryWrapper<ExamApply> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getApplyUrl()), ExamApply::getApplyUrl, bo.getApplyUrl());
+        lqw.like(StrUtil.isNotBlank(bo.getApplyName()), ExamApply::getApplyName, bo.getApplyName());
+        lqw.eq(StrUtil.isNotBlank(bo.getApplyIntroduce()), ExamApply::getApplyIntroduce, bo.getApplyIntroduce());
+        lqw.eq(bo.getApplyStatus() != null, ExamApply::getApplyStatus, bo.getApplyStatus());
+        lqw.eq(bo.getApplyStartTime() != null, ExamApply::getApplyStartTime, bo.getApplyStartTime());
+        lqw.eq(bo.getApplyEndTime() != null, ExamApply::getApplyEndTime, bo.getApplyEndTime());
+        lqw.eq(bo.getStatus() != null, ExamApply::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamApplyVo> entity2Vo(Collection<ExamApply> collection) {
+        List<ExamApplyVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamApplyVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamApply> page = (Page<ExamApply>)collection;
+            Page<ExamApplyVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamApplyAddBo bo) {
+        ExamApply add = BeanUtil.toBean(bo, ExamApply.class);
+        validEntityBeforeSave(add);
+        add.setCode(ServletUtils.getEncoded("KSAP"));
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamApplyEditBo bo) {
+        ExamApply update = BeanUtil.toBean(bo, ExamApply.class);
+        if (bo.getStatus() == 1){
+            List<Long> contGoodsId = baseMapper.countGoods(bo.getApplyId());
+            if (CollectionUtils.isNotEmpty(contGoodsId)){
+                String goodsName ="";
+                for (Long goodsId : contGoodsId) {
+                    ExamNumberGoodsQueryBo examNumberGoodsQueryBo = new ExamNumberGoodsQueryBo();
+                    examNumberGoodsQueryBo.setGoodsId(goodsId);
+                    List<ExamNumberGoodsVo> examNumberGoodsVos = this.listGoods(examNumberGoodsQueryBo);
+                    goodsName.concat(examNumberGoodsVos.get(0).getGoodsName()+",");
+                }
+                throw new RuntimeException(goodsName+"已被其他进行中的考试计划使用,请修改,再启用");
+            }
+        }
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamApply entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+    @Override
+    public List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
+        return baseMapper.listGoods(bo);
+    }
+}

+ 136 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplySiteServiceImpl.java

@@ -0,0 +1,136 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeAddBo;
+import com.zhongzheng.modules.exam.domain.ExamApplySiteTime;
+import com.zhongzheng.modules.exam.service.IExamApplySiteTimeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteEditBo;
+import com.zhongzheng.modules.exam.domain.ExamApplySite;
+import com.zhongzheng.modules.exam.mapper.ExamApplySiteMapper;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
+import com.zhongzheng.modules.exam.service.IExamApplySiteService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 考试安排地点Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamApplySiteServiceImpl extends ServiceImpl<ExamApplySiteMapper, ExamApplySite> implements IExamApplySiteService {
+
+    @Autowired
+    private IExamApplySiteTimeService examApplySiteTimeService;
+
+    @Override
+    public ExamApplySiteVo queryById(Long id){
+        ExamApplySite db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ExamApplySiteVo.class);
+    }
+
+    @Override
+    public List<ExamApplySiteVo> queryList(ExamApplySiteQueryBo bo) {
+        LambdaQueryWrapper<ExamApplySite> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getSiteId() != null, ExamApplySite::getSiteId, bo.getSiteId());
+        lqw.eq(bo.getApplyId() != null, ExamApplySite::getApplyId, bo.getApplyId());
+        lqw.eq(bo.getStatus() != null, ExamApplySite::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamApplySiteVo> entity2Vo(Collection<ExamApplySite> collection) {
+        List<ExamApplySiteVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamApplySiteVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamApplySite> page = (Page<ExamApplySite>)collection;
+            Page<ExamApplySiteVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamApplySiteAddBo bo) {
+        ExamApplySite add = BeanUtil.toBean(bo, ExamApplySite.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamApplySiteEditBo bo) {
+        ExamApplySite update = BeanUtil.toBean(bo, ExamApplySite.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamApplySite entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+    @Override
+    public boolean addSite(List<ExamApplySiteAddBo> bo) {
+        LambdaQueryWrapper<ExamApplySite> lqw = Wrappers.lambdaQuery();
+        lqw.eq( ExamApplySite::getApplyId,bo.get(0).getApplyId());
+        this.remove(lqw);
+        LambdaQueryWrapper<ExamApplySiteTime> example = Wrappers.lambdaQuery();
+        example.eq( ExamApplySiteTime::getApplyId,bo.get(0).getApplyId());
+        examApplySiteTimeService.remove(example);
+        for (ExamApplySiteAddBo examApplySiteAddBo : bo) {
+            ExamApplySite add = BeanUtil.toBean(examApplySiteAddBo, ExamApplySite.class);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            this.save(add);
+            for (ExamApplySiteTimeAddBo examApplySiteTimeAddBo : examApplySiteAddBo.getExamApplySiteTime()) {
+                ExamApplySiteTime examApplySiteTime = BeanUtil.toBean(examApplySiteTimeAddBo, ExamApplySiteTime.class);
+                examApplySiteTime.setApplySiteId(add.getId());
+                examApplySiteTime.setApplyId(add.getApplyId());
+                examApplySiteTime.setSiteTime(JSONUtil.toJsonStr(examApplySiteTimeAddBo.getExamApplySiteTimeTwo()));
+                examApplySiteTime.setCreateTime(DateUtils.getNowTime());
+                examApplySiteTime.setUpdateTime(DateUtils.getNowTime());
+                examApplySiteTimeService.save(examApplySiteTime);
+            }
+        }
+        return true;
+    }
+}

+ 101 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplySiteTimeServiceImpl.java

@@ -0,0 +1,101 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeAddBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeEditBo;
+import com.zhongzheng.modules.exam.domain.ExamApplySiteTime;
+import com.zhongzheng.modules.exam.mapper.ExamApplySiteTimeMapper;
+import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
+import com.zhongzheng.modules.exam.service.IExamApplySiteTimeService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 考试安排地点绑定时间Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamApplySiteTimeServiceImpl extends ServiceImpl<ExamApplySiteTimeMapper, ExamApplySiteTime> implements IExamApplySiteTimeService {
+
+    @Override
+    public ExamApplySiteTimeVo queryById(Long id){
+        ExamApplySiteTime db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ExamApplySiteTimeVo.class);
+    }
+
+    @Override
+    public List<ExamApplySiteTimeVo> queryList(ExamApplySiteTimeQueryBo bo) {
+        LambdaQueryWrapper<ExamApplySiteTime> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getApplySiteId() != null, ExamApplySiteTime::getApplySiteId, bo.getApplySiteId());
+        lqw.eq(StrUtil.isNotBlank(bo.getSiteTime()), ExamApplySiteTime::getSiteTime, bo.getSiteTime());
+        lqw.eq(bo.getExamTime() != null, ExamApplySiteTime::getExamTime, bo.getExamTime());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamApplySiteTimeVo> entity2Vo(Collection<ExamApplySiteTime> collection) {
+        List<ExamApplySiteTimeVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamApplySiteTimeVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamApplySiteTime> page = (Page<ExamApplySiteTime>)collection;
+            Page<ExamApplySiteTimeVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamApplySiteTimeAddBo bo) {
+        ExamApplySiteTime add = BeanUtil.toBean(bo, ExamApplySiteTime.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamApplySiteTimeEditBo bo) {
+        ExamApplySiteTime update = BeanUtil.toBean(bo, ExamApplySiteTime.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamApplySiteTime entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 108 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeGoodsServiceImpl.java

@@ -0,0 +1,108 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.exam.domain.ExamApplyGoods;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeGoodsEditBo;
+import com.zhongzheng.modules.exam.domain.ExamBeforeGoods;
+import com.zhongzheng.modules.exam.mapper.ExamBeforeGoodsMapper;
+import com.zhongzheng.modules.exam.vo.ExamBeforeGoodsVo;
+import com.zhongzheng.modules.exam.service.IExamBeforeGoodsService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 前培绑定商品Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamBeforeGoodsServiceImpl extends ServiceImpl<ExamBeforeGoodsMapper, ExamBeforeGoods> implements IExamBeforeGoodsService {
+
+    @Override
+    public ExamBeforeGoodsVo queryById(Long id){
+        ExamBeforeGoods db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ExamBeforeGoodsVo.class);
+    }
+
+    @Override
+    public List<ExamBeforeGoodsVo> queryList(ExamBeforeGoodsQueryBo bo) {
+        LambdaQueryWrapper<ExamBeforeGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getBeforeId() != null, ExamBeforeGoods::getBeforeId, bo.getBeforeId());
+        lqw.eq(bo.getGoodsId() != null, ExamBeforeGoods::getGoodsId, bo.getGoodsId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamBeforeGoodsVo> entity2Vo(Collection<ExamBeforeGoods> collection) {
+        List<ExamBeforeGoodsVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamBeforeGoodsVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamBeforeGoods> page = (Page<ExamBeforeGoods>)collection;
+            Page<ExamBeforeGoodsVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamBeforeGoodsAddBo bo) {
+        LambdaQueryWrapper<ExamBeforeGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ExamBeforeGoods::getBeforeId, bo.getBeforeId());
+        this.remove(lqw);
+        for (Long goodsId : bo.getGoodsId()) {
+            ExamBeforeGoods add = new ExamBeforeGoods();
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setGoodsId(goodsId);
+            add.setBeforeId(bo.getBeforeId());
+            return this.save(add);
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamBeforeGoodsEditBo bo) {
+        ExamBeforeGoods update = BeanUtil.toBean(bo, ExamBeforeGoods.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamBeforeGoods entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 112 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeServiceImpl.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamBeforeAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeEditBo;
+import com.zhongzheng.modules.exam.domain.ExamBefore;
+import com.zhongzheng.modules.exam.mapper.ExamBeforeMapper;
+import com.zhongzheng.modules.exam.vo.ExamBeforeVo;
+import com.zhongzheng.modules.exam.service.IExamBeforeService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 前培安排Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamBeforeServiceImpl extends ServiceImpl<ExamBeforeMapper, ExamBefore> implements IExamBeforeService {
+
+    @Override
+    public ExamBeforeVo queryById(Long beforeId){
+        ExamBefore db = this.baseMapper.selectById(beforeId);
+        return BeanUtil.toBean(db, ExamBeforeVo.class);
+    }
+
+    @Override
+    public List<ExamBeforeVo> queryList(ExamBeforeQueryBo bo) {
+        LambdaQueryWrapper<ExamBefore> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getCode()), ExamBefore::getCode, bo.getCode());
+        lqw.like(StrUtil.isNotBlank(bo.getBeforeName()), ExamBefore::getBeforeName, bo.getBeforeName());
+        lqw.eq(bo.getBeforeStartTime() != null, ExamBefore::getBeforeStartTime, bo.getBeforeStartTime());
+        lqw.eq(bo.getBeforeEndTime() != null, ExamBefore::getBeforeEndTime, bo.getBeforeEndTime());
+        lqw.eq(bo.getBeforeStatus() != null, ExamBefore::getBeforeStatus, bo.getBeforeStatus());
+        lqw.eq(bo.getBeforeUrl() != null, ExamBefore::getBeforeUrl, bo.getBeforeUrl());
+        lqw.eq(bo.getStatus() != null, ExamBefore::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamBeforeVo> entity2Vo(Collection<ExamBefore> collection) {
+        List<ExamBeforeVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamBeforeVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamBefore> page = (Page<ExamBefore>)collection;
+            Page<ExamBeforeVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamBeforeAddBo bo) {
+        ExamBefore add = BeanUtil.toBean(bo, ExamBefore.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamBeforeEditBo bo) {
+        ExamBefore update = BeanUtil.toBean(bo, ExamBefore.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamBefore entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+    @Override
+    public List<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
+        return baseMapper.listGoods(bo);
+    }
+}

+ 101 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamBeforeUrlServiceImpl.java

@@ -0,0 +1,101 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlAddBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamBeforeUrlEditBo;
+import com.zhongzheng.modules.exam.domain.ExamBeforeUrl;
+import com.zhongzheng.modules.exam.mapper.ExamBeforeUrlMapper;
+import com.zhongzheng.modules.exam.vo.ExamBeforeUrlVo;
+import com.zhongzheng.modules.exam.service.IExamBeforeUrlService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 前培urlService业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Service
+public class ExamBeforeUrlServiceImpl extends ServiceImpl<ExamBeforeUrlMapper, ExamBeforeUrl> implements IExamBeforeUrlService {
+
+    @Override
+    public ExamBeforeUrlVo queryById(Long beforeUrlId){
+        ExamBeforeUrl db = this.baseMapper.selectById(beforeUrlId);
+        return BeanUtil.toBean(db, ExamBeforeUrlVo.class);
+    }
+
+    @Override
+    public List<ExamBeforeUrlVo> queryList(ExamBeforeUrlQueryBo bo) {
+        LambdaQueryWrapper<ExamBeforeUrl> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUrlStatus() != null, ExamBeforeUrl::getUrlStatus, bo.getUrlStatus());
+        lqw.like(StrUtil.isNotBlank(bo.getUrlName()), ExamBeforeUrl::getUrlName, bo.getUrlName());
+        lqw.eq(StrUtil.isNotBlank(bo.getUrl()), ExamBeforeUrl::getUrl, bo.getUrl());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamBeforeUrlVo> entity2Vo(Collection<ExamBeforeUrl> collection) {
+        List<ExamBeforeUrlVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamBeforeUrlVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamBeforeUrl> page = (Page<ExamBeforeUrl>)collection;
+            Page<ExamBeforeUrlVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamBeforeUrlAddBo bo) {
+        ExamBeforeUrl add = BeanUtil.toBean(bo, ExamBeforeUrl.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamBeforeUrlEditBo bo) {
+        ExamBeforeUrl update = BeanUtil.toBean(bo, ExamBeforeUrl.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamBeforeUrl entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 19 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNumberServiceImpl.java

@@ -45,8 +45,25 @@ public class ExamNumberServiceImpl extends ServiceImpl<ExamNumberMapper, ExamNum
 
     @Override
     public ExamNumberVo queryById(Long examNumberId){
-        ExamNumber db = this.baseMapper.selectById(examNumberId);
-        return BeanUtil.toBean(db, ExamNumberVo.class);
+        ExamNumberQueryBo examNumberQueryBo = new ExamNumberQueryBo();
+        examNumberQueryBo.setExamNumberId(examNumberId);
+        List<ExamNumberVo> examNumberVos = baseMapper.ListExamNumber(examNumberQueryBo);
+        if (CollectionUtils.isEmpty(examNumberVos)){
+            throw new IllegalArgumentException("参数有误");
+        }
+        ExamNumberVo examNumberVo = examNumberVos.get(0);
+        List<ExamNumberGoodsVo> examNumberGoodsVos = examNumberGoodsService.ListExamNumber(examNumberVo.getExamNumberId());
+            examNumberVo.setExamNumberGoodsVos(examNumberGoodsVos);
+
+        //初始化需要得到的数组
+        Long[] array = new Long[examNumberGoodsVos.size()];
+
+        //使用for循环得到数组
+        for(int i = 0; i < examNumberGoodsVos.size();i++){
+            array[i] = examNumberGoodsVos.get(i).getGoodsId();
+        }
+        examNumberVo.setGoodsId(array);
+        return examNumberVo;
     }
 
     @Override

+ 26 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamSiteServiceImpl.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.exam.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import org.springframework.stereotype.Service;
@@ -43,7 +44,8 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteMapper, ExamSite> i
         lqw.eq(StrUtil.isNotBlank(bo.getCode()), ExamSite::getCode, bo.getCode());
         lqw.eq(StrUtil.isNotBlank(bo.getSiteAddress()), ExamSite::getSiteAddress, bo.getSiteAddress());
         lqw.eq(bo.getPeople() != null, ExamSite::getPeople, bo.getPeople());
-        lqw.eq(bo.getStatus() != null, ExamSite::getStatus, bo.getStatus());
+        lqw.in(CollectionUtils.isNotEmpty(bo.getStatus()), ExamSite::getStatus, bo.getStatus());
+        lqw.orderByDesc(ExamSite::getCreateTime);
         return entity2Vo(this.list(lqw));
     }
 
@@ -70,6 +72,13 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteMapper, ExamSite> i
     @Override
     public Boolean insertByAddBo(ExamSiteAddBo bo) {
         ExamSite add = BeanUtil.toBean(bo, ExamSite.class);
+        LambdaQueryWrapper<ExamSite> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ExamSite::getSiteAddress, bo.getSiteAddress());
+        lqw.eq(ExamSite::getStatus, 1);
+        List<ExamSite> list = this.list(lqw);
+        if (CollectionUtils.isNotEmpty(list)){
+            throw new IllegalArgumentException("地址重复,请重新填写");
+        }
         validEntityBeforeSave(add);
         add.setCode(ServletUtils.getEncoded("DD"));
         add.setCreateTime(DateUtils.getNowTime());
@@ -82,6 +91,22 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteMapper, ExamSite> i
         ExamSite update = BeanUtil.toBean(bo, ExamSite.class);
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
+        if (bo.getStatus() != -1) {
+            LambdaQueryWrapper<ExamSite> lqw = Wrappers.lambdaQuery();
+            lqw.eq(ExamSite::getSiteAddress, bo.getSiteAddress());
+            lqw.eq(ExamSite::getStatus, 1);
+            lqw.eq(ExamSite::getSiteId, bo.getSiteId());
+            List<ExamSite> list = this.list(lqw);
+            if (CollectionUtils.isEmpty(list)) {
+                lqw.clear();
+                lqw.eq(ExamSite::getSiteAddress, bo.getSiteAddress());
+                lqw.eq(ExamSite::getStatus, 1);
+                List<ExamSite> examSiteList = this.list(lqw);
+                if (CollectionUtils.isNotEmpty(examSiteList)){
+                    throw new IllegalArgumentException("地址重复,请重新填写");
+                }
+            }
+        }
         return this.updateById(update);
     }
 

+ 35 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyGoodsVo.java

@@ -0,0 +1,35 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 考试安排绑定商品视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排绑定商品视图对象")
+public class ExamApplyGoodsVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 绑定考试安排ID */
+	@Excel(name = "绑定考试安排ID")
+	@ApiModelProperty("绑定考试安排ID")
+	private Long applyId;
+	/** $column.columnComment */
+	@Excel(name = "绑定考试安排ID")
+	@ApiModelProperty("$column.columnComment")
+	private Long goodsId;
+}

+ 27 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteTimeTwoVo.java

@@ -0,0 +1,27 @@
+package com.zhongzheng.modules.exam.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 考试安排地点绑定时间添加对象 exam_apply_site_time
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点绑定时间添加对象")
+public class ExamApplySiteTimeTwoVo {
+
+
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+    /** 更新时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+
+    @ApiModelProperty("人数上限")
+    private Long num;
+}

+ 44 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteTimeVo.java

@@ -0,0 +1,44 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeTwoAddBo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 考试安排地点绑定时间视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点绑定时间视图对象")
+public class ExamApplySiteTimeVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** $column.columnComment */
+	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+	@ApiModelProperty("$column.columnComment")
+	private Long applySiteId;
+	/** 时间的json */
+	@Excel(name = "时间的json")
+	@ApiModelProperty("时间的json")
+	private String siteTime;
+	/** 考试日期 */
+	@Excel(name = "考试日期")
+	@ApiModelProperty("考试日期")
+	private Long examTime;
+
+	/** 考试时间段 */
+	@ApiModelProperty("考试时间段")
+	private List<ExamApplySiteTimeTwoAddBo> examApplySiteTimeTwo;
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplySiteVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 考试安排地点视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排地点视图对象")
+public class ExamApplySiteVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 考试地点 */
+	@Excel(name = "考试地点")
+	@ApiModelProperty("考试地点")
+	private Long siteId;
+	/** 考试安排ID */
+	@Excel(name = "考试安排ID")
+	@ApiModelProperty("考试安排ID")
+	private Long applyId;
+	/** 1 考试地点 2考培地点 */
+	@Excel(name = "1 考试地点 2考培地点")
+	@ApiModelProperty("1 考试地点 2考培地点")
+	private Integer status;
+	/** 地址 */
+	@Excel(name = "地址")
+	@ApiModelProperty("地址")
+	private String siteAddress;
+
+	/** 人数 */
+	@Excel(name = "人数")
+	@ApiModelProperty("人数")
+	private Long people;
+
+	@ApiModelProperty("考试地点时间")
+	private List<ExamApplySiteTimeVo> examApplySiteTime;
+}

+ 77 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyVo.java

@@ -0,0 +1,77 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 考试安排视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试安排视图对象")
+public class ExamApplyVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long applyId;
+
+	/** 考试封面 */
+	@Excel(name = "考试封面")
+	@ApiModelProperty("考试封面")
+	private String applyUrl;
+	/** 考试标题 */
+	@Excel(name = "考试标题")
+	@ApiModelProperty("考试标题")
+	private String applyName;
+	/** 考试简介 */
+	@Excel(name = "考试简介")
+	@ApiModelProperty("考试简介")
+	private String applyIntroduce;
+	/** 1非补考学员 2补考学员 3都有 */
+	@Excel(name = "1非补考学员 2补考学员 3都有")
+	@ApiModelProperty("1非补考学员 2补考学员 3都有")
+	private Integer applyStatus;
+	/** 开始日期 */
+	@Excel(name = "开始日期")
+	@ApiModelProperty("开始日期")
+	private Long applyStartTime;
+	/** 结束日期 */
+	@Excel(name = "结束日期")
+	@ApiModelProperty("结束日期")
+	private Long applyEndTime;
+	/** 1 启用 0未启用 -1删除 2已过期 */
+	@Excel(name = "1 启用 0未启用 -1删除 2已过期")
+	@ApiModelProperty("1 启用 0未启用 -1删除 2已过期")
+	private Integer status;
+
+	/** 商品类型 1视频2题库 3补考 4前培  */
+	@ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+	private Integer goodsType;
+
+	/** 教育类型id */
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+
+	/** 业务层次id */
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+
+	/** 项目ID */
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+
+	@ApiModelProperty("考试地点时间")
+	private List<ExamApplySiteVo> examApplySite;
+
+	@ApiModelProperty("商品")
+	private List<ExamNumberGoodsVo> examNumberGoods;
+}

+ 35 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeGoodsVo.java

@@ -0,0 +1,35 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 前培绑定商品视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培绑定商品视图对象")
+public class ExamBeforeGoodsVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 前培ID */
+	@Excel(name = "前培ID")
+	@ApiModelProperty("前培ID")
+	private Long beforeId;
+	/** $column.columnComment */
+	@Excel(name = "前培ID")
+	@ApiModelProperty("$column.columnComment")
+	private Long goodsId;
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeUrlVo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 前培url视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培url视图对象")
+public class ExamBeforeUrlVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long beforeUrlId;
+
+	/** 1 内部接口 2外部接口 3题库资源 */
+	@Excel(name = "1 内部接口 2外部接口 3题库资源")
+	@ApiModelProperty("1 内部接口 2外部接口 3题库资源")
+	private Integer urlStatus;
+	/** 链接名字 */
+	@Excel(name = "链接名字")
+	@ApiModelProperty("链接名字")
+	private String urlName;
+	/** 链接地址 */
+	@Excel(name = "链接地址")
+	@ApiModelProperty("链接地址")
+	private String url;
+}

+ 85 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamBeforeVo.java

@@ -0,0 +1,85 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 前培安排视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("前培安排视图对象")
+public class ExamBeforeVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long beforeId;
+
+	/** 编码 */
+	@Excel(name = "编码")
+	@ApiModelProperty("编码")
+	private String code;
+	/** 标题 */
+	@Excel(name = "标题")
+	@ApiModelProperty("标题")
+	private String beforeName;
+	/** 开始时间 */
+	@Excel(name = "开始时间")
+	@ApiModelProperty("开始时间")
+	private Long beforeStartTime;
+	/** 结束时间 */
+	@Excel(name = "结束时间")
+	@ApiModelProperty("结束时间")
+	private Long beforeEndTime;
+	/** 1 内部接口 2外部接口 3关联题库资源 */
+	@Excel(name = "1 内部接口 2外部接口 3关联题库资源")
+	@ApiModelProperty("1 内部接口 2外部接口 3关联题库资源")
+	private Integer beforeStatus;
+	/** 接口地址 */
+	@Excel(name = "接口地址")
+	@ApiModelProperty("接口地址")
+	private Long beforeUrl;
+	/** 1启用 0未启用 -1删除 2过期 */
+	@Excel(name = "1启用 0未启用 -1删除 2过期")
+	@ApiModelProperty("1启用 0未启用 -1删除 2过期")
+	private Integer status;
+
+	/** 链接名字 */
+	@Excel(name = "链接名字")
+	@ApiModelProperty("链接名字")
+	private String urlName;
+	/** 链接地址 */
+	@Excel(name = "链接地址")
+	@ApiModelProperty("链接地址")
+	private String url;
+
+	/** 商品类型 1视频2题库 3补考 4前培  */
+	@ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+	private Integer goodsType;
+
+	/** 教育类型id */
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+
+	/** 业务层次id */
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+
+	/** 项目ID */
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+
+	/** 链接地址 */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private List<ExamNumberGoodsVo> examNumberGoods;
+}

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamNumberVo.java

@@ -68,4 +68,8 @@ public class ExamNumberVo {
 	@Excel(name = "项目ID")
 	@ApiModelProperty("考次绑定商品")
 	private List<ExamNumberGoodsVo> examNumberGoodsVos;
+
+	/** 商品ID */
+	@ApiModelProperty("商品ID")
+	private Long[] goodsId;
 }

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyGoodsMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamApplyGoodsMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamApplyGoods" id="ExamApplyGoodsResult">
+        <result property="id" column="id"/>
+        <result property="applyId" column="apply_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="goodsId" column="goods_id"/>
+    </resultMap>
+
+
+</mapper>

+ 80 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamApplyMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamApply" id="ExamApplyResult">
+        <result property="applyId" column="exam_apply_id"/>
+        <result property="applyUrl" column="apply_url"/>
+        <result property="applyName" column="apply_name"/>
+        <result property="applyIntroduce" column="apply_introduce"/>
+        <result property="applyStatus" column="apply_status"/>
+        <result property="applyStartTime" column="apply_start_time"/>
+        <result property="applyEndTime" column="apply_end_time"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo" id="ExamNumberGoodsVoResult">
+        <result property="id" column="id"/>
+        <result property="examNumberId" column="exam_number_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="code" column="code"/>
+        <result property="standPrice" column="stand_price"/>
+        <result property="goodsStatus" column="goods_status"/>
+    </resultMap>
+
+    <select id="listGoods" parameterType="com.zhongzheng.modules.exam.bo.ExamNumberQueryBo" resultMap="ExamNumberGoodsVoResult">
+        SELECT
+        goods_id,
+        goods_name,
+        CODE,
+        stand_price,
+        (case WHEN (SELECT COUNT(ea.apply_id) FROM exam_apply ea LEFT JOIN exam_apply_goods eag on ea.apply_id =eag.apply_id where 1=1 and eag.goods_id = g.goods_id and ea.status =1) >0 then 0 ELSE 1 end) as goods_status
+        FROM
+        goods g
+        WHERE
+        1 = 1
+        and g.status in(1)
+        <if test="businessId != null and businessId != ''">
+            and g.business_id = #{businessId}
+        </if>
+        <if test="goodsId != null and goodsId != ''">
+            and g.goods_id = #{goodsId}
+        </if>
+        <if test="projectId != null and projectId != ''">
+            and g.project_id = #{projectId}
+        </if>
+        <if test="goodsType != null and goodsType != ''">
+            and g.goods_type = #{goodsType}
+        </if>
+    </select>
+
+    <select id="countGoods" parameterType="long" resultType="long">
+        SELECT
+        eag.goods_id
+        FROM
+            exam_apply ea
+            LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id where ea.apply_id =#{applyId}
+and (SELECT COUNT(eay.apply_id) FROM exam_apply eay LEFT JOIN exam_apply_goods eags ON eay.apply_id = eags.apply_id where eags.goods_id = eag.goods_id and eags.apply_id != eag.apply_id and eay.status =1) > 0
+    </select>
+
+    <select id="examNumberGoodsVos" parameterType="long" resultMap="ExamNumberGoodsVoResult">
+        SELECT
+            g.goods_id,
+            g.goods_name,
+            g.CODE,
+            g.stand_price
+        FROM
+            goods g
+                LEFT JOIN exam_apply_goods eag ON g.goods_id = eag.goods_id
+        WHERE
+            1 = 1
+          AND g.STATUS IN ( 1 )
+          AND eag.apply_id =#{applyId}
+
+    </select>
+</mapper>

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplySiteMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamApplySiteMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamApplySite" id="ExamApplySiteResult">
+        <result property="id" column="id"/>
+        <result property="siteId" column="site_id"/>
+        <result property="applyId" column="apply_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+
+</mapper>

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplySiteTimeMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamApplySiteTimeMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamApplySiteTime" id="ExamApplySiteTimeResult">
+        <result property="id" column="id"/>
+        <result property="applySiteId" column="apply_site_id"/>
+        <result property="siteTime" column="site_time"/>
+        <result property="examTime" column="exam_time"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeGoodsMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamBeforeGoodsMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamBeforeGoods" id="ExamBeforeGoodsResult">
+        <result property="id" column="id"/>
+        <result property="beforeId" column="before_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="goodsId" column="goods_id"/>
+    </resultMap>
+
+
+</mapper>

+ 56 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeMapper.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamBeforeMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamBefore" id="ExamBeforeResult">
+        <result property="beforeId" column="before_id"/>
+        <result property="code" column="code"/>
+        <result property="beforeName" column="before_name"/>
+        <result property="beforeStartTime" column="before_start_time"/>
+        <result property="beforeEndTime" column="before_end_time"/>
+        <result property="beforeStatus" column="before_status"/>
+        <result property="beforeUrl" column="before_url"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+
+    <resultMap type="com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo" id="ExamNumberGoodsVoResult">
+        <result property="id" column="id"/>
+        <result property="examNumberId" column="exam_number_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="code" column="code"/>
+        <result property="standPrice" column="stand_price"/>
+        <result property="goodsStatus" column="goods_status"/>
+    </resultMap>
+
+    <select id="listGoods" parameterType="com.zhongzheng.modules.exam.bo.ExamNumberQueryBo" resultMap="ExamNumberGoodsVoResult">
+        SELECT
+        goods_id,
+        goods_name,
+        CODE,
+        stand_price,
+        (case WHEN (SELECT COUNT(eb.before_id) FROM exam_before eb LEFT JOIN exam_before_goods ebg on eb.before_id =ebg.before_id where 1=1 and ebg.goods_id = g.goods_id and eb.status =1) >0 then 0 ELSE 1 end) as goods_status
+        FROM
+        goods g
+        WHERE
+        1 = 1
+        and g.status in(1)
+        <if test="businessId != null and businessId != ''">
+            and g.business_id = #{businessId}
+        </if>
+        <if test="goodsId != null and goodsId != ''">
+            and g.goods_id = #{goodsId}
+        </if>
+        <if test="projectId != null and projectId != ''">
+            and g.project_id = #{projectId}
+        </if>
+        <if test="goodsType != null and goodsType != ''">
+            and g.goods_type = #{goodsType}
+        </if>
+    </select>
+</mapper>

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamBeforeUrlMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamBeforeUrlMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamBeforeUrl" id="ExamBeforeUrlResult">
+        <result property="beforeUrlId" column="before_url_id"/>
+        <result property="urlStatus" column="url_status"/>
+        <result property="urlName" column="url_name"/>
+        <result property="url" column="url"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberGoodsMapper.xml

@@ -45,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             goods_name,
             CODE,
             stand_price,
-            (case WHEN (SELECT COUNT(en.exam_number_id) FROM exam_number en LEFT JOIN exam_number_goods eng on en.exam_number_id =eng.exam_number_id where 1=1 and eng.goods_id = g.goods_id  ) >0 then 0 ELSE 1 end) as goods_status
+            (case WHEN (SELECT COUNT(en.exam_number_id) FROM exam_number en LEFT JOIN exam_number_goods eng on en.exam_number_id =eng.exam_number_id where 1=1 and eng.goods_id = g.goods_id and en.status =1) >0 then 0 ELSE 1 end) as goods_status
         FROM
             goods g
         WHERE

+ 4 - 3
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberMapper.xml

@@ -37,9 +37,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             (SELECT cpt.project_name FROM course_project_type cpt where cpt.id = en.project_id) as project_name,
             (SELECT cb.business_name FROM course_business cb where cb.id = en.business_id) as business_name
         FROM
-            exam_number en
+            exam_number en where 1=1
         <if test="status != null and status.size()!=0 ">
-            WHERE en.status in
+            AND en.status in
             <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
                 #{item}
             </foreach>
@@ -48,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND en.exam_number_id = #{examNumberId}
         </if>
         <if test="goodsId != null and goodsId != ''">
-            AND  AND  (SELECT COUNT(eng.id) FROM exam_number_goods eng where eng.goods_id =#{goodsId}) > 0
+            AND  (SELECT COUNT(eng.id) FROM exam_number_goods eng where eng.goods_id =#{goodsId}) > 0
         </if>
+        order by en.create_time desc
     </select>
 </mapper>