KKSU
2024-01-09 b492e64e491596b0af149f1a5d679b77f47dafcd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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<CmsFriendlyLinkEntity> 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<FriendlyData> 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);
        }
    }
}