HomeManagementConfigServiceImpl.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.cyksj.service.home.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.lang.Assert;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.cyksj.common.exception.BusinessRuntimeException;
  8. import com.cyksj.mapper.GoodsDonMapper;
  9. import com.cyksj.mapper.manage.home.HomeManagementConfigMapper;
  10. import com.cyksj.model.entity.GoodsDon;
  11. import com.cyksj.model.entity.HomeManagementConfig;
  12. import com.cyksj.model.request.HomeManageConfigReq;
  13. import com.cyksj.service.home.HomeManagementConfigService;
  14. import lombok.RequiredArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.stereotype.Service;
  17. import java.util.List;
  18. /*
  19. *项目名: netflix
  20. *文件名: HomeManagementConfigServiceImpl
  21. *创建者: JavaZou
  22. *创建时间:2023/8/17 16:48
  23. */
  24. @Service
  25. @RequiredArgsConstructor
  26. @Slf4j
  27. public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementConfigMapper, HomeManagementConfig> implements HomeManagementConfigService {
  28. private final GoodsDonMapper goodsDonMapper;
  29. @Override
  30. public void saveOrUpdateConfig(HomeManageConfigReq config) {
  31. if (isSpecialType(config.getType())) {
  32. Assert.notEmpty(config.getTitle(), "标题不为空");
  33. HomeManagementConfig homeManagementConfig = new HomeManagementConfig();
  34. BeanUtil.copyProperties(config, homeManagementConfig);
  35. if (config.getType() == HomeManagementConfig.Type.ad) {
  36. if (config.getAdType() == null) {
  37. throw BusinessRuntimeException.getInstance("请选择对应的广告配置类型");
  38. }
  39. }
  40. this.saveOrUpdate(homeManagementConfig);
  41. return;
  42. }
  43. //首页平台推荐、首页精彩推荐
  44. List<Long> goodsIds = config.getGoodsIds();
  45. if (CollUtil.isEmpty(goodsIds)) {
  46. throw BusinessRuntimeException.getInstance("请选择对应的平台");
  47. }
  48. goodsIds.forEach(goodsId -> {
  49. GoodsDon goodsDon = goodsDonMapper.selectById(goodsId);
  50. if (goodsDon == null || !goodsDon.getStatus()) {
  51. return;
  52. }
  53. HomeManagementConfig homeManagementConfig = this.getOne(Wrappers.lambdaQuery(HomeManagementConfig.class)
  54. .ne(config.getId() != null, HomeManagementConfig::getId, config.getId())
  55. .eq(HomeManagementConfig::getGoodsId, goodsId)
  56. .eq(HomeManagementConfig::getType, config.getType())
  57. .eq(HomeManagementConfig::getDeleted, true).last("limit 1"));
  58. if (homeManagementConfig != null) {
  59. return;
  60. }
  61. homeManagementConfig = new HomeManagementConfig();
  62. BeanUtil.copyProperties(config, homeManagementConfig);
  63. homeManagementConfig.setGoodsId(goodsId);
  64. homeManagementConfig.setType(config.getType());
  65. this.saveOrUpdate(homeManagementConfig);
  66. });
  67. }
  68. public Boolean isSpecialType(HomeManagementConfig.Type type) {
  69. if (type == HomeManagementConfig.Type.rg || type == HomeManagementConfig.Type.ad) {
  70. return true;
  71. }
  72. return false;
  73. }
  74. }