From a45ef0534356b00a0b4a3f5888b74c900b83978b Mon Sep 17 00:00:00 2001
From: rentaiming <806181662@qq.com>
Date: 星期日, 14 七月 2024 15:15:35 +0800
Subject: [PATCH] 用户端拍卖修改
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 212 insertions(+), 1 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 b144cf6..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,12 +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;
@@ -23,6 +33,11 @@
@Service
public class CustomConfigServiceImpl extends ServiceImpl<CustomConfigMapper, CustomConfig> implements ICustomConfigService {
+ /**
+ * 保存积分设置
+ *
+ * @param dto 积分配置数据传输对象
+ */
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void savePointsSettings(PointsConfigDTO dto) {
@@ -51,7 +66,203 @@
private Optional<CustomConfig> getCustomConfigByKey(String key) {
return this.lambdaQuery()
- .eq(CustomConfig::getConfigType, key)
+ .eq(CustomConfig::getConfigKey, key)
.eq(CustomConfig::getDelFlag, 0).oneOpt();
}
+
+ /**
+ * 获取积分设置
+ *
+ * @return List<CustomConfigVO>
+ */
+ @Override
+ public PointsConfigDTO getPointsConfig() {
+ PointsConfigDTO dto = new PointsConfigDTO();
+ List<CustomConfig> list = this.lambdaQuery()
+ .in(CustomConfig::getConfigKey, ConfigEnum.MEMBER_POINTS_MONEY.getKey(),
+ ConfigEnum.MEMBER_POINTS_POINTS.getKey())
+ .eq(CustomConfig::getDelFlag, 0).list();
+ 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;
+ }
+
+ /**
+ * 获取订单说明设置
+ *
+ * @return CustomConfigVO
+ */
+ @Override
+ public CustomConfigVO getOrderDesc() {
+ CustomConfigVO vo;
+ CustomConfig customConfig = getCustomConfigByKey(
+ ConfigEnum.MALL_ORDER_DESCRIPTION.getKey()).orElse(new CustomConfig());
+ vo = BeanUtils.copyBean(customConfig, CustomConfigVO.class);
+ return vo;
+ }
+
+ /**
+ * 订单说明设置
+ *
+ * @param description 订单说明
+ */
+ @Override
+ public void saveOrderDescription(String description) {
+ CustomConfig orderDescription = getCustomConfigByKey(
+ ConfigEnum.MALL_ORDER_DESCRIPTION.getKey()).orElseGet(() -> {
+ CustomConfig customConfig = new CustomConfig();
+ customConfig.setConfigKey(ConfigEnum.MALL_ORDER_DESCRIPTION.getKey());
+ customConfig.setConfigName(ConfigEnum.MALL_ORDER_DESCRIPTION.getKeyName());
+ customConfig.setConfigType(ConfigEnum.MALL_ORDER_DESCRIPTION.getKeyType());
+ return customConfig;
+ });
+ 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