import com.yinjie.heating.business.dao.SystemDao import com.yinjie.heating.common.api.NoSqlKeysService import com.yinjie.heating.common.datas.RedisKeys import com.yinjie.heating.common.entity.system.ConfigValue import com.dySweetFishPlugin.redis.RedisService import com.sweetfish.convert.json.JsonConvert import org.apache.commons.lang3.StringUtils import org.rex.RMap import java.util.stream.Collectors static def createRunnable(RedisService redisService, NoSqlKeysService keysService, SystemDao systemDao, JsonConvert jsonConvert, String dataSourceId, long supplierCode) { return { RMap params = new RMap() redisService.del(keysService.getRedisKey(RedisKeys.KEY_CONFIGVALUE, supplierCode)) for (String key : RedisKeys.SUPPLIER_SYSTEM_CONFIGARR) { RMap initConfigParams = new RMap() initConfigParams.put("configKey", key) ConfigValue initConfig = systemDao.queryConfigValue(initConfigParams, dataSourceId, supplierCode) if ((initConfig == null) || (StringUtils.isEmpty(initConfig.getConfigKey()))) { initConfig = new ConfigValue() initConfig.setConfigKey(key) initConfig.setConfigName("") initConfig.setConfigValue1("") initConfig.setConfigValue2("") initConfig.setConfigValue3("") systemDao.addConfigValueSync(initConfig, dataSourceId, supplierCode) } } for (String key : RedisKeys.SUPPLIER_SITEINFO_CONFIGARR) { RMap initConfigParams = new RMap() initConfigParams.put("configKey", key) ConfigValue initConfig = systemDao.queryConfigValue(initConfigParams, dataSourceId, supplierCode) if ((initConfig == null) || (StringUtils.isEmpty(initConfig.getConfigKey()))) { initConfig = new ConfigValue(); initConfig.setConfigKey(key) initConfig.setConfigName("") initConfig.setConfigValue1("") initConfig.setConfigValue2("") initConfig.setConfigValue3("") systemDao.addConfigValueSync(initConfig, dataSourceId, supplierCode) } } List configValueList = systemDao.queryAllConfigValues(params, dataSourceId, supplierCode) Map configValueMap = configValueList.stream().collect( Collectors.toMap(ConfigValue::getConfigKey, x -> jsonConvert.convertTo(x)) ) if (!configValueMap.isEmpty()) { redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_CONFIGVALUE, supplierCode), configValueMap) } } as Runnable } //groovy最后一个表达式的值为返回 createRunnable(redisService, keysService, systemDao, jsonConvert, dataSourceId, supplierCode)