Преглед на файлове

submit:模考活动改造

yangdamao преди 3 години
родител
ревизия
dff4938d96
променени са 17 файла, в които са добавени 285 реда и са изтрити 38 реда
  1. 0 31
      zhongzheng-api/src/main/java/com/zhongzheng/controller/cmmon/CommonController.java
  2. 81 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/exam/ExamActivityController.java
  3. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityAddBo.java
  4. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityApplyBo.java
  5. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityUpdateBo.java
  6. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamActivity.java
  7. 4 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamActivityUser.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamActivityService.java
  9. 68 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamActivityServiceImpl.java
  10. 31 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamActivityMajorVo.java
  11. 35 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamActivitySubjectVo.java
  12. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamActivityVo.java
  13. 16 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  14. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecTemplateServiceImpl.java
  15. 5 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java
  16. 2 2
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamActivityMapper.xml
  17. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

+ 0 - 31
zhongzheng-api/src/main/java/com/zhongzheng/controller/cmmon/CommonController.java

@@ -59,8 +59,6 @@ public class CommonController extends BaseController {
     @Autowired
     private RedisCache redisCache;
 
-    private final IExamActivityService iExamActivityService;
-
     private final ICourseTopicService iCourseTopicService;
 
     private final IGoodsSpecTemplateService iGoodsSpecTemplateService;
@@ -134,36 +132,7 @@ public class CommonController extends BaseController {
         return AjaxResult.success(Printer.num);
     }
 
-    /**
-     * 获取活动信息
-     */
-    @ApiOperation("获取活动信息")
-    @GetMapping("/detail/{activityId}")
-    public AjaxResult<ExamActivityVo> getDetail(@PathVariable("activityId" ) Long activityId) {
-        ExamActivityVo vo = iExamActivityService.getDetail(activityId);
-        return AjaxResult.success(vo);
-    }
-
-    /**
-     * 考试活动报名
-     */
-    @ApiOperation("考试活动报名")
-    @PostMapping("/launch")
-    public AjaxResult<ExamActivityApplyVo> applyActivity(@RequestBody ExamActivityApplyBo bo) {
-        ExamActivityApplyVo vo = iExamActivityService.applyActivity(bo);
-        return AjaxResult.success(vo);
-    }
 
-    /**
-     * 获取考试活动商品
-     */
-    @ApiOperation("获取考试活动商品")
-    @GetMapping("/activity/goodsList/{activityId}")
-    public TableDataInfo<GoodsVo> getActivityGoodsList(@PathVariable("activityId") Long activityId) {
-        startPage();
-        List<GoodsVo> voList = iExamActivityService.getActivityGoodsList(activityId);
-        return getDataTable(voList);
-    }
 
     @ApiOperation("小程序配置")
     @GetMapping("/config")

+ 81 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/exam/ExamActivityController.java

@@ -0,0 +1,81 @@
+package com.zhongzheng.controller.exam;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.exam.bo.ExamActivityApplyBo;
+import com.zhongzheng.modules.exam.bo.ExamActivityApplyVo;
+import com.zhongzheng.modules.exam.service.IExamActivityService;
+import com.zhongzheng.modules.exam.vo.ExamActivityVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 考试安排Controller
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Api(value = "模考活动", tags = {"模考活动"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/apply/activity")
+public class ExamActivityController extends BaseController {
+
+    private final IExamActivityService iExamActivityService;
+
+    private final WxTokenService wxTokenService;
+
+    /**
+     * 获取活动信息
+     */
+    @ApiOperation("获取活动信息")
+    @GetMapping("/detail/{activityId}")
+    public AjaxResult<ExamActivityVo> getDetail(@PathVariable("activityId" ) Long activityId) {
+        ExamActivityVo vo = iExamActivityService.getDetail(activityId);
+        return AjaxResult.success(vo);
+    }
+
+    /**
+     * 考试活动报名
+     */
+    @ApiOperation("考试活动报名")
+    @PostMapping("/launch")
+    public AjaxResult<ExamActivityApplyVo> applyActivity(@RequestBody ExamActivityApplyBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        ExamActivityApplyVo vo = iExamActivityService.applyActivity(bo);
+        return AjaxResult.success(vo);
+    }
+
+    /**
+     * 获取考试活动商品
+     */
+    @ApiOperation("获取考试活动商品")
+    @GetMapping("/activity/goodsList/{activityId}")
+    public TableDataInfo<GoodsVo> getActivityGoodsList(@PathVariable("activityId") Long activityId) {
+        startPage();
+        List<GoodsVo> voList = iExamActivityService.getActivityGoodsList(activityId);
+        return getDataTable(voList);
+    }
+
+    /**
+     * 校验用户是否已报名
+     */
+    @ApiOperation("校验用户是否已报名")
+    @GetMapping("/check/{activityId}")
+    public AjaxResult<Boolean> checkUserActivityStatus(@PathVariable("activityId") Long activityId) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        return AjaxResult.success(iExamActivityService.checkUserActivityStatus(loginUser.getUser().getUserId(),activityId));
+
+    }
+}

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

@@ -25,7 +25,7 @@ public class ExamActivityAddBo implements Serializable {
     private String majors;
 
     @ApiModelProperty("关联模考ID")
-    private Integer mockApplyId;
+    private Long mockApplyId;
 
     /** 活动开始时间 */
     @ApiModelProperty("活动开始时间")

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityApplyBo.java

@@ -20,6 +20,9 @@ public class ExamActivityApplyBo implements Serializable {
     @ApiModelProperty("活动ID")
     private Long activityId;
 
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
     /** 用户名称 */
     @ApiModelProperty("用户名称")
     private String userName;
@@ -40,6 +43,12 @@ public class ExamActivityApplyBo implements Serializable {
     @ApiModelProperty("用户手机号码")
     private String userPhone;
 
+    @ApiModelProperty("专业ID")
+    private Long mockMajorId;
+
+    @ApiModelProperty("科目IDs")
+    private String mockSubjectIds;
+
     /** 报考科目(多个用逗号隔开) */
     @ApiModelProperty("报考科目(多个用逗号隔开)")
     private String userMajors;

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamActivityUpdateBo.java

@@ -24,6 +24,9 @@ public class ExamActivityUpdateBo implements Serializable {
     @ApiModelProperty("活动名称")
     private String name;
 
+    @ApiModelProperty("关联模考ID")
+    private Long mockApplyId;
+
     /** 科目(多个用逗号隔开) */
     @ApiModelProperty("科目(多个用逗号隔开)")
     private String majors;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamActivity.java

@@ -37,6 +37,8 @@ private static final long serialVersionUID=1L;
     private Long endTime;
     /** 创建人ID */
     private Long creatorId;
+    /** 关联模考ID */
+    private Long mockApplyId;
     /** 1有效 0无效 */
     private Integer status;
     /** 创建时间 */

+ 4 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamActivityUser.java

@@ -30,6 +30,8 @@ private static final long serialVersionUID=1L;
     private Long id;
     /** 活动ID */
     private Long activityId;
+    /** 活动ID */
+    private Long UserId;
     /** 用户名称 */
     private String userName;
     /** 用户性别:1男,2女 */
@@ -41,9 +43,9 @@ private static final long serialVersionUID=1L;
     /** 用户手机号码 */
     private String userPhone;
     /** 模考ID */
-    private String mockApplyId;
+    private Long mockApplyId;
     /** 模考专业ID */
-    private String mockMajorId;
+    private Long mockMajorId;
     /** 模考科目IDS */
     private String mockSubjectIds;
     /** 1有效 0无效 */

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamActivityService.java

@@ -86,4 +86,6 @@ public interface IExamActivityService extends IService<ExamActivity> {
      * @return java.util.List<com.zhongzheng.modules.goods.vo.GoodsVo>
      */
     List<GoodsVo> getActivityGoodsList(Long activityId);
+
+    Boolean checkUserActivityStatus(Long userId,Long activityId);
 }

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamActivityServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.modules.course.domain.CourseSubject;
@@ -19,10 +20,18 @@ import com.zhongzheng.modules.exam.mapper.ExamActivityMapper;
 import com.zhongzheng.modules.exam.service.IExamActivityGoodsService;
 import com.zhongzheng.modules.exam.service.IExamActivityService;
 import com.zhongzheng.modules.exam.service.IExamActivityUserService;
+import com.zhongzheng.modules.exam.vo.ExamActivityMajorVo;
+import com.zhongzheng.modules.exam.vo.ExamActivitySubjectVo;
 import com.zhongzheng.modules.exam.vo.ExamActivityVo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.mock.domain.MockMajor;
+import com.zhongzheng.modules.mock.domain.MockMajorSubject;
+import com.zhongzheng.modules.mock.service.IMockMajorService;
+import com.zhongzheng.modules.mock.service.IMockMajorSubjectService;
+import com.zhongzheng.modules.user.domain.User;
+import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.wx.service.IWxLoginService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +64,12 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
     private IMajorService majorService;
     @Autowired
     private ICourseSubjectService courseSubjectService;
+    @Autowired
+    private IMockMajorService mockMajorService;
+    @Autowired
+    private IMockMajorSubjectService mockMajorSubjectService;
+    @Autowired
+    private IUserService userService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -84,8 +99,17 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ExamActivityApplyVo applyActivity(ExamActivityApplyBo bo) {
+        ExamActivity entity = getById(bo.getActivityId());
+        if (ObjectUtils.isNull(entity)){
+            throw new CustomException("活动信息获取失败");
+        }
+
         ExamActivityUser examActivityUser = new ExamActivityUser();
         BeanUtils.copyProperties(bo, examActivityUser);
+        User user = userService.getById(bo.getUserId());
+        examActivityUser.setMockApplyId(entity.getMockApplyId());
+        examActivityUser.setUserIdCard(user.getIdCard());
+        examActivityUser.setUserPhone(user.getTelphone());
         examActivityUser.setCreateTime(DateUtils.getNowTime());
         examActivityUser.setUpdateTime(DateUtils.getNowTime());
         iExamActivityUserService.save(examActivityUser);
@@ -100,6 +124,38 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
         ExamActivity activity = getById(activityId);
         ExamActivityVo vo = new ExamActivityVo();
         BeanUtils.copyProperties(activity,vo);
+        //获取活动模考专业和科目信息
+        List<MockMajor> list = mockMajorService
+                .list(new LambdaQueryWrapper<MockMajor>()
+                .eq(MockMajor::getApplyId, activity.getMockApplyId()));
+        if (CollectionUtils.isNotEmpty(list)){
+            List<ExamActivityMajorVo> majorVos = list.stream().map(item -> {
+                ExamActivityMajorVo majorVo = new ExamActivityMajorVo();
+                Major entity = majorService.getById(item.getMajorId());
+                majorVo.setMajorId(item.getMajorId());
+                majorVo.setMockMajorId(item.getMockMajorId());
+                majorVo.setMajorName(entity.getCategoryName());
+                return majorVo;
+            }).collect(Collectors.toList());
+            vo.setMajorList(majorVos);
+            //科目
+            List<Long> majorIds = list.stream().map(MockMajor::getMockMajorId).collect(Collectors.toList());
+            List<MockMajorSubject> majorSubjects = mockMajorSubjectService
+                    .list(new LambdaQueryWrapper<MockMajorSubject>()
+                    .in(MockMajorSubject::getMockMajorId, majorIds));
+            if (CollectionUtils.isNotEmpty(majorSubjects)){
+                List<ExamActivitySubjectVo> subjectVoList = majorSubjects.stream().map(item -> {
+                    ExamActivitySubjectVo subjectVo = new ExamActivitySubjectVo();
+                    CourseSubject subject = courseSubjectService.getById(item.getSubjectId());
+                    subjectVo.setMockMajorSubjectId(item.getMockMajorSubjectId());
+                    subjectVo.setMockMajorId(item.getMockMajorId());
+                    subjectVo.setSubjectId(item.getSubjectId());
+                    subjectVo.setSubjectName(subject.getSubjectName());
+                    return subjectVo;
+                }).collect(Collectors.toList());
+                vo.setSubjectList(subjectVoList);
+            }
+        }
         return vo;
     }
 
@@ -146,4 +202,16 @@ public class ExamActivityServiceImpl extends ServiceImpl<ExamActivityMapper, Exa
         }).collect(Collectors.toList());
         return goodsVoList;
     }
+
+    @Override
+    public Boolean checkUserActivityStatus(Long userId,Long activityId) {
+        ExamActivity activity = getById(activityId);
+        if (ObjectUtils.isNull(activity)){
+            throw new CustomException("活动信息获取失败");
+        }
+        int count = iExamActivityUserService.count(new LambdaQueryWrapper<ExamActivityUser>()
+                .eq(ExamActivityUser::getActivityId, activityId)
+                .eq(ExamActivityUser::getUserId, userId));
+        return count > 0;
+    }
 }

+ 31 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamActivityMajorVo.java

@@ -0,0 +1,31 @@
+package com.zhongzheng.modules.exam.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 考试活动对象 exam_activity
+ *
+ * @author yangdamao
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试活动专业对象")
+public class ExamActivityMajorVo implements Serializable {
+
+    /**模考专业ID */
+    @ApiModelProperty("模考专业ID")
+    private Long mockMajorId;
+
+    /**专业ID */
+    @ApiModelProperty("专业ID")
+    private Long majorId;
+
+    /**专业名称 */
+    @ApiModelProperty("专业名称")
+    private String majorName;
+
+}

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

@@ -0,0 +1,35 @@
+package com.zhongzheng.modules.exam.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 考试活动对象 exam_activity
+ *
+ * @author yangdamao
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("考试活动科目对象")
+public class ExamActivitySubjectVo implements Serializable {
+
+    /**模考专业科目ID */
+    @ApiModelProperty("模考专业科目ID")
+    private Long mockMajorSubjectId;
+
+    /**模考专业ID */
+    @ApiModelProperty("模考专业ID")
+    private Long mockMajorId;
+
+    /**科目ID */
+    @ApiModelProperty("科目ID")
+    private Long subjectId;
+
+    /**科目名称 */
+    @ApiModelProperty("科目名称")
+    private String subjectName;
+
+}

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamActivityVo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 考试活动对象 exam_activity
@@ -57,4 +58,10 @@ public class ExamActivityVo implements Serializable {
     @ApiModelProperty("1有效 0无效")
     private Integer status;
 
+    @ApiModelProperty("专业集合")
+    private List<ExamActivityMajorVo> majorList;
+
+    @ApiModelProperty("科目集合")
+    private List<ExamActivitySubjectVo> subjectList;
+
 }

+ 16 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.tencentcloudapi.cme.v20191029.models.VideoEditTemplateMaterial;
 import com.zhongzheng.common.annotation.DataScope;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
@@ -707,7 +708,21 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         if (CollectionUtils.isEmpty(templates)){
             return new ArrayList<>();
         }
-        return templates.stream().map(x -> BeanUtil.toBean(x,GoodsSpecTemplateVo.class)).collect(Collectors.toList());
+
+        List<GoodsSpecTemplateVo> collect = templates.stream().map(x -> {
+            GoodsSpecTemplateVo vo = BeanUtil.toBean(x, GoodsSpecTemplateVo.class);
+            CourseEducationType educationType = iCourseEducationTypeService.getById(x.getEducationTypeId());
+            if (ObjectUtils.isNotNull(educationType)) {
+                vo.setEducationName(educationType.getEducationName());
+            }
+            CourseBusiness business = iCourseBusinessService.getById(x.getBusinessId());
+            if (ObjectUtils.isNotNull(business)) {
+                vo.setBusinessName(business.getAliasName());
+            }
+            return vo;
+        }).collect(Collectors.toList());
+
+        return collect;
     }
 
     @Override

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecTemplateServiceImpl.java

@@ -56,6 +56,9 @@ public class GoodsSpecTemplateServiceImpl extends ServiceImpl<GoodsSpecTemplateM
     @Override
     public GoodsSpecTemplateVo queryById(Long specTemplateId){
         GoodsSpecTemplate db = this.baseMapper.selectById(specTemplateId);
+        if (ObjectUtils.isNull(db)){
+            return null;
+        }
         GoodsSpecTemplateVo vo = BeanUtil.toBean(db, GoodsSpecTemplateVo.class);
         List<GoodsSpec> specList = goodsSpecService.list(new LambdaQueryWrapper<GoodsSpec>()
                 .eq(GoodsSpec::getSpecTemplateId, specTemplateId)

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java

@@ -36,7 +36,8 @@ public class MockApplyQueryBo extends BaseEntity {
 	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
 	private String isAsc;
 
-
+	@ApiModelProperty("关键字")
+	private String searchKey;
 	/** 模考封面 */
 	@ApiModelProperty("模考封面")
 	private String applyUrl;
@@ -99,4 +100,7 @@ public class MockApplyQueryBo extends BaseEntity {
 	/** 模考通知状态 0未通知 1已通知 */
 	@ApiModelProperty("模考通知状态 0未通知 1已通知")
 	private Integer mockRemind;
+
+	@ApiModelProperty("是否活动模考 0否 1是")
+	private Integer mockActivity;
 }

+ 2 - 2
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamActivityMapper.xml

@@ -12,8 +12,8 @@
                ma.apply_id as mockApplyId,
                ma.code as mockApplyCode
         FROM exam_activity ea
-        LEFT JOIN mock_apply ma ON ea.mock_apply_id = ma.apply_id
-        WHERE ea.`status` = 1 AND ma.`status` = 1
+        LEFT JOIN mock_apply ma ON ea.mock_apply_id = ma.apply_id AND ma.`status` = 1
+        WHERE ea.`status` = 1
         <if test="name != null and name != ''">
             AND (ea.name like concat('%', #{name}, '%'))
         </if>

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -105,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 cb.business_name,
                 cpt.project_name
         FROM mock_apply ma
+                LEFT JOIN mock_major mj ON ma.apply_id = mj.apply_id
                 LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id
                 LEFT JOIN course_business cb ON ma.business_id = cb.id
                 LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
@@ -116,6 +117,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 #{item}
             </foreach>
         </if>
+        <if test="mockActivity != null and mockActivity != ''">
+            and ma.mock_activity = #{mockActivity}
+        </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            and ma.education_type_id = #{educationTypeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            and ma.business_id = #{businessId}
+        </if>
+        <if test="majorId != null and majorId != ''">
+            and mj.major_id = #{majorId}
+        </if>
+        <if test="searchKey != null and searchKey != ''">
+            and (ma.apply_name LIKE CONCAT('%',#{searchKey},'%') OR ma.code LIKE CONCAT('%',#{searchKey},'%'))
+        </if>
         ORDER BY ma.create_time desc
     </select>
     <select id="queryApplyList" parameterType="com.zhongzheng.modules.mock.bo.MockApplyQueryBo" resultMap="MockApplyVoResult">