yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/TemplateController.java
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplatePageReqVO.java
@@ -64,4 +64,5 @@ @Schema(description = "模板名称") private String templateName;; private Integer zg; } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplateRespVO.java
@@ -76,4 +76,6 @@ @Schema(description = "模板尺寸") private String templateSize; private Integer zg; private String creator; } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplateSaveReqVO.java
@@ -57,8 +57,8 @@ @NotNull(message = "数字人距离左侧位置不能为空") private BigDecimal humanY; @Schema(description = "背景图片", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "背景图片不能为空") //@Schema(description = "背景图片", requiredMode = Schema.RequiredMode.REQUIRED) //@NotEmpty(message = "背景图片不能为空") private String bgImage; @Schema(description = "效果图") @@ -70,4 +70,5 @@ @Schema(description = "模板尺寸") private String templateSize; private Integer zg; } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/template/TemplateDO.java
@@ -86,4 +86,5 @@ // 模板尺寸 private String templateSize; private Integer zg; } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/template/TemplateMapper.java
@@ -5,6 +5,7 @@ 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.*; @@ -18,7 +19,8 @@ public interface TemplateMapper extends BaseMapperX<TemplateDO> { default PageResult<TemplateDO> selectPage(TemplatePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<TemplateDO>() Long loginUserId = WebFrameworkUtils.getLoginUserId(); LambdaQueryWrapperX<TemplateDO> wrapper = new LambdaQueryWrapperX<TemplateDO>() .eqIfPresent(TemplateDO::getShowBackground, reqVO.getShowBackground()) .eqIfPresent(TemplateDO::getShowDigitalHuman, reqVO.getShowDigitalHuman()) .eqIfPresent(TemplateDO::getShowPpt, reqVO.getShowPpt()) @@ -31,8 +33,34 @@ .eqIfPresent(TemplateDO::getHumanX, reqVO.getHumanX()) .eqIfPresent(TemplateDO::getHumanY, reqVO.getHumanY()) .eqIfPresent(TemplateDO::getBgImage, reqVO.getBgImage()) .betweenIfPresent(TemplateDO::getCreateTime, reqVO.getCreateTime()) .orderByAsc(TemplateDO::getId)); .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); } } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/template/TemplateServiceImpl.java
@@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.digitalcourse.service.template; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -31,6 +34,10 @@ @Override public Long createTemplate(TemplateSaveReqVO createReqVO) { Integer zg = createReqVO.getZg(); if (zg != null && zg != 1) { createReqVO.setZg(2); } // 插入 TemplateDO template = BeanUtils.toBean(createReqVO, TemplateDO.class); templateMapper.insert(template); @@ -66,9 +73,16 @@ return templateMapper.selectById(id); } @Autowired private AdminUserApi adminUserApi; @Override public PageResult<TemplateDO> getTemplatePage(TemplatePageReqVO pageReqVO) { return templateMapper.selectPage(pageReqVO); PageResult<TemplateDO> templateDOPageResult = templateMapper.selectPage(pageReqVO); for (TemplateDO templateDO : templateDOPageResult.getList()) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(templateDO.getCreator())); templateDO.setCreator(user.getNickname()); } return templateDOPageResult; } } yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/util/PPTUtil.java
@@ -193,7 +193,7 @@ File pdfFile = File.createTempFile("ppt_to_pdf_"+tempFileName, ".pdf"); String command; if (isWindows()) { command = String.format("\"E:\\LibreOffice\\LibreOffice\\program\\soffice.exe\" --headless --convert-to pdf --outdir %s %s", pdfFile.getParent(), pptFile.getAbsolutePath()); command = String.format("\"C:\\Program Files\\LibreOffice\\program\\soffice.com\" --headless --convert-to pdf --outdir %s %s", pdfFile.getParent(), pptFile.getAbsolutePath()); } else { command = String.format("libreoffice --headless --convert-to pdf --outdir %s %s", pdfFile.getParent(), pptFile.getAbsolutePath()); }