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); } }