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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package cc.mrbird.febs.mall.service.impl;
 
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.BannerDictionaryEnum;
import cc.mrbird.febs.common.enumerates.CommonDictionaryEnum;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.mall.dto.NewsListDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallNewsService;
import cc.mrbird.febs.mall.vo.NewsListVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
/**
 * @author wzy
 * @date 2021-09-28
 **/
@Slf4j
@Service
@RequiredArgsConstructor
public class ApiMallNewsServiceImpl extends ServiceImpl<MallNewsInfoMapper, MallNewsInfo> implements IApiMallNewsService {
 
    private final MallNewsCategoryMapper mallNewsCategoryMapper;
    private final PlatformBannerMapper platformBannerMapper;
    private final MallGoodsMapper mallGoodsMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
    @Override
    public List<MallNewsCategory> findNewsCategoryList() {
        return mallNewsCategoryMapper.selectList(null);
    }
 
    @Override
    public IPage<NewsListVo> findNewsInPage(NewsListDto newsListDto) {
        Page<NewsListVo> page = new Page<>(newsListDto.getPageNum(), newsListDto.getPageSize());
 
        MallNewsInfo mallNewsInfo = new MallNewsInfo();
        mallNewsInfo.setCategoryId(newsListDto.getCategoryId());
        return this.baseMapper.selectNewsVoInPage(page, mallNewsInfo);
    }
 
    @Override
    public List<NewsListVo> findTopNews() {
        Page<NewsListVo> page = new Page<>(1, 999);
        MallNewsInfo mallNewsInfo = new MallNewsInfo();
        mallNewsInfo.setIsTop(1);
 
        IPage<NewsListVo> pageList = this.baseMapper.selectNewsVoInPage(page, mallNewsInfo);
        return pageList.getRecords();
    }
 
    @Override
    public FebsResponse findAllBanner() {
        QueryWrapper<PlatformBanner> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("type", 1);
//        queryWrapper.orderByAsc("is_top");
//        queryWrapper.orderByAsc("created_time");
        queryWrapper.orderByAsc("sort");
        queryWrapper.orderByAsc("is_top");
        List<PlatformBanner> paymentMethodList = platformBannerMapper.selectList(queryWrapper);
        if(CollUtil.isNotEmpty(paymentMethodList)){
            for(PlatformBanner platformBanner : paymentMethodList){
                if("1".equals(platformBanner.getIsJump()) &&
                    1 == platformBanner.getIsInside()){
                    String jumpUrl = platformBanner.getJumpUrl();
                    QueryWrapper<MallGoods> queryWrapperGoods = new QueryWrapper<>();
                    queryWrapperGoods.eq("goods_no",jumpUrl);
                    List<MallGoods> goodsList = mallGoodsMapper.selectList(queryWrapperGoods);
                    if(CollUtil.isNotEmpty(goodsList)){
                        platformBanner.setGoodsId(goodsList.get(0).getId());
                    }
                }
            }
        }
        return new FebsResponse().success().data(paymentMethodList);
    }
 
    @Override
    public FebsResponse indexVideo() {
        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.VIDEO_URL_INDEX.getType(),
                DataDictionaryEnum.VIDEO_URL_INDEX.getCode()
        );
        return new FebsResponse().success().data(dataDictionaryCustom.getValue());
    }
 
    @Override
    public FebsResponse bannerByType(int type) {
 
        String timeStop = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                CommonDictionaryEnum.TIME_URL_INDEX.getType(),
                CommonDictionaryEnum.TIME_URL_INDEX.getCode()
        ).getValue();
        if (timeStop == null) {
            timeStop = "3";
        }
        QueryWrapper<PlatformBanner> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("type",type);
        queryWrapper.orderByAsc("sort");
        queryWrapper.orderByAsc("is_top");
        List<PlatformBanner> paymentMethodList = platformBannerMapper.selectList(queryWrapper);
        if(CollUtil.isNotEmpty(paymentMethodList)){
            if(BannerDictionaryEnum.OPEN_XCX.getType() == type)
            for(PlatformBanner platformBanner : paymentMethodList){
                platformBanner.setTimeStop(timeStop);
 
                if("1".equals(platformBanner.getIsJump()) &&
                        1 == platformBanner.getIsInside()){
                    String jumpUrl = platformBanner.getJumpUrl();
                    QueryWrapper<MallGoods> queryWrapperGoods = new QueryWrapper<>();
                    queryWrapperGoods.eq("goods_no",jumpUrl);
                    List<MallGoods> goodsList = mallGoodsMapper.selectList(queryWrapperGoods);
                    if(CollUtil.isNotEmpty(goodsList)){
                        platformBanner.setGoodsId(goodsList.get(0).getId());
                    }
                }
            }
        }
        return new FebsResponse().success().data(paymentMethodList);
    }
}