| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.common.collect.Lists; |
| | | import com.ruoyi.system.api.constants.ConfigEnum; |
| | | import com.ruoyi.system.api.domain.CustomConfig; |
| | | import com.ruoyi.system.domain.dto.PointsConfigDTO; |
| | | import com.ruoyi.system.mapper.CustomConfigMapper; |
| | | import com.ruoyi.system.service.ICustomConfigService; |
| | | import java.util.Optional; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class CustomConfigServiceImpl extends ServiceImpl<CustomConfigMapper, CustomConfig> implements ICustomConfigService { |
| | | |
| | | @Override |
| | | @Transactional(propagation = Propagation.REQUIRES_NEW) |
| | | public void savePointsSettings(PointsConfigDTO dto) { |
| | | Optional<CustomConfig> customConfigOptional = getCustomConfigByKey( |
| | | ConfigEnum.MEMBER_POINTS_MONEY.getKey()); |
| | | CustomConfig moneyConfig = customConfigOptional.orElseGet(() -> { |
| | | CustomConfig config = new CustomConfig(); |
| | | config.setConfigKey(ConfigEnum.MEMBER_POINTS_MONEY.getKey()); |
| | | config.setConfigType(ConfigEnum.MEMBER_POINTS_MONEY.getKeyType()); |
| | | config.setConfigName(ConfigEnum.MEMBER_POINTS_MONEY.getKeyName()); |
| | | return config; |
| | | }); |
| | | moneyConfig.setConfigValue(dto.getConsumeAmount().toString()); |
| | | Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( |
| | | ConfigEnum.MEMBER_POINTS_POINTS.getKey()); |
| | | CustomConfig pointsConfig = customConfigByKey.orElseGet(() -> { |
| | | CustomConfig config = new CustomConfig(); |
| | | config.setConfigKey(ConfigEnum.MEMBER_POINTS_POINTS.getKey()); |
| | | config.setConfigType(ConfigEnum.MEMBER_POINTS_POINTS.getKeyType()); |
| | | config.setConfigName(ConfigEnum.MEMBER_POINTS_POINTS.getKeyName()); |
| | | return config; |
| | | }); |
| | | pointsConfig.setConfigValue(dto.getPoints().toString()); |
| | | this.saveOrUpdateBatch(Lists.newArrayList(moneyConfig, pointsConfig)); |
| | | } |
| | | |
| | | private Optional<CustomConfig> getCustomConfigByKey(String key) { |
| | | return this.lambdaQuery() |
| | | .eq(CustomConfig::getConfigType, key) |
| | | .eq(CustomConfig::getDelFlag, 0).oneOpt(); |
| | | } |
| | | } |