package com.tcm.training.admin.system.controller;
|
|
import com.tcm.training.admin.common.ApiResponse;
|
import com.tcm.training.admin.common.PageResponse;
|
import com.tcm.training.admin.system.dto.SystemBannerBatchDeleteRequest;
|
import com.tcm.training.admin.system.dto.SystemBannerPublishStatusRequest;
|
import com.tcm.training.admin.system.dto.SystemBannerSaveRequest;
|
import com.tcm.training.admin.system.service.SystemBannerAppService;
|
import com.tcm.training.admin.system.vo.SystemBannerCourseOptionVO;
|
import com.tcm.training.admin.system.vo.SystemBannerDetailVO;
|
import com.tcm.training.admin.system.vo.SystemBannerListItemVO;
|
import com.tcm.training.admin.system.vo.SystemBannerPublishStatusVO;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PatchMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.validation.Valid;
|
import java.util.List;
|
|
@Validated
|
@RestController
|
@RequestMapping({"/api/v1", "/api"})
|
public class SystemBannerController {
|
|
private final SystemBannerAppService systemBannerAppService;
|
|
public SystemBannerController(SystemBannerAppService systemBannerAppService) {
|
this.systemBannerAppService = systemBannerAppService;
|
}
|
|
@GetMapping("/system-banners")
|
public ApiResponse<PageResponse<SystemBannerListItemVO>> page(
|
@RequestParam(required = false, defaultValue = "1") int page,
|
@RequestParam(required = false, defaultValue = "10") int pageSize,
|
@RequestParam(required = false) String title,
|
@RequestParam(required = false) Integer status) {
|
return ApiResponse.ok(systemBannerAppService.page(page, pageSize, title, status));
|
}
|
|
@GetMapping("/system-banners/{id}")
|
public ApiResponse<SystemBannerDetailVO> detail(@PathVariable("id") Long id) {
|
return ApiResponse.ok(systemBannerAppService.detail(id));
|
}
|
|
@PostMapping("/system-banners")
|
public ApiResponse<SystemBannerDetailVO> create(@Valid @RequestBody SystemBannerSaveRequest request) {
|
return ApiResponse.ok(systemBannerAppService.create(request));
|
}
|
|
@PutMapping("/system-banners/{id}")
|
public ApiResponse<SystemBannerDetailVO> update(@PathVariable("id") Long id,
|
@Valid @RequestBody SystemBannerSaveRequest request) {
|
return ApiResponse.ok(systemBannerAppService.update(id, request));
|
}
|
|
@DeleteMapping("/system-banners/{id}")
|
public ApiResponse<Void> delete(@PathVariable("id") Long id) {
|
systemBannerAppService.delete(id);
|
return ApiResponse.ok(null);
|
}
|
|
@DeleteMapping("/system-banners/batch")
|
public ApiResponse<Void> batchDelete(@Valid @RequestBody SystemBannerBatchDeleteRequest request) {
|
systemBannerAppService.batchDelete(request);
|
return ApiResponse.ok(null);
|
}
|
|
@PatchMapping("/system-banners/{id}/publish-status")
|
public ApiResponse<SystemBannerPublishStatusVO> patchPublishStatus(@PathVariable("id") Long id,
|
@Valid @RequestBody SystemBannerPublishStatusRequest request) {
|
return ApiResponse.ok(systemBannerAppService.patchPublishStatus(id, request));
|
}
|
|
@GetMapping("/system-banners/health-course-options")
|
public ApiResponse<List<SystemBannerCourseOptionVO>> healthCourseOptions(@RequestParam(required = false) String keyword) {
|
return ApiResponse.ok(systemBannerAppService.healthCourseOptions(keyword));
|
}
|
|
@GetMapping("/system-banners/live-course-options")
|
public ApiResponse<List<SystemBannerCourseOptionVO>> liveCourseOptions(@RequestParam(required = false) String keyword) {
|
return ApiResponse.ok(systemBannerAppService.liveCourseOptions(keyword));
|
}
|
}
|