liusheng
12 小时以前 e180e3a496d6f29d3a3b34016400de9d997c6bd9
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptAssortServiceImpl.java
@@ -3,6 +3,7 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.smartor.common.PinYinUtil;
import com.smartor.domain.*;
import com.smartor.mapper.IvrLibaScriptAssortMapper;
import com.smartor.service.IIvrLibaScriptAssortService;
@@ -13,7 +14,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -85,6 +89,9 @@
        } else {
            ivrLibaScriptAssort.setSeqno(seqMax + 1);
        }
        if (ivrLibaScriptAssort.getIndexAssortName() != null && ivrLibaScriptAssort.getIndexAssortName().contains("满意度") && ivrLibaScriptAssort.getPid() != -1) {
            ivrLibaScriptAssort.setType(PinYinUtil.getpy(ivrLibaScriptAssort.getIndexAssortName()));
        }
        i = ivrLibaScriptAssortMapper.insertIvrLibaScriptAssort(ivrLibaScriptAssort);
        log.info("问题话术分类库一级树的主键:{}", ivrLibaScriptAssort.getId());
@@ -122,6 +129,9 @@
    @Override
    public int updateIvrLibaScriptAssort(IvrLibaScriptAssort ivrLibaScriptAssort) {
        ivrLibaScriptAssort.setUpdateTime(DateUtils.getNowDate());
        if (ivrLibaScriptAssort.getIndexAssortName() != null && ivrLibaScriptAssort.getIndexAssortName().contains("满意度") && ivrLibaScriptAssort.getPid() != -1) {
            ivrLibaScriptAssort.setType(PinYinUtil.getpy(ivrLibaScriptAssort.getIndexAssortName()));
        }
        return ivrLibaScriptAssortMapper.updateIvrLibaScriptAssort(ivrLibaScriptAssort);
    }
@@ -178,22 +188,29 @@
    @Override
    public List<IvrLibaScriptAssortVO> selectIvrLibaScriptAssortList(IvrLibaScriptAssort ivrLibaScriptAssort) {
        List<IvrLibaScriptAssort> ivrLibaScriptAssorts = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaScriptAssort);
        //将pid为空的,过滤掉
        ivrLibaScriptAssorts = ivrLibaScriptAssorts.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
        List<IvrLibaScriptAssortVO> ivrLibaScriptAssortVOS = DtoConversionUtils.sourceToTarget(ivrLibaScriptAssorts, IvrLibaScriptAssortVO.class);
        //遍历查出来的数据,通过 id=pid 获取他们的子数据
        for (IvrLibaScriptAssortVO ivrLibaScriptAssortVO : ivrLibaScriptAssortVOS) {
            if (ivrLibaScriptAssortVO.getPid() != null) {
                continue;
            }
            IvrLibaScriptAssort ivrLibaTargetAssort1 = new IvrLibaScriptAssort();
            ivrLibaTargetAssort1.setPid(ivrLibaScriptAssortVO.getId());
            List<IvrLibaScriptAssort> ivrLibaScriptAssorts1 = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortList(ivrLibaTargetAssort1);
            if (!Collections.isEmpty(ivrLibaScriptAssorts1)) {
                ivrLibaScriptAssortVO.setIvrLibaScriptAssortList(ivrLibaScriptAssorts1);
        List<IvrLibaScriptAssortVO> rootList = new ArrayList<>();
        Map<Long, IvrLibaScriptAssortVO> categoryMap = new HashMap<>();
        // 建立id->对象的映射
        for (IvrLibaScriptAssortVO category : ivrLibaScriptAssortVOS) {
            categoryMap.put(category.getId(), category);
        }
        for (IvrLibaScriptAssortVO category : ivrLibaScriptAssortVOS) {
            if (category.getPid() == null || category.getPid() == -1) {
                // 顶层节点
                rootList.add(category);
            } else {
                // 找到父节点,并添加到其子节点列表
                IvrLibaScriptAssortVO parent = categoryMap.get(category.getPid());
                if (parent != null) {
                    IvrLibaScriptAssort sc = DtoConversionUtils.sourceToTarget(category, IvrLibaScriptAssort.class);
                    parent.getIvrLibaScriptAssortList().add(sc);
                }
            }
        }
        return ivrLibaScriptAssortVOS;
        return rootList;
    }
}