|
@@ -1,12 +1,30 @@
|
|
package com.zanxiang.manage.service.Impl;
|
|
package com.zanxiang.manage.service.Impl;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.zanxiang.common.enums.DeleteEnum;
|
|
|
|
+import com.zanxiang.common.enums.StatusEnum;
|
|
|
|
+import com.zanxiang.common.exception.BaseException;
|
|
|
|
+import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
|
+import com.zanxiang.manage.domain.params.PromoSiteAddOrUpdateParam;
|
|
|
|
+import com.zanxiang.manage.domain.params.PromoSiteListParam;
|
|
|
|
+import com.zanxiang.manage.domain.vo.PromoSiteListVO;
|
|
|
|
+import com.zanxiang.manage.service.PromoMediaService;
|
|
import com.zanxiang.manage.service.PromoSiteService;
|
|
import com.zanxiang.manage.service.PromoSiteService;
|
|
|
|
+import com.zanxiang.mybatis.entity.PromoMedia;
|
|
import com.zanxiang.mybatis.entity.PromoSite;
|
|
import com.zanxiang.mybatis.entity.PromoSite;
|
|
import com.zanxiang.mybatis.mapper.PromoSiteMapper;
|
|
import com.zanxiang.mybatis.mapper.PromoSiteMapper;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @author : lingfeng
|
|
* @author : lingfeng
|
|
* @time : 2022-11-18
|
|
* @time : 2022-11-18
|
|
@@ -15,4 +33,122 @@ import org.springframework.stereotype.Service;
|
|
@Slf4j
|
|
@Slf4j
|
|
@Service
|
|
@Service
|
|
public class PromoSiteServiceImpl extends ServiceImpl<PromoSiteMapper, PromoSite> implements PromoSiteService {
|
|
public class PromoSiteServiceImpl extends ServiceImpl<PromoSiteMapper, PromoSite> implements PromoSiteService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private PromoMediaService promoMediaService;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询游戏标签列表
|
|
|
|
+ *
|
|
|
|
+ * @param param : 游戏标签列表查询呢参数
|
|
|
|
+ * @return : 返回分页信息
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public IPage<PromoSiteListVO> list(PromoSiteListParam param) {
|
|
|
|
+ return page(param.toPage(), new QueryWrapper<PromoSite>().lambda()
|
|
|
|
+ .eq(param.getMediaId() != null, PromoSite::getMediaId, param.getMediaId())
|
|
|
|
+ .like(Strings.isNotBlank(param.getMediaSite()), PromoSite::getMediaSite, param.getMediaSite())
|
|
|
|
+ .like(Strings.isNotBlank(param.getPlateSite()), PromoSite::getPlateSite, param.getPlateSite())
|
|
|
|
+ .eq(param.getStatus() != null, PromoSite::getStatus, param.getStatus())
|
|
|
|
+ .orderByDesc(PromoSite::getCreateTime))
|
|
|
|
+ .convert(this::toVo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 对象转换
|
|
|
|
+ *
|
|
|
|
+ * @param promoSite 媒体版位
|
|
|
|
+ * @return {@link PromoSiteListVO}
|
|
|
|
+ */
|
|
|
|
+ private PromoSiteListVO toVo(PromoSite promoSite) {
|
|
|
|
+ if (Objects.isNull(promoSite)) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ PromoSiteListVO promoSiteListVO = BeanUtils.copy(promoSite, PromoSiteListVO.class);
|
|
|
|
+ PromoMedia promoMedia = promoMediaService.getById(promoSiteListVO.getMediaId());
|
|
|
|
+ if (promoMedia != null) {
|
|
|
|
+ promoSiteListVO.setMediaName(promoMedia.getName());
|
|
|
|
+ }
|
|
|
|
+ return promoSiteListVO;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 推广媒体新增或者更新
|
|
|
|
+ *
|
|
|
|
+ * @param param : 更新参数
|
|
|
|
+ * @return : 返回结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public Boolean addOrUpdate(PromoSiteAddOrUpdateParam param) {
|
|
|
|
+ Long id = param.getId();
|
|
|
|
+ //更新
|
|
|
|
+ if (id != null) {
|
|
|
|
+ PromoSite promoSite = super.getById(id);
|
|
|
|
+ if (promoSite == null) {
|
|
|
|
+ throw new BaseException("参数错误, 推广媒体版位信息不存在");
|
|
|
|
+ }
|
|
|
|
+ //更新, 不可重复
|
|
|
|
+ if (!Objects.equals(promoSite.getMediaSite(), param.getMediaSite())
|
|
|
|
+ || !Objects.equals(promoSite.getPlateSite(), param.getPlateSite())) {
|
|
|
|
+ //判断名称是否已经存在
|
|
|
|
+ int count = super.count(new LambdaQueryWrapper<PromoSite>()
|
|
|
|
+ .eq(PromoSite::getMediaId, param.getMediaId())
|
|
|
|
+ .eq(PromoSite::getMediaSite, param.getMediaSite())
|
|
|
|
+ .eq(PromoSite::getPlateSite, param.getPlateSite()));
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ throw new BaseException("推广媒体位置和版位已经存在");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ promoSite.setMediaSite(param.getMediaSite());
|
|
|
|
+ promoSite.setPlateSite(param.getPlateSite());
|
|
|
|
+ promoSite.setRemark(param.getRemark());
|
|
|
|
+ promoSite.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ return super.updateById(promoSite);
|
|
|
|
+ }
|
|
|
|
+ //判断名称是否已经存在
|
|
|
|
+ int count = super.count(new LambdaQueryWrapper<PromoSite>()
|
|
|
|
+ .eq(PromoSite::getMediaId, param.getMediaId())
|
|
|
|
+ .eq(PromoSite::getMediaSite, param.getMediaSite())
|
|
|
|
+ .eq(PromoSite::getPlateSite, param.getPlateSite()));
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ throw new BaseException("推广媒体位置和版位已经存在");
|
|
|
|
+ }
|
|
|
|
+ //创建
|
|
|
|
+ return super.save(PromoSite.builder()
|
|
|
|
+ .mediaId(param.getMediaId())
|
|
|
|
+ .mediaSite(param.getMediaSite())
|
|
|
|
+ .plateSite(param.getPlateSite())
|
|
|
|
+ .remark(param.getRemark())
|
|
|
|
+ .status(StatusEnum.YES.getCode())
|
|
|
|
+ .isDelete(DeleteEnum.NO.getCode())
|
|
|
|
+ .createTime(LocalDateTime.now())
|
|
|
|
+ .updateTime(LocalDateTime.now())
|
|
|
|
+ .build());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 删除推广媒体版位信息
|
|
|
|
+ *
|
|
|
|
+ * @param id : 删除推广媒体版位信息id
|
|
|
|
+ * @return : 返回删除结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public boolean deleteById(Long id) {
|
|
|
|
+ return super.removeById(id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据主键更新状态
|
|
|
|
+ *
|
|
|
|
+ * @param id : 主键id
|
|
|
|
+ * @param status : 状态
|
|
|
|
+ * @return : 返回更新结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public Boolean statusUpdate(Long id, Integer status) {
|
|
|
|
+ return super.update(new LambdaUpdateWrapper<PromoSite>()
|
|
|
|
+ .set(PromoSite::getStatus, status)
|
|
|
|
+ .set(PromoSite::getUpdateTime, LocalDateTime.now())
|
|
|
|
+ .eq(PromoSite::getId, id));
|
|
|
|
+ }
|
|
}
|
|
}
|