mitao
2024-06-21 ee9688b912bb993b54252a26f8ad9e0e04df21c3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.ruoyi.promotion.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.enums.ListingStatusEnum;
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.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionBannerDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionBannerQuery;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionBannerUpdDTO;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionBannerVO;
import com.ruoyi.promotion.domain.PromotionBanner;
import com.ruoyi.promotion.mapper.PromotionBannerMapper;
import com.ruoyi.promotion.service.IPromotionBannerService;
import java.util.List;
import org.springframework.stereotype.Service;
 
/**
 * <p>
 * 轮播图表 服务实现类
 * </p>
 *
 * @author mitao
 * @since 2024-05-16
 */
@Service
public class PromotionBannerServiceImpl extends ServiceImpl<PromotionBannerMapper, PromotionBanner> implements IPromotionBannerService {
 
    @Override
    public List<PromotionBanner> getBaanerList(Integer bannerType) {
        LambdaQueryWrapper<PromotionBanner> wrapper= Wrappers.lambdaQuery();
        wrapper.eq(PromotionBanner::getBannerType,bannerType);
        wrapper.eq(PromotionBanner::getDelFlag,0);
        wrapper.eq(PromotionBanner::getListingStatus, ListingStatusEnum.ON_SHELVES);
        wrapper.orderByDesc(PromotionBanner::getSortNum);
        return this.list(wrapper);
    }
 
    @Override
    public PageDTO<MgtPromotionBannerVO> getBannerPage(MgtPromotionBannerQuery query) {
        Page<PromotionBanner> page = this.lambdaQuery()
                .eq(StringUtils.isNotNull(query.getListingStatus()),
                        PromotionBanner::getListingStatus, query.getListingStatus())
                .like(StringUtils.isNotBlank(query.getBannerName()), PromotionBanner::getBannerName,
                        query.getBannerName())
                .orderByDesc(PromotionBanner::getCreateTime)
                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
        if (StringUtils.isEmpty(page.getRecords())) {
            return PageDTO.empty(page);
        }
        return PageDTO.of(page, MgtPromotionBannerVO.class);
    }
 
    /**
     * 添加/编辑轮播图
     *
     * @param dto 轮播图数据传输对象
     */
    @Override
    public void savePromotionBanner(MgtPromotionBannerDTO dto) {
        PromotionBanner promotionBanner = BeanUtils.copyBean(dto, PromotionBanner.class);
        // 添加
        if (StringUtils.isNull(promotionBanner.getId())) {
            if (StringUtils.isNull(promotionBanner.getBannerType())) {
                throw new ServiceException("轮播图类型不能为空");
            }
            this.save(promotionBanner);
        } else {
            // 更新
            this.updateById(promotionBanner);
        }
    }
 
    /**
     * 删除轮播图
     *
     * @param id 轮播图id
     */
    @Override
    public void delPromotionBanner(Long id) {
        this.removeById(id);
    }
 
    /**
     * 查看轮播图详情
     *
     * @param id 轮播图id
     * @return MgtPromotionBannerVO
     */
    @Override
    public MgtPromotionBannerVO getPromotionBanner(Long id) {
        PromotionBanner promotionBanner = this.getById(id);
        if (StringUtils.isNull(promotionBanner)) {
            throw new ServiceException("轮播图不存在");
        }
        return BeanUtils.copyBean(promotionBanner, MgtPromotionBannerVO.class);
    }
 
    /**
     * 轮播图 上架/下架
     *
     * @param dto 轮播图状态数据传输对象
     */
    @Override
    public void updStatus(MgtPromotionBannerUpdDTO dto) {
        this.lambdaUpdate().set(PromotionBanner::getListingStatus, dto.getListingStatus())
                .eq(PromotionBanner::getId, dto.getId()).update();
    }
}