import com.dderp.business.dao.SystemDao import com.dderp.common.api.NoSqlKeysService import com.dderp.common.datas.RedisKeys import com.dderp.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)