no message
Showing
3 changed files
with
65 additions
and
3 deletions
| 1 | package com.lego.core.mapper; | 1 | package com.lego.core.mapper; |
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 4 | import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; | ||
| 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
| 3 | import com.lego.common.core.mapper.BaseMapperPlus; | 7 | import com.lego.common.core.mapper.BaseMapperPlus; |
| 4 | import com.lego.core.domain.Course; | 8 | import com.lego.core.domain.Course; |
| 5 | import com.lego.core.domain.vo.CourseVo; | 9 | import com.lego.core.domain.vo.CourseVo; |
| 10 | import org.apache.ibatis.annotations.Param; | ||
| 6 | 11 | ||
| 7 | /** | 12 | /** |
| 8 | * 课程Mapper接口 | 13 | * 课程Mapper接口 |
| ... | @@ -11,4 +16,5 @@ import com.lego.core.domain.vo.CourseVo; | ... | @@ -11,4 +16,5 @@ import com.lego.core.domain.vo.CourseVo; |
| 11 | * @date 2024/9/8 15:22 | 16 | * @date 2024/9/8 15:22 |
| 12 | */ | 17 | */ |
| 13 | public interface CourseMapper extends BaseMapperPlus<CourseMapper, Course, CourseVo> { | 18 | public interface CourseMapper extends BaseMapperPlus<CourseMapper, Course, CourseVo> { |
| 19 | Page<CourseVo> selectPageCourse(IPage<CourseVo> page, @Param(Constants.WRAPPER) QueryWrapper<CourseVo> wrapper); | ||
| 14 | } | 20 | } | ... | ... |
| 1 | package com.lego.core.service.impl; | 1 | package com.lego.core.service.impl; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.bean.BeanUtil; | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | import cn.hutool.core.collection.CollUtil; | ||
| 4 | import cn.hutool.core.util.ObjectUtil; | 5 | import cn.hutool.core.util.ObjectUtil; |
| 5 | import cn.hutool.core.util.StrUtil; | 6 | import cn.hutool.core.util.StrUtil; |
| 6 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 7 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 8 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 7 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 9 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| 8 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 10 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| 11 | import com.lego.common.constant.UserConstants; | ||
| 12 | import com.lego.common.core.domain.entity.SysUser; | ||
| 9 | import com.lego.common.core.page.TableDataInfo; | 13 | import com.lego.common.core.page.TableDataInfo; |
| 10 | import com.lego.common.core.service.OssService; | 14 | import com.lego.common.core.service.OssService; |
| 11 | import com.lego.common.utils.MessageUtils; | 15 | import com.lego.common.utils.MessageUtils; |
| 12 | import com.lego.common.utils.StreamUtils; | 16 | import com.lego.common.utils.StreamUtils; |
| 17 | import com.lego.common.utils.StringUtils; | ||
| 13 | import com.lego.core.annotation.LanguageAnnotation; | 18 | import com.lego.core.annotation.LanguageAnnotation; |
| 14 | import com.lego.core.domain.Course; | 19 | import com.lego.core.domain.Course; |
| 15 | import com.lego.core.domain.bo.CourseBo; | 20 | import com.lego.core.domain.bo.CourseBo; |
| ... | @@ -51,9 +56,22 @@ public class CourseServiceImpl implements ICourseService { | ... | @@ -51,9 +56,22 @@ public class CourseServiceImpl implements ICourseService { |
| 51 | */ | 56 | */ |
| 52 | @Override | 57 | @Override |
| 53 | public TableDataInfo<CourseVo> listPage(CourseQueryBo query, String language) { | 58 | public TableDataInfo<CourseVo> listPage(CourseQueryBo query, String language) { |
| 54 | Page<CourseVo> page = baseMapper.selectVoPage(query.build(), | 59 | QueryWrapper<CourseVo> wrapper = Wrappers.query(); |
| 55 | Wrappers.<Course>lambdaQuery().like(StrUtil.isNotBlank(query.getSearchKey()), Course::getName, query.getSearchKey()) | 60 | if(StringUtils.isNotBlank(query.getSearchKey())) { |
| 56 | .eq(Course::getLanguage, language).orderByAsc(Course::getSort)); | 61 | wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) |
| 62 | .eq("u.language", language) | ||
| 63 | .and(w -> w.like(StringUtils.isNotBlank(query.getSearchKey()), "u.name", query.getSearchKey()) | ||
| 64 | .or().like(StringUtils.isNotBlank(query.getSearchKey()), "v.name", query.getSearchKey()) | ||
| 65 | .or().like(StringUtils.isNotBlank(query.getSearchKey()), "w.name", query.getSearchKey()) | ||
| 66 | ) | ||
| 67 | .orderByAsc("u.sort"); | ||
| 68 | } | ||
| 69 | else{ | ||
| 70 | wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) | ||
| 71 | .eq("u.language", language) | ||
| 72 | .orderByAsc("u.sort"); | ||
| 73 | } | ||
| 74 | Page<CourseVo> page = baseMapper.selectPageCourse(query.build(),wrapper); | ||
| 57 | List<CourseVo> list = page.getRecords(); | 75 | List<CourseVo> list = page.getRecords(); |
| 58 | if (ObjectUtil.isNotEmpty(list)) { | 76 | if (ObjectUtil.isNotEmpty(list)) { |
| 59 | Set<String> ids = StreamUtils.toSet(list, CourseVo::getEntiretyId); | 77 | Set<String> ids = StreamUtils.toSet(list, CourseVo::getEntiretyId); | ... | ... |
| 1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
| 2 | <!DOCTYPE mapper | ||
| 3 | PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||
| 4 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
| 5 | <mapper namespace="com.lego.core.mapper.CourseMapper"> | ||
| 6 | |||
| 7 | <resultMap type="CourseVo" id="CourseResult"> | ||
| 8 | <id property="id" column="id"/> | ||
| 9 | <result property="entiretyId" column="entirety_id"/> | ||
| 10 | <result property="name" column="name"/> | ||
| 11 | <result property="type" column="type"/> | ||
| 12 | <result property="twoDimensionalType" column="two_dimensional_type"/> | ||
| 13 | <result property="twoDimensionalUrl" column="two_dimensional_url"/> | ||
| 14 | <result property="threeDimensionalType" column="two_dimensional_type"/> | ||
| 15 | <result property="threeDimensionalType" column="three_dimensional_type"/> | ||
| 16 | <result property="threeDimensionalUrl" column="three_dimensional_url"/> | ||
| 17 | <result property="threeDimensionalType" column="three_dimensional_type"/> | ||
| 18 | <result property="caseOssId" column="case_oss_id"/> | ||
| 19 | <result property="caseName" column="case_name"/> | ||
| 20 | <result property="teachingOssId" column="teaching_oss_id"/> | ||
| 21 | <result property="teachingName" column="teaching_name"/> | ||
| 22 | <result property="pptOssId" column="ppt_oss_id"/> | ||
| 23 | <result property="pptName" column="ppt_name"/> | ||
| 24 | <result property="ossId" column="oss_id"/> | ||
| 25 | <result property="language" column="language"/> | ||
| 26 | <result property="canPack" column="can_pack"/> | ||
| 27 | <result property="sort" column="sort"/> | ||
| 28 | <result property="programType" column="program_type"/> | ||
| 29 | </resultMap> | ||
| 30 | |||
| 31 | <select id="selectPageCourse" resultMap="CourseResult"> | ||
| 32 | select u.* | ||
| 33 | from core_course u | ||
| 34 | inner join core_entirety v ON v.id = u.entirety_id | ||
| 35 | inner join core_building_block w ON w.id = v.building_block_id | ||
| 36 | ${ew.getCustomSqlSegment} | ||
| 37 | </select> | ||
| 38 | </mapper> |
-
Please register or sign in to post a comment