diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java b/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java index 92c27ed..8a4751c 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java @@ -64,6 +64,11 @@ public class TeacherController { public SingleResponse getInfoById(@PathVariable(value = "id") Long id) { return teacherService.getInfoById(id); } + @ApiOperation("根据用户id查询教师详情") + @GetMapping("/getTeacherInfoByUserId/{userId}") + public SingleResponse getTeacherInfoByUserId(@PathVariable(value = "userId") Long userId) { + return SingleResponse.of(teacherService.getTeacherInfoByUserId(userId)); + } @ApiOperation("删除") @GetMapping("/remove/{id}") diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/resource/TeacherQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/resource/TeacherQueryExe.java index 76057e3..928a634 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/resource/TeacherQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/resource/TeacherQueryExe.java @@ -69,5 +69,11 @@ public class TeacherQueryExe { return SingleResponse.of(co); } + public TeacherCO getTeacherInfoByUserId(Long userId) { + TeacherDO teacherDO = teacherRepository.getTeacherInfoByUserId(userId); + TeacherCO co = new TeacherCO(); + BeanUtils.copyProperties(teacherDO, co); + return co; + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/resource/CurriculumUpdateExe.java b/web-app/src/main/java/com/zcloud/edu/command/resource/CurriculumUpdateExe.java index b4746b1..d81ace5 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/resource/CurriculumUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/resource/CurriculumUpdateExe.java @@ -2,6 +2,7 @@ package com.zcloud.edu.command.resource; import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.exception.BizException; +import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.command.convertor.resource.CurriculumChapterCoConvertor; import com.zcloud.edu.domain.enums.CatalogueLevelEnum; import com.zcloud.edu.domain.enums.CurriculumSellFlagEnum; @@ -123,6 +124,7 @@ public class CurriculumUpdateExe { } public void editState(CurriculumUpdateStateCmd cmd) { + List errorList = new ArrayList<>(); for (Long id : cmd.getId()) { CurriculumDO curriculumDO = curriculumRepository.getById(id); //企业端禁用:所属单位为股份的不能禁用 @@ -139,10 +141,17 @@ public class CurriculumUpdateExe { // 校验是否 被使用 Long count= classCurriculumRepository.getCountByCurriculumId(curriculumDO.getCurriculumId()); if(count>0){ - throw new BizException("该课程已绑定班级,不能编辑"); + errorList.add(curriculumDO.getCurriculumName()+"课程已绑定班级"); } } + //判断是否是本人创建的 + if(!AuthContext.getUserId().equals(curriculumDO.getCreateId())){ + errorList.add(curriculumDO.getCurriculumName()+"课程不是本人创建的"); + } + } + if(CollUtil.isNotEmpty(errorList)){ + throw new BizException(errorList+"不能修改状态"); } curriculumRepository.updateState(cmd.getId(), cmd.getSellFlag()); diff --git a/web-app/src/main/java/com/zcloud/edu/command/resource/ExamPaperRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/resource/ExamPaperRemoveExe.java index f64c141..a16dd41 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/resource/ExamPaperRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/resource/ExamPaperRemoveExe.java @@ -2,6 +2,7 @@ package com.zcloud.edu.command.resource; import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.exception.BizException; +import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.domain.gateway.resource.ExamPaperGateway; import com.zcloud.edu.dto.resource.ExamPaperRemoveCmd; import com.zcloud.edu.persistence.dataobject.ExamPaperDO; @@ -13,6 +14,7 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -73,6 +75,7 @@ public class ExamPaperRemoveExe { //获取试卷idlist List examPaperIdList = examPaperDOList.stream().map(ExamPaperDO::getExamPaperId).collect(Collectors.toList()); //判断是否被使用 + List errorList = new ArrayList<>(); for (ExamPaperDO examPaperDO : examPaperDOList) { Boolean b = corpInfoRepository.checkSupper(examPaperDO.getCorpinfoId()); if (corpInfoRepository.isSupper() && !b) { @@ -86,9 +89,14 @@ public class ExamPaperRemoveExe { // 是否被使用 Long count= classExamPaperRepository.getCountByExamPaperId(examPaperDO.getExamPaperId()); if(count>0){ - throw new BizException("该试卷已绑定班级,不能删除"); + errorList.add(examPaperDO.getExamName()+"已绑定班级"); } - + if(AuthContext.getUserId().equals(examPaperDO.getCreateId())){ + errorList.add(examPaperDO.getExamName()+"试卷不是本人创建的"); + } + } + if(CollUtil.isNotEmpty(errorList)){ + throw new BizException(errorList+"不能删除"); } diff --git a/web-app/src/main/java/com/zcloud/edu/command/resource/TeacherAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/resource/TeacherAddExe.java index 771d5b5..133ca45 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/resource/TeacherAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/resource/TeacherAddExe.java @@ -13,7 +13,9 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** @@ -31,7 +33,47 @@ public class TeacherAddExe { @Transactional(rollbackFor = Exception.class) public boolean execute(TeacherAddCmd cmd) { TeacherE teacherE = new TeacherE(); - List teacherEList = teacherE.convertFromUserList(BeanUtil.copyToList(cmd.getUserList(), UserAddE.class)); + List userAddEList = BeanUtil.copyToList(cmd.getUserList(), UserAddE.class); + // 按 Id 去重,保留第一次出现的元素 + // 按 userId 去重,保留第一次出现的元素 + userAddEList = userAddEList.stream() + .collect(Collectors.toMap( + UserAddE::getId, // 使用正确的字段 + Function.identity(), + (existing, replacement) -> existing + )) + .values() + .stream() + .collect(Collectors.toList()); + + // 判断用户是否已经是教师 + List userIdList = userAddEList.stream() + .map(UserAddE::getId) // 使用正确的字段 + .collect(Collectors.toList()); + + List existTeacherList = teacherRepository.getListByUserIdList(userIdList); + + if (CollUtil.isNotEmpty(existTeacherList)) { + // 构建用户映射以快速查找用户名 + Map userMap = userAddEList.stream() + .collect(Collectors.toMap( + UserAddE::getId, + Function.identity() + )); + + // 获取重复用户的用户名 + List duplicateUserNames = existTeacherList.stream() + .map(teacher -> Optional.ofNullable(userMap.get(teacher.getUserId())) + .map(UserAddE::getUserName) + .orElse(null)) + .filter(Objects::nonNull) + .distinct() // 确保用户名不重复 + .collect(Collectors.toList()); + + String duplicateUsers = String.join("、", duplicateUserNames); + throw new BizException("用户 [" + duplicateUsers + "] 已经是教师"); + } + List teacherEList = teacherE.convertFromUserList(userAddEList); boolean res = false; try { diff --git a/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareAddExe.java index 361a275..c1ef279 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareAddExe.java @@ -1,6 +1,7 @@ package com.zcloud.edu.command.resource; import com.zcloud.edu.domain.enums.CommonFlagEnum; +import com.zcloud.edu.domain.enums.VideoCoursewareState; import com.zcloud.edu.domain.gateway.resource.VideoCoursewareGateway; import com.zcloud.edu.domain.model.resource.VideoCoursewareE; import com.zcloud.edu.dto.resource.VideoCoursewareAddCmd; @@ -31,7 +32,7 @@ public class VideoCoursewareAddExe { boolean res = false; try { - videoCoursewareE.setState(CommonFlagEnum.NO.getCode()); + videoCoursewareE.setState(VideoCoursewareState.UNENABLED.getCode()); res = videoCoursewareGateway.add(videoCoursewareE); } catch (Exception e) { throw new RuntimeException(e); diff --git a/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareUpdateExe.java b/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareUpdateExe.java index 7af2e33..f70c08d 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/resource/VideoCoursewareUpdateExe.java @@ -58,13 +58,13 @@ public class VideoCoursewareUpdateExe { } @Transactional(rollbackFor = Exception.class) - public void execute(VideoCoursewareUpdateStateCmd cmd) { + public void editState(VideoCoursewareUpdateStateCmd cmd) { VideoCoursewareDO videoCoursewareDOInfo = videoCoursewareRepository.getById(cmd.getId()); if(videoCoursewareDOInfo==null){ throw new BizException("课件信息不存在"); } - if(VideoCoursewareState.UNENABLED.getCode().equals(cmd.getState())){ + if(VideoCoursewareState.ENABLED.getCode().equals(cmd.getState())){ //如果是启用,判断习题数量小于5 Long count = questionRepository.getCountByVideoCourseware(videoCoursewareDOInfo.getVideoCoursewareId()); if(count<5){ diff --git a/web-app/src/main/java/com/zcloud/edu/service/resource/TeacherServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/resource/TeacherServiceImpl.java index 5add7ff..8605d08 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/resource/TeacherServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/resource/TeacherServiceImpl.java @@ -68,5 +68,10 @@ public class TeacherServiceImpl implements TeacherServiceI { public void removeBatch(Long[] ids) { teacherRemoveExe.execute(ids); } + + @Override + public TeacherCO getTeacherInfoByUserId(Long userId) { + return teacherQueryExe.getTeacherInfoByUserId(userId); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/resource/VideoCoursewareServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/resource/VideoCoursewareServiceImpl.java index 0f8e931..379f52c 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/resource/VideoCoursewareServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/resource/VideoCoursewareServiceImpl.java @@ -56,7 +56,7 @@ public class VideoCoursewareServiceImpl implements VideoCoursewareServiceI { @Override public void editState(VideoCoursewareUpdateStateCmd cmd) { - videoCoursewareUpdateExe.execute(cmd); + videoCoursewareUpdateExe.editState(cmd); } @Override diff --git a/web-client/src/main/java/com/zcloud/edu/api/resource/TeacherServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/resource/TeacherServiceI.java index e111e0c..baf36b3 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/resource/TeacherServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/resource/TeacherServiceI.java @@ -29,5 +29,7 @@ public interface TeacherServiceI { void remove(Long id); void removeBatch(Long[] ids); + + TeacherCO getTeacherInfoByUserId(Long userId); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/resource/ExamPaperCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/resource/ExamPaperCO.java index 4f3e15d..cd76340 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/resource/ExamPaperCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/resource/ExamPaperCO.java @@ -1,5 +1,6 @@ package com.zcloud.edu.dto.clientobject.resource; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -51,6 +52,7 @@ public class ExamPaperCO { //创建时间 @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperAddCmd.java index d3bedbe..085d8e0 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperAddCmd.java @@ -39,8 +39,8 @@ public class ExamPaperAddCmd { private Integer sellFlag; @ApiModelProperty(value = "考试时长(分钟)", name = "examTime", required = true) - @NotEmpty(message = "考试时长(分钟)不能为空") - private String examTime; + @NotNull(message = "考试时长(分钟)不能为空") + private Integer examTime; @ApiModelProperty(value = "试卷类型 1-自建试卷 2-班级中自动生成试卷", name = "type", required = true) @NotNull(message = "试卷类型 1-自建试卷 2-班级中自动生成试卷不能为空") diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperUpdateCmd.java index 2ee8787..d4d30bd 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/ExamPaperUpdateCmd.java @@ -41,8 +41,8 @@ public class ExamPaperUpdateCmd extends Command { @NotNull(message = "是否上架(0否 1是)不能为空") private Integer sellFlag; @ApiModelProperty(value = "考试时长(分钟)", name = "examTime", required = true) - @NotEmpty(message = "考试时长(分钟)不能为空") - private String examTime; + @NotNull(message = "考试时长(分钟)不能为空") + private Integer examTime; @ApiModelProperty(value = "试卷类型 1-自建试卷 2-班级中自动生成试卷", name = "type", required = true) @NotNull(message = "试卷类型 1-自建试卷 2-班级中自动生成试卷不能为空") private Integer type; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionListQry.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionListQry.java index d263071..6a38cb9 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionListQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionListQry.java @@ -26,5 +26,10 @@ public class QuestionListQry extends PageQuery { */ @ApiModelProperty(value = "企业id", name = "eqCorpinfoId", required = true) private String eqCorpinfoId; + @ApiModelProperty(value = "试题类型(1单选题、2多选题、3判断题)") + private Integer eqQuestionType; + //题干 + @ApiModelProperty(value = "题干") + private String likeQuestionDry; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionPageQry.java index 5bebb40..326e85c 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/QuestionPageQry.java @@ -30,5 +30,12 @@ public class QuestionPageQry extends PageQuery { @ApiModelProperty(value = "试卷id", name = "eqExamPaperId", required = true) private String eqExamPaperId; + + @ApiModelProperty(value = "试题类型(1单选题、2多选题、3判断题)") + private Integer eqQuestionType; + //题干 + @ApiModelProperty(value = "题干") + private String likeQuestionDry; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherListQry.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherListQry.java index 426005b..6e50a8c 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherListQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherListQry.java @@ -1,5 +1,6 @@ package com.zcloud.edu.dto.resource; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,6 +24,8 @@ public class TeacherListQry { * - `ne`: 不等比较查询,对应SQL的!=操作符 */ private Long corpinfoId; + @ApiModelProperty(value = "教师状态, 启用传1, 禁用传0", name = "state", required = true) + private Long state; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/UserAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/UserAddCmd.java index 2b01ae0..1847761 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/UserAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/UserAddCmd.java @@ -16,6 +16,8 @@ public class UserAddCmd extends ClientObject { @ApiModelProperty(value = "GBS用户id") private Long id; + @ApiModelProperty(value = "用户名称") + private String userName; //企业id @ApiModelProperty(value = "企业id") diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/enums/VideoCoursewareState.java b/web-domain/src/main/java/com/zcloud/edu/domain/enums/VideoCoursewareState.java index f985cf3..be6d5b9 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/enums/VideoCoursewareState.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/enums/VideoCoursewareState.java @@ -7,7 +7,7 @@ import lombok.Getter; */ @Getter public enum VideoCoursewareState { - UNENABLED(0,"未启用"), + UNENABLED(0,"禁用"), ENABLED(1,"启用"), ; diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/UserAddE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/UserAddE.java index c89712a..49af3db 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/UserAddE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/UserAddE.java @@ -17,7 +17,8 @@ public class UserAddE extends ClientObject { //GBS用户id @ApiModelProperty(value = "GBS用户id") private Long id; - + @ApiModelProperty(value = "用户名称") + private String userName; //企业id @ApiModelProperty(value = "企业id") private Long corpinfoId; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/resource/VideoCoursewareGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/resource/VideoCoursewareGatewayImpl.java index 0ad23c9..8ae00e2 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/resource/VideoCoursewareGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/resource/VideoCoursewareGatewayImpl.java @@ -33,7 +33,6 @@ public class VideoCoursewareGatewayImpl implements VideoCoursewareGateway { if(videoCoursewareE.getCorpinfoId() == null){ videoCoursewareE.setCorpinfoId(AuthContext.getTenantId()); } - videoCoursewareE.setState(CommonFlagEnum.YES.getCode()); VideoCoursewareDO d = new VideoCoursewareDO(); BeanUtils.copyProperties(videoCoursewareE, d); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java index c02b9e8..803ac16 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java @@ -52,5 +52,19 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl getInfoById(Long id) { return SingleResponse.of(teacherMapper.getInfoById(id)); } + + @Override + public TeacherDO getTeacherInfoByUserId(Long userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + return getOne(queryWrapper); + } + + @Override + public List getListByUserIdList(List userIdList) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("user_id", userIdList); + return list(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/TeacherRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/TeacherRepository.java index 6580b82..97270a4 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/TeacherRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/TeacherRepository.java @@ -23,5 +23,9 @@ public interface TeacherRepository extends BaseRepository { List listByIds(List ids); SingleResponse getInfoById(Long id); + + TeacherDO getTeacherInfoByUserId(Long userId); + + List getListByUserIdList(List userIdList); } diff --git a/web-infrastructure/src/main/resources/mapper/TeacherMapper.xml b/web-infrastructure/src/main/resources/mapper/TeacherMapper.xml index 9d23f00..0bb5a12 100644 --- a/web-infrastructure/src/main/resources/mapper/TeacherMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/TeacherMapper.xml @@ -43,6 +43,9 @@ AND a.corpinfo_id = #{params.corpinfoId} + + AND a.state = #{params.state} + GROUP BY a.teacher_id, a.id, a.user_id, a.corpinfo_id ORDER BY a.create_time DESC diff --git a/web-infrastructure/src/main/resources/mapper/VideoCoursewareMapper.xml b/web-infrastructure/src/main/resources/mapper/VideoCoursewareMapper.xml index 9689a49..ff6bc89 100644 --- a/web-infrastructure/src/main/resources/mapper/VideoCoursewareMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/VideoCoursewareMapper.xml @@ -46,7 +46,7 @@ AND a.corpinfo_id = #{params.corpinfoId} - AND a.courseware_name = #{params.coursewareName} + AND a.courseware_name like concat('%',#{params.coursewareName},'%') AND a.training_type_id = #{params.trainingTypeId}