package cn.iocoder.yudao.module.system.controller.admin.homebanner; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.dal.dataobject.homebanner.HomeBannerDO; import cn.iocoder.yudao.module.system.dal.mysql.homebanner.HomeBannerMapper; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.*; import lombok.Data; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/system/home-banner") @Validated public class HomeBannerController { @Resource private HomeBannerMapper mapper; private LambdaQueryWrapperX ordered() { LambdaQueryWrapperX query = new LambdaQueryWrapperX<>(); query.orderByAsc(HomeBannerDO::getSort); query.orderByDesc(HomeBannerDO::getId); return query; } @GetMapping("/list") @PreAuthorize("@ss.hasPermission('system:home-banner:query')") public CommonResult> list() { return success(mapper.selectList(ordered())); } @GetMapping("/enabled-list") public CommonResult> enabledList() { return success(mapper.selectList(ordered().eq(HomeBannerDO::getStatus, 0))); } @PostMapping("/save") @PreAuthorize("@ss.hasPermission('system:home-banner:update')") public CommonResult save(@Valid @RequestBody SaveRequest req) { HomeBannerDO item = new HomeBannerDO(); item.setId(req.getId()); item.setTitle(req.getTitle().trim()); item.setImageUrl(req.getImageUrl().trim()); item.setSort(req.getSort()); item.setStatus(req.getStatus()); if (item.getId() == null) mapper.insert(item); else mapper.updateById(item); return success(true); } @DeleteMapping("/delete") @PreAuthorize("@ss.hasPermission('system:home-banner:update')") public CommonResult delete(@RequestParam("id") Long id) { mapper.deleteById(id); return success(true); } @Data public static class SaveRequest { private Long id; @NotBlank @Size(max=100) private String title; @NotBlank @Size(max=1000) private String imageUrl; @NotNull @Min(0) private Integer sort; @NotNull @Min(0) @Max(1) private Integer status; } }