广告分页接口新增查询、新增/修改对于广告位置参数做去重和排序后查询和入库

This commit is contained in:
gaoqr
2025-09-01 18:21:01 +08:00
parent 6fe28468cf
commit a132de5b07
3 changed files with 11 additions and 4 deletions
@@ -1,12 +1,16 @@
package com.cf.imes.module.system.controller.admin.funds.advertisement.vo;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.validation.InScope;
import com.cf.imes.module.system.enums.advertisement.AdvertisementPositionEnum;
import com.cf.imes.module.system.validation.advertisement.AdvertisementStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
@Schema(description = "管理后台 - 广告分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@@ -20,7 +24,8 @@ public class AdvertisementPageReqVO extends PageParam {
private String adName;
@Schema(description = "广告位置")
private String adPosition;
@InScope(value = AdvertisementPositionEnum.class, desc = "广告位置")
private List<Integer> adPosition;
@Schema(description = "广告状态,0未发布 1已发布 2已结束", example = "0")
@AdvertisementStatus
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.dal.mysql.funds.advertisement;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
@@ -24,9 +25,10 @@ public interface AdvertisementMapper extends BaseMapperX<AdvertisementDO> {
default PageResult<AdvertisementDO> selectPage(AdvertisementPageReqVO reqVO) {
List<Integer> adPosition = reqVO.getAdPosition().stream().sorted().distinct().toList();
LambdaQueryWrapperX<AdvertisementDO> queryWrapper = new LambdaQueryWrapperX<AdvertisementDO>()
.likeIfPresent(AdvertisementDO::getAdName, reqVO.getAdName())
.likeIfPresent(AdvertisementDO::getAdPosition, reqVO.getAdPosition())
.likeIfPresent(AdvertisementDO::getAdPosition, CollUtil.isNotEmpty(adPosition) ? CollUtil.join(adPosition, ",") : null)
.eqIfPresent(AdvertisementDO::getStatus, reqVO.getStatus())
.eqIfPresent(AdvertisementDO::getDeleted, false);
@@ -63,7 +63,7 @@ public class AdvertisementServiceImpl implements AdvertisementService{
// 插入广告
AdvertisementDO advertisementDO = BeanUtils.toBean(createReqVO, AdvertisementDO.class)
.setAdPosition(createReqVO.getAdPosition())
.setAdPosition(createReqVO.getAdPosition().stream().sorted().distinct().toList())
.setStatus(AdvertisementStatusEnum.UNPUBLISHED.getStatus())
.setSoftwareId(SOFT_WARE_ID);
@@ -103,7 +103,7 @@ public class AdvertisementServiceImpl implements AdvertisementService{
.setAdImagePath(reqVO.getAdImagePath())
.setStartTime(reqVO.getStartTime())
.setEndTime(reqVO.getEndTime())
.setAdPosition(reqVO.getAdPosition())
.setAdPosition(reqVO.getAdPosition().stream().sorted().distinct().toList())
.setSort(ObjectUtil.isNull(reqVO.getSort()) ? advertisementDO.getSort() : reqVO.getSort())
.setAdRedirectUrl(StringUtils.isEmpty(reqVO.getAdRedirectUrl()) ? advertisementDO.getAdRedirectUrl() : reqVO.getAdRedirectUrl());
advertisementMapper.updateById(advertisementDO);