From dd2aef808e1ec74d7a107d14a865c0d3dd32abb6 Mon Sep 17 00:00:00 2001 From: SjS Date: Tue, 22 Apr 2025 11:50:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=BF=E5=91=8A=E6=A0=A1=E9=AA=8C=EF=BC=8C?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E8=A1=A5=E5=85=85,bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/bst/ad/domain/Ad.java | 13 ++++++++++++- .../java/com/ruoyi/bst/ad/mapper/AdMapper.xml | 3 +-- .../com/ruoyi/bst/ad/service/AdConverter.java | 2 ++ .../bst/ad/service/impl/AdConverterImpl.java | 17 +++++++++++++++++ .../bst/ad/service/impl/AdServiceImpl.java | 10 +++++++--- .../com/ruoyi/common/constants/DictType.java | 2 ++ .../java/com/ruoyi/web/app/AppAdController.java | 2 ++ .../java/com/ruoyi/web/bst/AdController.java | 11 +++++++---- 8 files changed, 50 insertions(+), 10 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java index ea54bf9..9306f37 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java @@ -1,5 +1,8 @@ package com.ruoyi.bst.ad.domain; +import com.ruoyi.common.constants.DictType; +import com.ruoyi.common.core.validate.ValidGroup; +import com.ruoyi.common.valid.DictValid; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -7,6 +10,9 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; /** @@ -30,8 +36,8 @@ public class Ad extends BaseEntity @ApiModelProperty("广告类型 1:活动推广") private String type; - @ApiModelProperty("广告图片") + @NotBlank(message = "广告图片不能为空",groups = {ValidGroup.Create.class}) private String picture; @Excel(name = "运营商id") @@ -40,14 +46,19 @@ public class Ad extends BaseEntity @Excel(name = "运营区id") @ApiModelProperty("运营区id") + @NotNull(message = "运营区ID不能为空", groups = {ValidGroup.Create.class}) + @Min(value = 1, message = "运营区ID需大于0") private Long areaId; @Excel(name = "跳转链接") @ApiModelProperty("跳转链接") + @NotBlank(message = "跳转链接不能为空", groups = {ValidGroup.Create.class}) private String url; @Excel(name = "跳转类型,1外链跳转,2站内跳转") @ApiModelProperty("跳转类型,1外链跳转,2站内跳转") + @NotBlank(message = "跳转类型不能为空", groups = {ValidGroup.Create.class}) + @DictValid(type = DictType.URL_TYPE, message = "非法的跳转类型") private String urlType; @Excel(name = "审核状态") diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml index 8f6898e..f7ec54b 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml @@ -46,8 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" su.agent_id from bst_ad bad left join bst_area ba on bad.area_id = ba.id - left join bst_order bo ON ba.id = bo.area_id - left join sys_user su on bo.user_id = su.user_id + left join sys_user su on ba.user_id = su.user_id left join sys_user su_verify on bad.verify_by = su_verify.user_id diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdConverter.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdConverter.java index 733ea28..67b4a1c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdConverter.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdConverter.java @@ -13,4 +13,6 @@ public interface AdConverter { AdQuery toAdAdminVO(); AdQuery toAdStoreVO(); + + Ad toPoByCreate(Ad ad); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java index 416d3d6..b7852a1 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java @@ -4,6 +4,7 @@ import com.ruoyi.bst.ad.domain.Ad; import com.ruoyi.bst.ad.domain.AdQuery; import com.ruoyi.bst.ad.enums.AdBlong; import com.ruoyi.bst.ad.service.AdConverter; +import com.ruoyi.bst.area.domain.Area; import com.ruoyi.common.utils.SecurityUtils; import org.springframework.stereotype.Service; @@ -34,4 +35,20 @@ public class AdConverterImpl implements AdConverter { return query; } + @Override + public Ad toPoByCreate(Ad data) { + if (data == null) { + return null; + } + Ad po = new Ad(); + // 基础信息 + po.setAreaId(data.getAreaId()); + po.setType(data.getType()); + po.setPicture(data.getPicture()); + po.setBelong(data.getBelong()); + po.setUrl(data.getUrl()); + po.setUrlType(data.getUrlType()); + return po; + } + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java index 95d88df..c226752 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java @@ -80,14 +80,18 @@ public class AdServiceImpl implements AdService @Override public int insertAd(Ad ad) { + // 默认设置为商户广告 if (ad.getBelong() == null || ad.getBelong().equals("")){ ad.setBelong(AdBlong.STORE.getCode()); } - AdQuery query = new AdQuery(); - query.setAreaId(ad.getAreaId()); - if (ad.getAreaId() != null){ + // 商户广告存在上限 + if (ad.getBelong().equals(AdBlong.STORE.getCode())){ AreaVO area = areaService.selectAreaById(ad.getAreaId()); ad.setStoreId(area.getUserId()); + // 条件查询广告 + AdQuery query = new AdQuery(); + query.setAreaId(ad.getAreaId()); + query.setDeleted(false); ServiceUtil.assertion(adMapper.selectOne(query)!=null,"当前运营区存在广告已达上限"); } ad.setCreateTime(DateUtils.getNowDate()); diff --git a/ruoyi-service/src/main/java/com/ruoyi/common/constants/DictType.java b/ruoyi-service/src/main/java/com/ruoyi/common/constants/DictType.java index 7a284e1..d314b92 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/common/constants/DictType.java +++ b/ruoyi-service/src/main/java/com/ruoyi/common/constants/DictType.java @@ -18,4 +18,6 @@ public class DictType { public static final String SUIT_TYPE = "suit_type"; // 支付渠道类型 public static final String CHANNEL_TYPE = "channel_type"; + // 广告跳转类型 + public static final String URL_TYPE = "ad_url_type"; } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java index 07519e6..5580be6 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.app; import com.ruoyi.bst.ad.domain.AdQuery; +import com.ruoyi.bst.ad.enums.AdVerifyStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -25,6 +26,7 @@ public class AppAdController extends BaseController { @Anonymous public AjaxResult getAd(AdQuery query) { query.setUserId(getUserId()); + query.setAuditStatus(AdVerifyStatus.PASSED.getCode()); return success(adService.toAppVOList(query)); } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java index 4a98231..259ebcb 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java @@ -5,6 +5,7 @@ import com.ruoyi.bst.ad.domain.AdQuery; import com.ruoyi.bst.ad.domain.AdVO; import com.ruoyi.bst.ad.domain.AdVerifyDTO; import com.ruoyi.bst.ad.enums.AdBlong; +import com.ruoyi.bst.ad.enums.AdVerifyStatus; import com.ruoyi.bst.ad.service.AdConverter; import com.ruoyi.bst.ad.service.AdService; import com.ruoyi.bst.ad.service.AdValidator; @@ -15,6 +16,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.ValidGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.utils.SecurityUtils; @@ -60,9 +62,9 @@ public class AdController extends BaseController { startPage(); startOrderBy(); - query.setDeleted(false); - query.setUserId(getUserId()); query.setScope(true); + query.setUserId(getUserId()); + query.setDeleted(false); return getDataTable(adService.selectAdList(query)); } @@ -95,8 +97,9 @@ public class AdController extends BaseController @PreAuthorize("@ss.hasPermi('bst:ad:add')") @Log(title = "广告", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody Ad ad) + public AjaxResult add(@Validated(ValidGroup.Create.class) @RequestBody Ad ad) { + ad = adConverter.toPoByCreate(ad); return toAjax(adService.insertAd(ad)); } @@ -106,7 +109,7 @@ public class AdController extends BaseController @PreAuthorize("@ss.hasPermi('bst:ad:edit')") @Log(title = "广告", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody Ad ad) + public AjaxResult edit(@Validated(ValidGroup.Update.class)@RequestBody Ad ad) { if (!adValidator.canEdit(ad.getAdId())){ return AjaxResult.error("您没有权限修改id为" + ad.getAdId() + "的广告信息");