package com.panzhihua.service_community.service.impl;
|
|
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
|
* @description: 广告
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-12-28 15:41
|
**/
|
@Service
|
public class ComOpsAdvServiceImpl implements ComOpsAdvService {
|
@Resource
|
private ComOpsAdvJumpDAO comOpsAdvJumpDAO;
|
@Resource
|
private ComOpsAdvDAO comOpsAdvDAO;
|
@Resource
|
private ComOpsAdvPosDAO comOpsAdvPosDAO;
|
|
/**
|
* 获取广告跳转内容配置
|
*
|
* @return 跳转内容集合
|
*/
|
@Override
|
public R getJumpContent() {
|
List<ComOpsAdvJumpVO> comOpsAdvJumpVOS = new ArrayList<>();
|
List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(new QueryWrapper<>());
|
if (!ObjectUtils.isEmpty(comOpsAdvJumpDOS)) {
|
comOpsAdvJumpDOS.forEach(comOpsAdvJumpDO -> {
|
ComOpsAdvJumpVO comOpsAdvJumpVO = new ComOpsAdvJumpVO();
|
comOpsAdvJumpVO.setId(comOpsAdvJumpDO.getId());
|
comOpsAdvJumpVO.setJumpContent(comOpsAdvJumpDO.getJumpContent());
|
comOpsAdvJumpVOS.add(comOpsAdvJumpVO);
|
});
|
}
|
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(Integer type) {
|
List<ComOpsAdvDO> comOpsAdvDOS = comOpsAdvDAO
|
.selectList(new QueryWrapper<ComOpsAdvDO>().lambda().eq(ComOpsAdvDO::getPosId,type)
|
.last(" and 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();
|
}
|
}
|