From bf4302d64f253039f395b88bf5e50f8f495b921e Mon Sep 17 00:00:00 2001 From: 康鲁杰 <60095866+KangLujie@users.noreply.github.com> Date: 星期五, 18 四月 2025 09:18:05 +0800 Subject: [PATCH] 片头片尾管理 --- yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerPageReqVO.java | 19 +++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerRespVO.java | 22 +++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/TitlesTrailerController.java | 62 ++++++++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/titlestrailer/TitlesTrailerDO.java | 30 +++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/titlestrailer/TitlesTrailerMapper.java | 28 ++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerSaveReqVO.java | 34 +++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerService.java | 54 +++++++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerServiceImpl.java | 70 +++++++++++ 8 files changed, 319 insertions(+), 0 deletions(-) diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/TitlesTrailerController.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/TitlesTrailerController.java new file mode 100644 index 0000000..02a6f07 --- /dev/null +++ b/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)); + } + + +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerPageReqVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerPageReqVO.java new file mode 100644 index 0000000..223e287 --- /dev/null +++ b/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; + +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerRespVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerRespVO.java new file mode 100644 index 0000000..e31a3a0 --- /dev/null +++ b/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; + +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerSaveReqVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/titlestrailer/vo/TitlesTrailerSaveReqVO.java new file mode 100644 index 0000000..8e1dbb9 --- /dev/null +++ b/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; + +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/titlestrailer/TitlesTrailerDO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/titlestrailer/TitlesTrailerDO.java new file mode 100644 index 0000000..2c06323 --- /dev/null +++ b/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銆丳ostgreSQL銆並ingbase銆丏B2銆丠2 鏁版嵁搴撶殑涓婚敭鑷銆傚鏋滄槸 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; +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/titlestrailer/TitlesTrailerMapper.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/mysql/titlestrailer/TitlesTrailerMapper.java new file mode 100644 index 0000000..1a40f77 --- /dev/null +++ b/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)); + } +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerService.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerService.java new file mode 100644 index 0000000..126b47c --- /dev/null +++ b/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); + +} diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerServiceImpl.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/titlestrailer/TitlesTrailerServiceImpl.java new file mode 100644 index 0000000..c067095 --- /dev/null +++ b/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); + } + +} -- Gitblit v1.9.3