package io.modules.item.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import cn.hutool.core.util.StrUtil;
import io.common.service.impl.CrudServiceImpl;
import io.modules.item.dao.DictDao;
import io.modules.item.dto.DictDTO;
import io.modules.item.entity.DictEntity;
import io.modules.item.service.DictService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 敏感词
 *
 * @author Mark #
 * @since 1.0.0 2024-12-12
 */
@Service
public class DictServiceImpl extends CrudServiceImpl<DictDao, DictEntity, DictDTO> implements DictService {

    @Override
    public QueryWrapper<DictEntity> getWrapper(Map<String, Object> params){
        String id = (String)params.get("id");

        QueryWrapper<DictEntity> wrapper = new QueryWrapper<>();
        wrapper.eq(StrUtil.isNotBlank(id), "id", id);

        return wrapper;
    }


    @Override
    public List<String> isExistsList(String key) {

        // 存储存在的敏感词
        List<String> result = new ArrayList<>();
        List<DictEntity> dictEntities = baseDao.selectList(null);

        // 检查字典库是否为空
        if (dictEntities == null || dictEntities.isEmpty()) {
            // 如果返回空，则可以抛出异常，或者返回空列表
            return result;
        }
        // 遍历字典敏感词列表，判断每个敏感词是否包含key
        for (DictEntity dictEntity : dictEntities) {
            // 假设 DictEntity 类有一个字段 word 存储敏感词
            String word = dictEntity.getContent();
            if (word != null && word.contains(key)) {
                // 如果敏感词包含 key，则添加到结果列表中
                result.add(word);
            }
        }

        return result;
    }
}
