package com.xinquan.system.controller;
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.course.api.domain.Course;
import com.xinquan.course.api.domain.CourseCategory;
import com.xinquan.course.api.domain.CourseDTO;
import com.xinquan.course.api.feign.RemoteCourseService;
import com.xinquan.system.domain.Banner;
import com.xinquan.system.service.BannerService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 用户信息表 前端控制器
*
*
* @author mitao
* @since 2024-08-21
*/
@RestController
@RequestMapping("/system/banner")
public class BannerController {
@Autowired
private BannerService bannerService;
@Autowired
private RemoteCourseService remoteCourseService;
@PostMapping("/bannerList")
@ApiOperation(value = "获取banner列表-分页",tags = "管理后台banner")
@ApiImplicitParams({
@ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"),
@ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer")
})
public R> bannerList(
@RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
return R.ok(bannerService.bannerList(pageCurr, pageSize));
}
@PostMapping("/cateList")
@ApiOperation(value = "课程分类下拉选择列表-不分页",tags = "管理后台banner")
public R> cateList() {
List data = remoteCourseService.cateList().getData();
return R.ok(data);
}
@GetMapping("/courseList")
@ApiOperation(value = "选择课程-分页",tags = "管理后台banner")
@ApiImplicitParams({
@ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = false, dataType = "Integer"),
@ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = false, dataType = "Integer"),
@ApiImplicitParam(value = "课程类型1线上2线下", name = "courseType", required = false, dataType = "Integer"),
@ApiImplicitParam(value = "课程分类id", name = "cateId", required = false, dataType = "Long"),
@ApiImplicitParam(value = "课程标题", name = "courseTitle", required = false, dataType = "String"),
@ApiImplicitParam(value = "导师名称", name = "tutor", required = false, dataType = "String"),
})
public R> courseList(
Integer pageCurr,
Integer pageSize,
Integer courseType,
Long cateId,
String courseTitle,
String tutor
) {
CourseDTO courseDTO = new CourseDTO();
courseDTO.setPageCurr(pageCurr);
courseDTO.setPageSize(pageSize);
courseDTO.setCourseType(courseType);
courseDTO.setCateId(cateId);
courseDTO.setCourseTitle(courseTitle);
courseDTO.setTutor(tutor);
PageDTO data = remoteCourseService.courseList(courseDTO).getData();
return R.ok(data);
}
@PostMapping("/deleteBatch")
@ApiOperation(value = "批量删除banner",tags = "管理后台banner")
@ApiImplicitParams({
@ApiImplicitParam(value = "ids", name = "ids", required = true, dataType = "String"),
})
@Log(title = "【banner】批量删除", businessType = BusinessType.DELETE)
public R deleteBatch(
@RequestParam(value = "ids") String ids)
{
List list = Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList());
bannerService.removeBatchByIds(list);
return R.ok();
}
@PostMapping("/addBanner")
@ApiOperation(value = "添加banner",tags = "管理后台banner")
@Log(title = "【banner】添加", businessType = BusinessType.INSERT)
public R addBanner(@RequestBody Banner banner)
{
bannerService.save(banner);
return R.ok();
}
@PostMapping("/updateBanner")
@ApiOperation(value = "修改banner",tags = "管理后台banner")
@Log(title = "【banner】修改", businessType = BusinessType.UPDATE)
public R updateBanner(@RequestBody Banner banner)
{
bannerService.updateById(banner);
return R.ok();
}
@PostMapping("/bannerDetail")
@ApiOperation(value = "查看详情",tags = "管理后台banner")
public R bannerDetail(String uid)
{
Banner byId = bannerService.getById(uid);
if (byId.getCourseId()!=null){
Course data = remoteCourseService.getCourseById(byId.getCourseId()).getData();
if (data!=null){
byId.setCourseTitle(data.getCourseTitle());
byId.setCoverUrl(data.getCoverUrl());
byId.setTutor(data.getTutor());
byId.setPrice(data.getGeneralPrice());
if (data.getCateId()!=null){
CourseCategory data1 = remoteCourseService.getCategoryById(data.getCateId().toString()).getData();
byId.setCate(data1.getName());
}
}
}
return R.ok(byId);
}
}