| | |
| | | |
| | | 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.domain.vo.WishSettingVO; |
| | | 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.concurrent.atomic.AtomicReference; |
| | | import java.util.stream.Collectors; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | } |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取心愿求购设置 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WishSettingVO getWishSetting() { |
| | | WishSettingVO vo = new WishSettingVO(); |
| | | CustomConfig customConfig = getCustomConfigByKey( |
| | | ConfigEnum.WISH_DESCRIPTION.getKey()).orElse(new CustomConfig()); |
| | | List<CustomConfig> list = this.lambdaQuery() |
| | | .in(CustomConfig::getConfigKey, ConfigEnum.WISH_DESCRIPTION.getKey(), |
| | | ConfigEnum.WISH_SHARE_TITLE.getKey(), |
| | | ConfigEnum.WISH_SHARE_IMG_URL.getKey()) |
| | | .eq(CustomConfig::getDelFlag, 0).list(); |
| | | for (CustomConfig config : list) { |
| | | if (ConfigEnum.WISH_DESCRIPTION.getKey().equals(config.getConfigKey())) { |
| | | vo.setDescription(customConfig.getConfigValue()); |
| | | } else if (ConfigEnum.WISH_SHARE_TITLE.getKey().equals(config.getConfigKey())) { |
| | | vo.setShareTitle(config.getConfigValue()); |
| | | } else if (ConfigEnum.WISH_SHARE_IMG_URL.getKey().equals(config.getConfigKey())) { |
| | | vo.setShareImgUrl(config.getConfigValue()); |
| | | } |
| | | } |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 保存心愿求购说明 |
| | | * |
| | | * @param vo 保存心愿求购说明 |
| | | */ |
| | | @Override |
| | | public void saveWishDescription(WishSettingVO vo) { |
| | | String description = vo.getDescription(); |
| | | String shareTitle = vo.getShareTitle(); |
| | | String shareImgUrl = vo.getShareImgUrl(); |
| | | CustomConfig wishDescription = getCustomConfigByKey( |
| | | ConfigEnum.WISH_DESCRIPTION.getKey()).orElseGet(() -> { |
| | | CustomConfig customConfig = new CustomConfig(); |
| | | customConfig.setConfigKey(ConfigEnum.WISH_DESCRIPTION.getKey()); |
| | | customConfig.setConfigName(ConfigEnum.WISH_DESCRIPTION.getKeyName()); |
| | | customConfig.setConfigType(ConfigEnum.WISH_DESCRIPTION.getKeyType()); |
| | | return customConfig; |
| | | }); |
| | | wishDescription.setConfigValue(description); |
| | | CustomConfig wishShareTitle = getCustomConfigByKey( |
| | | ConfigEnum.WISH_SHARE_TITLE.getKey()).orElseGet(() -> { |
| | | CustomConfig customConfig = new CustomConfig(); |
| | | customConfig.setConfigKey(ConfigEnum.WISH_SHARE_TITLE.getKey()); |
| | | customConfig.setConfigName(ConfigEnum.WISH_SHARE_TITLE.getKeyName()); |
| | | customConfig.setConfigType(ConfigEnum.WISH_SHARE_TITLE.getKeyType()); |
| | | return customConfig; |
| | | }); |
| | | wishShareTitle.setConfigValue(shareTitle); |
| | | CustomConfig wishShareImgUrl = getCustomConfigByKey( |
| | | ConfigEnum.WISH_SHARE_IMG_URL.getKey()).orElseGet(() -> { |
| | | CustomConfig customConfig = new CustomConfig(); |
| | | customConfig.setConfigKey(ConfigEnum.WISH_SHARE_IMG_URL.getKey()); |
| | | customConfig.setConfigName(ConfigEnum.WISH_SHARE_IMG_URL.getKeyName()); |
| | | customConfig.setConfigType(ConfigEnum.WISH_SHARE_IMG_URL.getKeyType()); |
| | | return customConfig; |
| | | }); |
| | | wishShareImgUrl.setConfigValue(shareImgUrl); |
| | | saveOrUpdateBatch( |
| | | Lists.newArrayList(wishDescription, wishShareTitle, wishShareImgUrl)); |
| | | } |
| | | |
| | | /** |
| | | * 保存保证金退还 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public void saveRefundOfDeposit(String refundOfDeposit) { |
| | | CustomConfig wishDescription = getCustomConfigByKey( |
| | | ConfigEnum.REFUND_OF_DEPOSIT.getKey()).orElseGet(() -> { |
| | | CustomConfig customConfig = new CustomConfig(); |
| | | customConfig.setConfigKey(ConfigEnum.REFUND_OF_DEPOSIT.getKey()); |
| | | customConfig.setConfigName(ConfigEnum.REFUND_OF_DEPOSIT.getKeyName()); |
| | | customConfig.setConfigType(ConfigEnum.REFUND_OF_DEPOSIT.getKeyType()); |
| | | return customConfig; |
| | | }); |
| | | wishDescription.setConfigValue(refundOfDeposit); |
| | | saveOrUpdate(wishDescription); |
| | | } |
| | | |
| | | @Override |
| | | public String getRefundOfDeposit() { |
| | | AtomicReference<String> refundOfDeposit = new AtomicReference<>(""); |
| | | getCustomConfigByKey( |
| | | ConfigEnum.REFUND_OF_DEPOSIT.getKey()).ifPresent( |
| | | customConfig -> |
| | | refundOfDeposit.set(customConfig.getConfigValue()) |
| | | ); |
| | | return refundOfDeposit.get(); |
| | | } |
| | | } |