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<HomeBannerDO> ordered() {
|
LambdaQueryWrapperX<HomeBannerDO> 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<HomeBannerDO>> list() { return success(mapper.selectList(ordered())); }
|
@GetMapping("/enabled-list")
|
public CommonResult<List<HomeBannerDO>> enabledList() { return success(mapper.selectList(ordered().eq(HomeBannerDO::getStatus, 0))); }
|
@PostMapping("/save") @PreAuthorize("@ss.hasPermission('system:home-banner:update')")
|
public CommonResult<Boolean> 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<Boolean> 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;
|
}
|
}
|