101captain
2021-11-09 e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAdvServiceImpl.java
@@ -1,16 +1,36 @@
package com.panzhihua.service_community.service.impl;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.advertisement.ComOpsAdvJumpVO;
import com.panzhihua.service_community.dao.ComOpsAdvJumpDAO;
import com.panzhihua.service_community.model.dos.ComOpsAdvJumpDO;
import com.panzhihua.service_community.service.ComOpsAdvService;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvJumpDTO;
import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.advertisement.ComOpsAdvJumpVO;
import com.panzhihua.common.model.vos.advertisement.ComOpsAdvPosVO;
import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
import com.panzhihua.service_community.dao.ComOpsAdvDAO;
import com.panzhihua.service_community.dao.ComOpsAdvJumpDAO;
import com.panzhihua.service_community.dao.ComOpsAdvPosDAO;
import com.panzhihua.service_community.model.dos.ComOpsAdvDO;
import com.panzhihua.service_community.model.dos.ComOpsAdvJumpDO;
import com.panzhihua.service_community.model.dos.ComOpsAdvPosDO;
import com.panzhihua.service_community.service.ComOpsAdvService;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -22,6 +42,11 @@
public class ComOpsAdvServiceImpl implements ComOpsAdvService {
    @Resource
    private ComOpsAdvJumpDAO comOpsAdvJumpDAO;
    @Resource
    private ComOpsAdvDAO comOpsAdvDAO;
    @Resource
    private ComOpsAdvPosDAO comOpsAdvPosDAO;
    /**
     * 获取广告跳转内容配置
     *
@@ -29,11 +54,11 @@
     */
    @Override
    public R getJumpContent() {
        List<ComOpsAdvJumpVO> comOpsAdvJumpVOS=new ArrayList<>();
        List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(null);
        List<ComOpsAdvJumpVO> comOpsAdvJumpVOS = new ArrayList<>();
        List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(new QueryWrapper<>());
        if (!ObjectUtils.isEmpty(comOpsAdvJumpDOS)) {
            comOpsAdvJumpDOS.forEach(comOpsAdvJumpDO -> {
                ComOpsAdvJumpVO comOpsAdvJumpVO=new ComOpsAdvJumpVO();
                ComOpsAdvJumpVO comOpsAdvJumpVO = new ComOpsAdvJumpVO();
                comOpsAdvJumpVO.setId(comOpsAdvJumpDO.getId());
                comOpsAdvJumpVO.setJumpContent(comOpsAdvJumpDO.getJumpContent());
                comOpsAdvJumpVOS.add(comOpsAdvJumpVO);
@@ -41,4 +66,201 @@
        }
        return R.ok(comOpsAdvJumpVOS);
    }
    /**
     * 编辑运营后台系统配置
     *
     * @param appletesBackstageConfigDTO
     *            编辑内容
     * @return 编辑结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R putJumpContent(AppletesBackstageConfigDTO appletesBackstageConfigDTO) {
        List<ComOpsAdvJumpDTO> comOpsAdvJumpDTOS = appletesBackstageConfigDTO.getComOpsAdvJumpDTOS();
        if (ObjectUtils.isEmpty(comOpsAdvJumpDTOS)) {
            return R.fail("广告跳转内容不能为空");
        }
        // 查询所有正在使用的跳转内容id
        List<Long> ids = comOpsAdvDAO.selectAllBeUsedContent();
        List<Long> notDeleteIds = new ArrayList<>();
        List<Long> collect =
            comOpsAdvJumpDTOS.stream().map(comOpsAdvJumpDTO -> comOpsAdvJumpDTO.getId()).collect(Collectors.toList());
        if (!ObjectUtils.isEmpty(ids)) {
            ids.forEach(aLong -> {
                if (!collect.contains(aLong)) {
                    ComOpsAdvJumpDO comOpsAdvJumpDO = comOpsAdvJumpDAO.selectById(aLong);
                    if (!ObjectUtils.isEmpty(comOpsAdvJumpDO)) {
                        String jumpContent = comOpsAdvJumpDO.getJumpContent();
                        throw new ServiceException(jumpContent + " 已经在使用无法删除");
                    }
                } else {
                    notDeleteIds.add(aLong);
                }
            });
        }
        if (!ObjectUtils.isEmpty(notDeleteIds)) {
            comOpsAdvJumpDAO
                .delete(new QueryWrapper<ComOpsAdvJumpDO>().lambda().notIn(ComOpsAdvJumpDO::getId, notDeleteIds));
        } else {
            comOpsAdvJumpDAO.delete(null);
        }
        comOpsAdvJumpDTOS.forEach(comOpsAdvJumpDTO -> {
            Long id = comOpsAdvJumpDTO.getId();
            if (!ids.contains(id)) {
                ComOpsAdvJumpDO comOpsAdvJumpDO = new ComOpsAdvJumpDO();
                String jumpContent = comOpsAdvJumpDTO.getJumpContent();
                if (ObjectUtils.isEmpty(jumpContent)) {
                    throw new ServiceException("广告跳转内容不能为空");
                }
                comOpsAdvJumpDO.setJumpContent(jumpContent);
                comOpsAdvJumpDAO.insert(comOpsAdvJumpDO);
            }
        });
        return R.ok();
    }
    /**
     * 首页广告banner
     *
     * @return 广告列表
     */
    @Override
    public R listAdvertisement() {
        List<ComOpsAdvDO> comOpsAdvDOS = comOpsAdvDAO
            .selectList(new QueryWrapper<ComOpsAdvDO>().last(" where SYSDATE() BETWEEN on_at and off_at  "));
        List<ComOpsAdvVO> comOpsAdvVOS = new ArrayList<>();
        if (!ObjectUtils.isEmpty(comOpsAdvDOS)) {
            comOpsAdvDOS.forEach(comOpsAdvDO -> {
                ComOpsAdvVO comOpsAdvVO = new ComOpsAdvVO();
                BeanUtils.copyProperties(comOpsAdvDO, comOpsAdvVO);
                comOpsAdvVOS.add(comOpsAdvVO);
            });
        }
        return R.ok(comOpsAdvVOS);
    }
    /**
     * 新增广告
     *
     * @param comOpsAdvDTO
     * @return 新增结果
     */
    @Override
    public R addAdvertisement(ComOpsAdvDTO comOpsAdvDTO) {
        ComOpsAdvDO comOpsAdvDO = new ComOpsAdvDO();
        BeanUtils.copyProperties(comOpsAdvDTO, comOpsAdvDO);
        int insert = comOpsAdvDAO.insert(comOpsAdvDO);
        if (insert > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 编辑广告
     *
     * @param comOpsAdvDTO
     *            编辑内容
     * @return 编辑结果
     */
    @Override
    public R putAdvertisement(ComOpsAdvDTO comOpsAdvDTO) {
        ComOpsAdvDO comOpsAdvDO = new ComOpsAdvDO();
        BeanUtils.copyProperties(comOpsAdvDTO, comOpsAdvDO);
        int update = comOpsAdvDAO.updateById(comOpsAdvDO);
        if (update > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 广告位置下拉列表
     *
     * @return 位置集合
     */
    @Override
    public R listadvpos() {
        List<ComOpsAdvPosDO> comOpsAdvPosDOS = comOpsAdvPosDAO.selectList(new LambdaQueryWrapper<>());
        List<ComOpsAdvPosVO> comOpsAdvPosVOS = new ArrayList<>();
        comOpsAdvPosDOS.forEach(comOpsAdvPosDO -> {
            ComOpsAdvPosVO comOpsAdvPosVO = new ComOpsAdvPosVO();
            BeanUtils.copyProperties(comOpsAdvPosDO, comOpsAdvPosVO);
            comOpsAdvPosVOS.add(comOpsAdvPosVO);
        });
        return R.ok(comOpsAdvPosVOS);
    }
    /**
     * 跳转内容下拉集合
     *
     * @return 跳转集合
     */
    @Override
    public R listAdvjump() {
        List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(new LambdaQueryWrapper<>());
        List<ComOpsAdvJumpVO> comOpsAdvJumpVOS = new ArrayList<>();
        if (!ObjectUtils.isEmpty(comOpsAdvJumpDOS)) {
            comOpsAdvJumpDOS.forEach(comOpsAdvJumpDO -> {
                ComOpsAdvJumpVO comOpsAdvJumpVO = new ComOpsAdvJumpVO();
                BeanUtils.copyProperties(comOpsAdvJumpDO, comOpsAdvJumpVO);
                comOpsAdvJumpVOS.add(comOpsAdvJumpVO);
            });
        }
        return R.ok(comOpsAdvJumpVOS);
    }
    /**
     * 分页查询广告
     *
     * @param pageComOpsAdvDTO
     *            查询内容
     * @return 查询结果 ComOpsAdvVO
     */
    @Override
    public R pageAdvertisement(PageComOpsAdvDTO pageComOpsAdvDTO) {
        Page page = new Page<>();
        Long pageNum = pageComOpsAdvDTO.getPageNum();
        Long pageSize = pageComOpsAdvDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComOpsAdvVO> iPage = comOpsAdvDAO.pageAdvertisement(page, pageComOpsAdvDTO);
        return R.ok(iPage);
    }
    /**
     * 广告详情
     *
     * @param id
     *            主键
     * @return 广告内容 ComOpsAdvVO
     */
    @Override
    public R detailAdvertisement(Long id) {
        ComOpsAdvVO comOpsAdvVO = comOpsAdvDAO.detailAdvertisement(id);
        return R.ok(comOpsAdvVO);
    }
    /**
     * 删除广告
     *
     * @param id
     *            主键
     * @return 删除结果
     */
    @Override
    public R deleteAdvertisement(Long id) {
        int delete = comOpsAdvDAO.deleteById(id);
        if (delete > 0) {
            return R.ok();
        }
        return R.fail();
    }
}