package cn.iocoder.yudao.module.digitalcourse.dal.mysql.template; import java.util.*; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; import cn.iocoder.yudao.module.digitalcourse.dal.dataobject.template.TemplateDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.digitalcourse.controller.admin.template.vo.*; /** * 模板 Mapper * * @author 管理员 */ @Mapper public interface TemplateMapper extends BaseMapperX { default PageResult selectPage(TemplatePageReqVO reqVO) { Long loginUserId = WebFrameworkUtils.getLoginUserId(); LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX() .eqIfPresent(TemplateDO::getShowBackground, reqVO.getShowBackground()) .eqIfPresent(TemplateDO::getShowDigitalHuman, reqVO.getShowDigitalHuman()) .eqIfPresent(TemplateDO::getShowPpt, reqVO.getShowPpt()) .eqIfPresent(TemplateDO::getPptW, reqVO.getPptW()) .eqIfPresent(TemplateDO::getPptH, reqVO.getPptH()) .eqIfPresent(TemplateDO::getPptX, reqVO.getPptX()) .eqIfPresent(TemplateDO::getPptY, reqVO.getPptY()) .eqIfPresent(TemplateDO::getHumanW, reqVO.getHumanW()) .eqIfPresent(TemplateDO::getHumanH, reqVO.getHumanH()) .eqIfPresent(TemplateDO::getHumanX, reqVO.getHumanX()) .eqIfPresent(TemplateDO::getHumanY, reqVO.getHumanY()) .eqIfPresent(TemplateDO::getBgImage, reqVO.getBgImage()) .betweenIfPresent(TemplateDO::getCreateTime, reqVO.getCreateTime()); Integer zgParam = reqVO.getZg(); if (loginUserId != 1) { if (zgParam != null) { if (zgParam == 1) { wrapper.eq(TemplateDO::getZg, 1); } else if (zgParam == 2) { wrapper.eq(TemplateDO::getZg, 2).eq(TemplateDO::getCreator, loginUserId); } } else { // zg 未传,查 zg = 1 或 (zg = 2 且 creator = 自己) wrapper.and(w -> w.eq(TemplateDO::getZg, 1) .or() .eq(TemplateDO::getZg, 2).eq(TemplateDO::getCreator, loginUserId)); } }else { if (zgParam != null) { if (zgParam == 1) { wrapper.eq(TemplateDO::getZg, 1); } else if (zgParam == 2) { wrapper.eq(TemplateDO::getZg, 2); } } } wrapper.orderByAsc(TemplateDO::getId); return selectPage(reqVO, wrapper); } }