package com.smartor.message; 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 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 final ISysConfigService configService; public LishuiMessageConfigProviderImpl(ISysConfigService configService) { this.configService = configService; } @Override public LishuiMessageConfig getConfig(String orgid) { if (StringUtils.isEmpty(orgid)) { return null; } SysConfig query = new SysConfig(); query.setConfigKey(CONFIG_KEY); query.setOrgid(orgid); List sysConfigs = configService.selectConfigList(query); if (CollectionUtils.isEmpty(sysConfigs)) { log.warn("【LishuiMessageConfigProviderImpl】机构 {} 未配置 {}", orgid, CONFIG_KEY); return null; } String configValue = sysConfigs.get(0).getConfigValue(); Map msgInfo = new HashMap<>(); if (StringUtils.isNotEmpty(configValue)) { try { msgInfo = new ObjectMapper().readValue(configValue, Map.class); } catch (Exception e) { log.error("【LishuiMessageConfigProviderImpl】解析 {} 失败,orgid:{},value:{},err:{}", CONFIG_KEY, orgid, configValue, e.getMessage(), e); return null; } } log.info("-----------丽水短信配置 map 的值为:{}", msgInfo); LishuiMessageConfig config = new LishuiMessageConfig(); config.setOrgid(orgid); config.setAddress(msgInfo.get("address")); config.setZuHuId(msgInfo.get("ZuHuID")); config.setZuHuMc(msgInfo.get("ZuHuMC")); config.setSendPersonId(msgInfo.get("sendPersonId")); config.setSendPersonName(msgInfo.get("sendPersonName")); config.setTokenUrl(msgInfo.get("tokenUrl")); return config; } @Override public String getToken(String orgid, String tokenUrl) { return LSHospTokenUtil.getToken(orgid, tokenUrl); } }