package com.bicloud.service.impl;

import com.bicloud.common.result.PageResult;
import com.bicloud.mapper.LiteratureMapper;
import com.bicloud.pojo.dto.LiteratureCreateDto;
import com.bicloud.pojo.dto.LiteraturePageQueryDto;
import com.bicloud.pojo.vo.LiteratureListVo;
import com.bicloud.service.LiteratureService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class LiteratureServiceImpl implements LiteratureService {

    @Autowired
    private LiteratureMapper literatureMapper;

    @Override
    public void addLiterature(LiteratureCreateDto dto) {
        // 新库：直接写入 biology_document_info（SQL 在 XML）
        literatureMapper.insertDocument(dto);
    }

    @Override
    public void deleteLiterature(Long id) {
        // 新库：软删除 removed=1
        literatureMapper.softDeleteById(id);
    }

    @Override
    public PageResult<LiteratureListVo> pageQuery(LiteraturePageQueryDto queryDTO) {

        // 1) 兜底默认值，避免空指针/非法分页参数
        int page = (queryDTO.getPage() == null || queryDTO.getPage() < 1) ? 1 : queryDTO.getPage();
        int pageSize = (queryDTO.getPageSize() == null || queryDTO.getPageSize() < 1) ? 10 : queryDTO.getPageSize();

        // 2) PageHelper 开始分页
        PageHelper.startPage(page, pageSize);

        // 3) 执行 mapper 查询（PageHelper 自动分页 + 自动 count）
        Page<LiteratureListVo> p = literatureMapper.pageQuery(queryDTO);

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