du
2025-04-18 278493203ca3bf0be5c9b91b5b050923f358f6b8
Merge remote-tracking branch 'origin/master'
已添加8个文件
319 ■■■■■ 文件已修改
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/TitlesTrailerController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerPageReqVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerRespVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerSaveReqVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/titlestrailer/TitlesTrailerDO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/titlestrailer/TitlesTrailerMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/TitlesTrailerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerPageReqVO;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerRespVO;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerSaveReqVO;
import cn.iocoder.yudao.module.digitalcourse.dal.dataobject.titlestrailer.TitlesTrailerDO;
import cn.iocoder.yudao.module.digitalcourse.service.titlestrailer.TitlesTrailerService;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
 * @author kanglujie
 * @date 2025-04-17 17:19:29
 */
@RestController
@RequestMapping("/digitalcourse/titles-trailer")
@Validated
public class TitlesTrailerController {
    @Resource
    private TitlesTrailerService titlesTrailerService;
    @PostMapping("/create")
    public CommonResult<Long> createTitlesTrailer(@Valid @RequestBody TitlesTrailerSaveReqVO createReqVO) {
        return success(titlesTrailerService.createTitlesTrailer(createReqVO));
    }
    @PutMapping("/update")
    public CommonResult<Boolean> updateTitlesTrailer(@Valid @RequestBody TitlesTrailerSaveReqVO updateReqVO) {
        titlesTrailerService.updateTitlesTrailer(updateReqVO);
        return success(true);
    }
    @DeleteMapping("/delete")
    @Parameter(name = "id", description = "编号", required = true)
    public CommonResult<Boolean> deleteTitlesTrailer(@RequestParam("id") Long id) {
        titlesTrailerService.deleteTitlesTrailer(id);
        return success(true);
    }
    @GetMapping("/get")
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    public CommonResult<TitlesTrailerRespVO> getTitlesTrailer(@RequestParam("id") Long id) {
        TitlesTrailerDO template = titlesTrailerService.getTitlesTrailer(id);
        return success(BeanUtils.toBean(template, TitlesTrailerRespVO.class));
    }
    @GetMapping("/page")
    public CommonResult<PageResult<TitlesTrailerRespVO>> getTitlesTrailerPage(@Valid TitlesTrailerPageReqVO pageReqVO) {
        PageResult<TitlesTrailerDO> pageResult = titlesTrailerService.getTitlesTrailerPage(pageReqVO);
        return success(BeanUtils.toBean(pageResult, TitlesTrailerRespVO.class));
    }
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerPageReqVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TitlesTrailerPageReqVO extends PageParam {
    private String type;
    private String name;
    private String url;
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerRespVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ExcelIgnoreUnannotated
public class TitlesTrailerRespVO {
    private Long id;
    private String name;
    private String url;
    private String type;
    private LocalDateTime createTime;
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerSaveReqVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
 * @author kanglujie
 * @date 2025-04-17 17:24:45
 */
@Data
public class TitlesTrailerSaveReqVO {
    private Long id;
    @NotNull(message = "名字不能为空")
    private String name;
    @NotNull(message = "地址不能为空")
    private String url;
    @NotNull(message = "类型不能为空")
    private String type;
    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/titlestrailer/TitlesTrailerDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.digitalcourse.dal.dataobject.titlestrailer;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.math.BigDecimal;
/**
 * @author kanglujie
 * @date 2025-04-17 17:14:50
 */
@TableName("digitalcourse_titles_trailer")
@KeySequence("digitalcourse_titles_trailer_seq") // ç”¨äºŽ Oracle、PostgreSQL、Kingbase、DB2、H2 æ•°æ®åº“的主键自增。如果是 MySQL ç­‰æ•°æ®åº“,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TitlesTrailerDO extends BaseDO {
    @TableId
    private Long id;
    private String name;
    private String url;
    //1片头 2片尾
    private String type;
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/titlestrailer/TitlesTrailerMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.digitalcourse.dal.mysql.titlestrailer;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerPageReqVO;
import cn.iocoder.yudao.module.digitalcourse.dal.dataobject.titlestrailer.TitlesTrailerDO;
import org.apache.ibatis.annotations.Mapper;
/**
 * ç‰‡å¤´ç‰‡å°¾ Mapper
 *
 * @author ç®¡ç†å‘˜
 */
@Mapper
public interface TitlesTrailerMapper extends BaseMapperX<TitlesTrailerDO> {
    default PageResult<TitlesTrailerDO> selectPage(TitlesTrailerPageReqVO reqVO) {
        Long loginUserId = WebFrameworkUtils.getLoginUserId();
        return selectPage(reqVO, new LambdaQueryWrapperX<TitlesTrailerDO>()
                .eqIfPresent(TitlesTrailerDO::getName, reqVO.getName())
                .eqIfPresent(TitlesTrailerDO::getType, reqVO.getType())
                .eqIfPresent(TitlesTrailerDO::getUrl, reqVO.getUrl())
                .apply(loginUserId != 1, "creator = {0} ", loginUserId)
                .orderByAsc(TitlesTrailerDO::getId));
    }
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.digitalcourse.service.titlestrailer;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerPageReqVO;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerSaveReqVO;
import cn.iocoder.yudao.module.digitalcourse.dal.dataobject.titlestrailer.TitlesTrailerDO;
import jakarta.validation.Valid;
/**
 * æ¨¡æ¿ Service æŽ¥å£
 *
 * @author ç®¡ç†å‘˜
 */
public interface TitlesTrailerService {
    /**
     * åˆ›å»ºæ¨¡æ¿
     *
     * @param createReqVO åˆ›å»ºä¿¡æ¯
     * @return ç¼–号
     */
    Long createTitlesTrailer(@Valid TitlesTrailerSaveReqVO createReqVO);
    /**
     * æ›´æ–°æ¨¡æ¿
     *
     * @param updateReqVO æ›´æ–°ä¿¡æ¯
     */
    void updateTitlesTrailer(@Valid TitlesTrailerSaveReqVO updateReqVO);
    /**
     * åˆ é™¤æ¨¡æ¿
     *
     * @param id ç¼–号
     */
    void deleteTitlesTrailer(Long id);
    /**
     * èŽ·å¾—æ¨¡æ¿
     *
     * @param id ç¼–号
     * @return æ¨¡æ¿
     */
    TitlesTrailerDO getTitlesTrailer(Long id);
    /**
     * èŽ·å¾—æ¨¡æ¿åˆ†é¡µ
     *
     * @param pageReqVO åˆ†é¡µæŸ¥è¯¢
     * @return æ¨¡æ¿åˆ†é¡µ
     */
    PageResult<TitlesTrailerDO> getTitlesTrailerPage(TitlesTrailerPageReqVO pageReqVO);
}
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package cn.iocoder.yudao.module.digitalcourse.service.titlestrailer;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerPageReqVO;
import cn.iocoder.yudao.module.digitalcourse.controller.admin.titlestrailer.vo.TitlesTrailerSaveReqVO;
import cn.iocoder.yudao.module.digitalcourse.dal.dataobject.titlestrailer.TitlesTrailerDO;
import cn.iocoder.yudao.module.digitalcourse.dal.mysql.titlestrailer.TitlesTrailerMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.digitalcourse.enums.ErrorCodeConstants.TEMPLATE_NOT_EXISTS;
/**
 * æ¨¡æ¿ Service å®žçŽ°ç±»
 *
 * @author ç®¡ç†å‘˜
 */
@Service
@Validated
public class TitlesTrailerServiceImpl implements TitlesTrailerService {
    @Resource
    private TitlesTrailerMapper titlesTrailerMapper;
    @Override
    public Long createTitlesTrailer(TitlesTrailerSaveReqVO createReqVO) {
        // æ’å…¥
        TitlesTrailerDO template = BeanUtils.toBean(createReqVO, TitlesTrailerDO.class);
        titlesTrailerMapper.insert(template);
        // è¿”回
        return template.getId();
    }
    @Override
    public void updateTitlesTrailer(TitlesTrailerSaveReqVO updateReqVO) {
        // æ ¡éªŒå­˜åœ¨
        validateTemplateExists(updateReqVO.getId());
        // æ›´æ–°
        TitlesTrailerDO updateObj = BeanUtils.toBean(updateReqVO, TitlesTrailerDO.class);
        titlesTrailerMapper.updateById(updateObj);
    }
    @Override
    public void deleteTitlesTrailer(Long id) {
        // æ ¡éªŒå­˜åœ¨
        validateTemplateExists(id);
        // åˆ é™¤
        titlesTrailerMapper.deleteById(id);
    }
    private void validateTemplateExists(Long id) {
        if (titlesTrailerMapper.selectById(id) == null) {
            throw exception(TEMPLATE_NOT_EXISTS);
        }
    }
    @Override
    public TitlesTrailerDO getTitlesTrailer(Long id) {
        return titlesTrailerMapper.selectById(id);
    }
    @Override
    public PageResult<TitlesTrailerDO> getTitlesTrailerPage(TitlesTrailerPageReqVO pageReqVO) {
        return titlesTrailerMapper.selectPage(pageReqVO);
    }
}