康鲁杰
2025-05-30 8a7da989ac386e619ee34bbf2ce43cd9e81b465b
模版管理权限
已修改8个文件
61 ■■■■ 文件已修改
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/TemplateController.java 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplatePageReqVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplateRespVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/template/vo/TemplateSaveReqVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/template/TemplateDO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/template/TemplateMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/template/TemplateServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/util/PPTUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
        }