广告校验,前端补充,bug修复

This commit is contained in:
SjS 2025-04-22 11:50:16 +08:00
parent ffe2d1b3bb
commit dd2aef808e
8 changed files with 50 additions and 10 deletions

View File

@ -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 = "审核状态")

View File

@ -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
</sql>

View File

@ -13,4 +13,6 @@ public interface AdConverter {
AdQuery toAdAdminVO();
AdQuery toAdStoreVO();
Ad toPoByCreate(Ad ad);
}

View File

@ -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;
}
}

View File

@ -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());

View File

@ -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";
}

View File

@ -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));
}

View File

@ -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() + "的广告信息");