package com.xcong.farmer.cms.core.handler; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.xcong.farmer.cms.core.node.AttrNode; import com.xcong.farmer.cms.core.tag.data.FriendlyData; import com.xcong.farmer.cms.core.tag.model.Ad; import com.xcong.farmer.cms.core.tag.model.Friendly; import com.xcong.farmer.cms.modules.system.entity.CmsFriendlyLinkEntity; import com.xcong.farmer.cms.modules.system.mapper.CmsFriendlyLinkMapper; import com.xcong.farmer.cms.utils.SpringContextHolder; import java.util.ArrayList; import java.util.List; /** * @author wzy * @date 2022-08-30 **/ public class FriendlyDataParserHandler implements DataParserHandler{ private final CmsFriendlyLinkMapper cmsFriendlyLinkMapper = SpringContextHolder.getBean(CmsFriendlyLinkMapper.class); @Override public void dataParser(AttrNode attrNode) { Long companyId = (Long) attrNode.getSystemDataValue("companyId"); Friendly param = (Friendly) attrNode.getParam(); List friendlies = null; if (StrUtil.isNotBlank(param.getGroupId())) { friendlies = cmsFriendlyLinkMapper.selectByGroupIdAndCompanyId(Long.parseLong(param.getGroupId()), companyId); } else { friendlies = cmsFriendlyLinkMapper.selectByGroupCodeAndCompanyId(param.getCode(), companyId); } if (CollUtil.isEmpty(friendlies)) { attrNode.setData(new FriendlyData()); } else { List list = new ArrayList<>(); for (int i = 0; i < friendlies.size(); i++) { FriendlyData data = new FriendlyData(); BeanUtil.copyProperties(friendlies.get(i), data); data.setIndex(i + 1); list.add(data); } attrNode.setData(list); } } }