dev:视频课件维护代码开发

main
SondonYong 2025-11-28 09:05:56 +08:00
parent 123df8e6f4
commit 35edc5633c
4 changed files with 52 additions and 25 deletions

View File

@ -29,7 +29,7 @@ public class TeacherCertificateGatewayImpl implements TeacherCertificateGateway
public Boolean add(TeacherCertificateE teacherCertificateE) {
TeacherCertificateDO d = new TeacherCertificateDO();
BeanUtils.copyProperties(teacherCertificateE, d);
if(StringUtils.isNotEmpty(d.getTeacherCertificateId())){
if(StringUtils.isEmpty(d.getTeacherCertificateId())){
d.setTeacherCertificateId(UuidUtil.get32UUID());
}
if(d.getCorpinfoId() == null){

View File

@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* web-infrastructure
@ -18,7 +19,7 @@ import java.util.List;
@Mapper
public interface TeacherMapper extends BaseMapper<TeacherDO> {
IPage<TeacherDO> getTeacherPage(IPage<TeacherDO> page, @Param("ew") QueryWrapper<TeacherDO> queryWrapper);
IPage<TeacherDO> getTeacherPage(IPage<TeacherDO> page, Map<String, Object> params);
List<TeacherDO> getTeacherList(@Param("ew") QueryWrapper<TeacherDO> queryWrapper);

View File

@ -40,21 +40,25 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl<TeacherMapper, Tea
}
}
IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params);
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "a.");
queryWrapper.eq("a.delete_enum", "FALSE");
if(StringUtils.isNotEmpty((String) params.get("qualificationType"))){
queryWrapper.in("b.qualification_type", params.get("qualificationType").toString());
}
queryWrapper.groupBy("a.teacher_id")
.groupBy("a.id")
.groupBy("a.user_id")
.groupBy("a.corpinfo_id")
.groupBy("a.teacher_name")
.groupBy("a.state")
.groupBy("a.create_time");
queryWrapper.orderByDesc("a.create_time");
IPage<TeacherDO> result = teacherMapper.getTeacherPage(iPage, queryWrapper);
// QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
// queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "a.");
// queryWrapper.eq("a.delete_enum", "FALSE");
//// if(StringUtils.isNotEmpty((String) params.get("qualificationType"))){
//// queryWrapper.in("b.qualification_type", params.get("qualificationType").toString());
//// }
// String qualificationType = "";
// if(params.get("qualificationType") != null){
// qualificationType = params.get("qualificationType").toString();
// }
// queryWrapper.groupBy("a.teacher_id")
// .groupBy("a.id")
// .groupBy("a.user_id")
// .groupBy("a.corpinfo_id")
// .groupBy("a.teacher_name")
// .groupBy("a.state")
// .groupBy("a.create_time");
// queryWrapper.orderByDesc("a.create_time");
IPage<TeacherDO> result = teacherMapper.getTeacherPage(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}

View File

@ -5,14 +5,35 @@
<mapper namespace="com.zcloud.edu.persistence.mapper.TeacherMapper">
<select id="getTeacherPage" resultType="com.zcloud.edu.persistence.dataobject.TeacherDO">
select
a.id,a.teacher_id,a.user_id,a.corpinfo_id,a.teacher_name,a.`state`,a.create_time,
c.corp_name as corpinfoName,
GROUP_CONCAT(b.qualification_type_name SEPARATOR ',') AS qualificationTypeNames
from teacher a
left join teacher_certificate b on a.teacher_id = b.teacher_id and b.delete_enum = 'FALSE'
left join corp_info c on a.corpinfo_id = c.id
${ew.customSqlSegment}
SELECT a.id,
a.teacher_id,
a.user_id,
a.corpinfo_id,
a.teacher_name,
a.`state`,
a.create_time,
c.corp_name AS corpinfoName,
GROUP_CONCAT(b.qualification_type_name SEPARATOR ',') AS qualificationTypeNames
FROM teacher a
LEFT JOIN teacher_certificate b ON a.teacher_id = b.teacher_id AND b.delete_enum = 'FALSE'
LEFT JOIN corp_info c ON a.corpinfo_id = c.id
WHERE a.delete_enum = 'FALSE'
<if test="params.eqCorpinfoId != null">
AND a.corpinfo_id = #{params.eqCorpinfoId}
</if>
AND EXISTS ( -- 关键:确保教师有符合条件的证书
SELECT 1 FROM teacher_certificate b2
WHERE b2.teacher_id = a.teacher_id
AND b2.delete_enum = 'FALSE'
<if test="params.qualificationType != null and params.qualificationType != ''">
AND b2.qualification_type IN
<foreach collection="params.qualificationType.split(',')" item="type" open="(" separator="," close=")">
#{type}
</foreach>
</if>
)
GROUP BY a.teacher_id, a.id, a.user_id, a.corpinfo_id, a.teacher_name, a.state, a.create_time
ORDER BY a.create_time DESC
</select>
<select id="getTeacherList" resultType="com.zcloud.edu.persistence.dataobject.TeacherDO">
@ -24,6 +45,7 @@
left join teacher_certificate b on a.teacher_id = b.teacher_id and b.delete_enum = 'FALSE'
left join corp_info c on a.corpinfo_id = c.id
${ew.customSqlSegment}
</select>
</mapper>