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;
|
|
/**
|
* 丽水短信机构级配置实现。
|
* <p>
|
* 统一了原先三套并存的查询方式:
|
* <ul>
|
* <li>{@code RyTask.ls 分支}:按机构查 {@code ls.msg.info};</li>
|
* <li>{@code ServiceSubtaskServiceImpl.smsSubTask}:用 {@code MsgLSEnum}(已废弃);</li>
|
* <li>{@code SmsRecordsServiceImpl.sendSMS}:又是第三套(本轮已改为委托发送方)。</li>
|
* </ul>
|
* 现在唯一入口就是本类:读 {@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<SysConfig> sysConfigs = configService.selectConfigList(query);
|
if (CollectionUtils.isEmpty(sysConfigs)) {
|
log.warn("【LishuiMessageConfigProviderImpl】机构 {} 未配置 {}", orgid, CONFIG_KEY);
|
return null;
|
}
|
|
String configValue = sysConfigs.get(0).getConfigValue();
|
Map<String, String> 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);
|
}
|
}
|