wzy
2022-10-20 673231ff8850208a50e6cf4d505cbba8d6b95869
src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
@@ -10,9 +10,12 @@
import com.xcong.farmer.cms.core.tag.data.PageChildData;
import com.xcong.farmer.cms.core.tag.data.PageData;
import com.xcong.farmer.cms.core.tag.model.Article;
import com.xcong.farmer.cms.core.tag.model.Column;
import com.xcong.farmer.cms.core.tag.model.Pagination;
import com.xcong.farmer.cms.modules.system.entity.ArticleEntity;
import com.xcong.farmer.cms.modules.system.entity.ColumnEntity;
import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper;
import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper;
import com.xcong.farmer.cms.utils.SpringContextHolder;
import lombok.extern.slf4j.Slf4j;
@@ -27,15 +30,22 @@
public class PageDataParserHandler implements DataParserHandler {
    private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
    private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
    @Override
    public void dataParser(AttrNode attrNode) {
        log.info("分页解析");
        synchronized (this) {
            Template.HAS_PAGING = true;
            String baseUrl = (String) attrNode.getSystemDataValue("baseUrl");
            Long companyId = (Long) attrNode.getSystemDataValue("companyId");
            Pagination param = (Pagination) attrNode.getParam();
            Object pageNum = attrNode.getSystemDataValue("page");
            if (pageNum != null) {
                param.setPage(pageNum.toString());
            }
            Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
            ArticleEntity article = new ArticleEntity();
@@ -49,7 +59,14 @@
            pageData.setTotalCnt((int) pageList.getSize());
            if (CollUtil.isNotEmpty(pageList.getRecords())) {
                String path = cmsProperties.getBaseUrl() + "/" + param.getCode();
                ColumnEntity parentColumn = columnMapper.selectParentColumnByCodeAndCompanyId(param.getCode(), companyId);
                String path;
                if (parentColumn == null) {
                    path = baseUrl + "/" + param.getCode();
                } else {
                    path = baseUrl + "/" + parentColumn.getColumnCode() + "/" + param.getCode();
                }
                String filename = "index_{}.html";
                List<PageChildData> list = new ArrayList<>();
@@ -60,7 +77,7 @@
                for (int i = startAndEnd[0]; i <= startAndEnd[1]; i++) {
                    PageChildData child = new PageChildData();
                    child.setIndex(i);
                    if (pageNo == 1) {
                    if (i == 1) {
                        child.setPath(path + "/index.html");
                    } else {
                        child.setPath(path + "/" + StrUtil.format(filename, i));
@@ -74,7 +91,7 @@
                pageData.setPrev("javascript:void(0)");
            }
            if (Integer.parseInt(param.getPage()) == pageList.getPages()) {
            if (Integer.parseInt(param.getPage()) >= pageList.getPages()) {
                Template.HAS_PAGING = false;
            }