package com.xiaopeng.operation.service.impl;
|
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.xiaopeng.api.model.operation.XpWhitelist;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.operation.mapper.XpBannerMapper;
|
import com.xiaopeng.api.model.operation.XpBanner;
|
import com.xiaopeng.operation.query.BannerPageListQuery;
|
import com.xiaopeng.operation.query.WhitelistPageListQuery;
|
import com.xiaopeng.operation.service.XpBannerService;
|
import com.xiaopeng.operation.vo.XpBannerListVo;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* banner管理 服务实现类
|
* </p>
|
*
|
* @author liu
|
* @since 2026-02-03
|
*/
|
@Service
|
public class XpBannerServiceImpl extends ServiceImpl<XpBannerMapper, XpBanner> implements XpBannerService {
|
|
@Override
|
public List<XpBannerListVo> getXpBannerList() {
|
LambdaQueryWrapper<XpBanner> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(XpBanner::getBannerStatus,1);
|
// 当前时间在开始和结束时间范围内
|
List<XpBanner> list = list(wrapper.last(" and now() between start_time and end_time"));
|
|
// 组装数据
|
if (list != null && !list.isEmpty()) {
|
return list.stream().map(item -> {
|
XpBannerListVo vo = new XpBannerListVo();
|
vo.setId(item.getId());
|
vo.setJumpType(item.getJumpType());
|
vo.setJumpUrl(item.getJumpUrl());
|
JSONObject jsonObject = JSON.parseArray(item.getBannerPictures()).getJSONObject(0);
|
vo.setImageUrl(jsonObject.getString("url"));
|
return vo;
|
}).collect(Collectors.toList());
|
}
|
|
return Collections.emptyList();
|
}
|
|
@Override
|
public PageInfo<XpBanner> pageList(BannerPageListQuery query) {
|
PageInfo<XpBanner> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
|
List<XpBanner> list = this.baseMapper.pageList(pageInfo,query);
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
}
|