From 886ac13879393b44c4d44b1f77b7abae524ca2bc Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 26 七月 2024 09:10:18 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 160 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java index 4f41ff5..a8c1ab7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java @@ -2,15 +2,22 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.system.api.constants.ConfigEnum; import com.ruoyi.system.api.domain.CustomConfig; +import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.domain.dto.PointsConfigDTO; import com.ruoyi.system.domain.vo.CustomConfigVO; import com.ruoyi.system.mapper.CustomConfigMapper; import com.ruoyi.system.service.ICustomConfigService; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -59,7 +66,7 @@ private Optional<CustomConfig> getCustomConfigByKey(String key) { return this.lambdaQuery() - .eq(CustomConfig::getConfigType, key) + .eq(CustomConfig::getConfigKey, key) .eq(CustomConfig::getDelFlag, 0).oneOpt(); } @@ -69,12 +76,22 @@ * @return List<CustomConfigVO> */ @Override - public List<CustomConfigVO> getPointsConfig() { + public PointsConfigDTO getPointsConfig() { + PointsConfigDTO dto = new PointsConfigDTO(); List<CustomConfig> list = this.lambdaQuery() - .in(CustomConfig::getConfigType, ConfigEnum.MEMBER_POINTS_MONEY.getKey(), + .in(CustomConfig::getConfigKey, ConfigEnum.MEMBER_POINTS_MONEY.getKey(), ConfigEnum.MEMBER_POINTS_POINTS.getKey()) .eq(CustomConfig::getDelFlag, 0).list(); - return BeanUtils.copyList(list, CustomConfigVO.class); + for (CustomConfig customConfig : list) { + if (ConfigEnum.MEMBER_POINTS_MONEY.getKey().equals(customConfig.getConfigKey())) { + dto.setConsumeAmount( + BigDecimal.valueOf(Double.parseDouble(customConfig.getConfigValue()))); + } + if (ConfigEnum.MEMBER_POINTS_POINTS.getKey().equals(customConfig.getConfigKey())) { + dto.setPoints(Integer.parseInt(customConfig.getConfigValue())); + } + } + return dto; } /** @@ -109,4 +126,143 @@ orderDescription.setConfigValue(description); this.saveOrUpdate(orderDescription); } + + /** + * 售后设置 + * + * @param dto 售后设置对象 + */ + @Override + @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) + public void saveAfterSaleSetting(MgtAfterSaleSettingDTO dto) { + handleConfigSetting(dto.getReceiverName(), ConfigEnum.RETURN_ADDRESS_USER_NAME); + handleConfigSetting(dto.getReceiverPhone(), ConfigEnum.RETURN_ADDRESS_USER_PHONE); + handleConfigSetting(dto.getReceiverAddress(), ConfigEnum.RETURN_ADDRESS_USER_ADDRESS); + handleConfigSetting(dto.getReturnCycle().toString(), ConfigEnum.RETURN_CYCLE); + } + + private void handleConfigSetting(String value, ConfigEnum configEnum) { + Optional<CustomConfig> configSettingOptional = getCustomConfigByKey(configEnum.getKey()); + CustomConfig configSetting = configSettingOptional.orElseGet(() -> { + CustomConfig config = new CustomConfig(); + config.setConfigKey(configEnum.getKey()); + config.setConfigType(configEnum.getKeyType()); + config.setConfigName(configEnum.getKeyName()); + return config; + }); + configSetting.setConfigValue(value); + this.saveOrUpdate(configSetting); + } + + /** + * 获取售后设置 + * + * @return List<CustomConfigVO> + */ + @Override + public MgtAfterSaleSettingDTO getAfterSaleSetting() { + MgtAfterSaleSettingDTO dto = new MgtAfterSaleSettingDTO(); + List<CustomConfig> list = this.lambdaQuery() + .in(CustomConfig::getConfigKey, ConfigEnum.RETURN_ADDRESS_USER_NAME, + ConfigEnum.RETURN_ADDRESS_USER_PHONE, + ConfigEnum.RETURN_ADDRESS_USER_ADDRESS, ConfigEnum.RETURN_CYCLE) + .eq(CustomConfig::getDelFlag, 0).list(); + for (CustomConfig customConfig : list) { + if (ConfigEnum.RETURN_ADDRESS_USER_NAME.getKey().equals(customConfig.getConfigKey())) { + dto.setReceiverName(customConfig.getConfigValue()); + } + if (ConfigEnum.RETURN_ADDRESS_USER_PHONE.getKey().equals(customConfig.getConfigKey())) { + dto.setReceiverPhone(customConfig.getConfigValue()); + } + if (ConfigEnum.RETURN_ADDRESS_USER_ADDRESS.getKey() + .equals(customConfig.getConfigKey())) { + dto.setReceiverAddress(customConfig.getConfigValue()); + } + if (ConfigEnum.RETURN_CYCLE.getKey().equals(customConfig.getConfigKey())) { + dto.setReturnCycle(Integer.parseInt(customConfig.getConfigValue())); + } + } + return dto; + } + + /** + * 保存客服电话 + * + * @param phone 客服电话 + */ + @Override + public void updateServicePhone(String phone) { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + if (customConfigByKey.isPresent()) { + CustomConfig customConfig = customConfigByKey.get(); + String[] split = customConfig.getConfigValue().split(","); + if (split.length > 1) { + throw new ServiceException("客户电话最多配置两个"); + } + boolean flag = Arrays.asList(split).contains(phone); + if (flag) { + throw new ServiceException("客户电话已存在"); + } + + if (StringUtils.isBlank(customConfig.getConfigValue())) { + customConfig.setConfigValue(phone); + } else { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(customConfig.getConfigValue()); + stringBuilder.append(","); + stringBuilder.append(phone); + customConfig.setConfigValue(stringBuilder.toString()); + } + customConfig.setUpdateTime(LocalDateTime.now()); + this.updateById(customConfig); + } else { + CustomConfig config = new CustomConfig(); + config.setConfigKey(ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + config.setConfigType(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyType()); + config.setConfigName(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyName()); + config.setConfigValue(phone); + config.setCreateTime(LocalDateTime.now()); + this.save(config); + } + } + + /** + * 获取客服电话 + * + * @return 客服电话 + */ + @Override + public String getServicePhone() { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + return customConfigByKey.map(CustomConfig::getConfigValue).orElse(null); + } + + /** + * 删除客户电话 + * + * @param phone 客服电话 + */ + @Override + public void deleteServicePhone(String phone) { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + if (customConfigByKey.isPresent()) { + CustomConfig customConfig = customConfigByKey.get(); + String configValue = customConfig.getConfigValue(); + if (StringUtils.isNotBlank(configValue)) { + String[] split = configValue.split(","); + // 判断当前phone是否存在 + boolean flag = Arrays.asList(split).contains(phone); + if (flag) { + // 删除 split 中与phone相同的元素 + configValue = Arrays.stream(split).filter(s -> !s.equals(phone)) + .collect(Collectors.joining(",")); + customConfig.setConfigValue(configValue); + this.updateById(customConfig); + } + } + } + } } -- Gitblit v1.7.1