package com.bicloud.service.impl;

import com.bicloud.common.result.PageResult;
import com.bicloud.mapper.CourseMapper;
import com.bicloud.pojo.dto.CoursePageQueryDto;
import com.bicloud.pojo.vo.CourseCardVo;
import com.bicloud.pojo.vo.CourseCatVo;
import com.bicloud.service.CourseService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CourseServiceImpl implements CourseService {

    private final CourseMapper courseMapper;

    public CourseServiceImpl(CourseMapper courseMapper) {
        this.courseMapper = courseMapper;
    }

    // 获取课程分类列表
    @Override
    public List<CourseCatVo> listCourseCats() {
        return courseMapper.listCourseCats();
    }

    // 课程中心分页查询
    @Override
    public PageResult<CourseCardVo> pageQuery(CoursePageQueryDto queryDTO) {

        // 1) PageHelper 开始分页（兜底默认值，避免空指针）
        int page = (queryDTO.getPage() == null || queryDTO.getPage() < 1) ? 1 : queryDTO.getPage();
        int pageSize = (queryDTO.getPageSize() == null || queryDTO.getPageSize() < 1) ? 12 : queryDTO.getPageSize();
        PageHelper.startPage(page, pageSize);

        // 2) 执行 mapper 查询（PageHelper 自动加 limit）
        Page<CourseCardVo> p = courseMapper.pageQuery(queryDTO);

        // 3) 取 total + records
        return new PageResult<>(p.getTotal(), p.getResult());
    }
}
