package com.smartor.message;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.message.sms.provider.ls.LishuiMessageConfig;
import com.ruoyi.message.sms.provider.ls.LishuiMessageConfigProvider;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.LSHospTokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 丽水短信机构级配置实现。
*
* 统一了原先三套并存的查询方式:
*
* - {@code RyTask.ls 分支}:按机构查 {@code ls.msg.info};
* - {@code ServiceSubtaskServiceImpl.smsSubTask}:用 {@code MsgLSEnum}(已废弃);
* - {@code SmsRecordsServiceImpl.sendSMS}:又是第三套(本轮已改为委托发送方)。
*
* 现在唯一入口就是本类:读 {@code sys_config} 表的 {@code ls.msg.info}(按机构),
* token 走 {@code LSHospTokenUtil}。
*/
@Slf4j
@Component
public class LishuiMessageConfigProviderImpl implements LishuiMessageConfigProvider {
/**
* 丽水机构级配置的配置项 key(与原实现一致)
*/
private static final String CONFIG_KEY = "ls.msg.info";
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final TypeReference