HomeManagementConfigServiceImpl.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. this.saveOrUpdate(homeManagementConfig);
  36. return;
  37. }
  38. //首页平台推荐、首页精彩推荐
  39. List<Long> goodsIds = config.getGoodsIds();
  40. if (CollUtil.isEmpty(goodsIds)) {
  41. throw BusinessRuntimeException.getInstance("请选择对应的平台");
  42. }
  43. goodsIds.forEach(goodsId -> {
  44. GoodsDon goodsDon = goodsDonMapper.selectById(goodsId);
  45. if (goodsDon == null || !goodsDon.getStatus()) {
  46. return;
  47. }
  48. HomeManagementConfig homeManagementConfig = this.getOne(Wrappers.lambdaQuery(HomeManagementConfig.class)
  49. .ne(config.getId() != null, HomeManagementConfig::getId, config.getId())
  50. .eq(HomeManagementConfig::getGoodsId, goodsId)
  51. .eq(HomeManagementConfig::getType, config.getType())
  52. .eq(HomeManagementConfig::getDeleted, true).last("limit 1"));
  53. if (homeManagementConfig != null) {
  54. return;
  55. }
  56. homeManagementConfig = new HomeManagementConfig();
  57. BeanUtil.copyProperties(config, homeManagementConfig);
  58. homeManagementConfig.setGoodsId(goodsId);
  59. homeManagementConfig.setType(config.getType());
  60. this.saveOrUpdate(homeManagementConfig);
  61. });
  62. }
  63. public Boolean isSpecialType(HomeManagementConfig.Type type) {
  64. if (type == HomeManagementConfig.Type.rg || type == HomeManagementConfig.Type.ad) {
  65. return true;
  66. }
  67. return false;
  68. }
  69. }