From bd0a615254c138e3c312c2d51a569f4f5015e17a Mon Sep 17 00:00:00 2001 From: SjS Date: Sun, 27 Apr 2025 15:23:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/bst/ad/domain/Ad.java | 5 ++++ .../java/com/ruoyi/bst/ad/domain/AdVO.java | 2 -- .../ruoyi/bst/ad/domain/enums/AdStatus.java | 20 +++++++++++++ .../java/com/ruoyi/bst/ad/mapper/AdMapper.xml | 9 ++++++ .../com/ruoyi/bst/ad/service/AdService.java | 12 ++++++++ .../bst/ad/service/impl/AdConverterImpl.java | 3 +- .../bst/ad/service/impl/AdServiceImpl.java | 20 +++++++++++-- .../com/ruoyi/web/app/AppAdController.java | 3 +- .../java/com/ruoyi/web/bst/AdController.java | 30 +++++++++++++++++++ 9 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/enums/AdStatus.java 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 371ddb3..7ac6e3b 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 @@ -48,6 +48,11 @@ public class Ad extends BaseEntity implements LogBizParam @ApiModelProperty("运营区id") private Long areaId; + @Excel(name = "广告状态") + @ApiModelProperty("广告状态") + @NotBlank(message = "广告状态不能为空", groups = {ValidGroup.Create.class}) + private String status; + @Excel(name = "跳转链接") @ApiModelProperty("跳转链接") @NotBlank(message = "跳转链接不能为空", groups = {ValidGroup.Create.class}) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java index 0f9241a..40ecf7b 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java @@ -9,8 +9,6 @@ public class AdVO extends Ad{ @ApiModelProperty("所属运营区") private String areaName; - @ApiModelProperty("广告审核状态") - private String auditStatus; @ApiModelProperty("审核人") private String verifyName; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/enums/AdStatus.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/enums/AdStatus.java new file mode 100644 index 0000000..34e16c3 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/enums/AdStatus.java @@ -0,0 +1,20 @@ +package com.ruoyi.bst.ad.domain.enums; + +import com.ruoyi.common.utils.collection.CollectionUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +@Getter +@AllArgsConstructor +public enum AdStatus { + + DISABLE("0", "禁用"), + ENABLE("1", "启用"); + + private final String code; + private final String 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 40eb974..aeb03ee 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 @@ -19,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -40,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bad.audit_status, bad.verify_end_time, bad.verify_by, + bad.status, bad.verify_remark, ba.name AS area_name, su_verify.user_name as verify_name, @@ -62,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bad.deleted = false and bad.audit_status = #{query.auditStatus} and bad.url_type = #{query.urlType} + and bad.status = #{query.status} ${@com.ruoyi.framework.util.DataScopeUtil@dataScope( null, "bad.store_id,su.agent_id", @@ -116,6 +120,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" remark, deleted, url_type, + audit_status, + status, #{storeId}, @@ -131,6 +137,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{remark}, #{deleted}, #{urlType}, + #{auditStatus}, + #{status}, @@ -328,6 +336,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" audit_status = #{data.auditStatus}, verify_end_time = #{data.verifyEndTime}, verify_remark = #{data.verifyRemark}, + status = #{data.status}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java index 5f6655f..eb658cc 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java @@ -5,6 +5,7 @@ import com.ruoyi.bst.ad.domain.Ad; import com.ruoyi.bst.ad.domain.AdVO; import com.ruoyi.bst.ad.domain.AdQuery; import com.ruoyi.bst.ad.domain.AdVerifyDTO; +import com.ruoyi.bst.device.domain.DeviceVO; import com.ruoyi.bst.fault.domain.Fault; import com.ruoyi.bst.fault.domain.FaultVO; import com.ruoyi.bst.fault.domain.FaultVerifyDTO; @@ -72,4 +73,15 @@ public interface AdService public int logicalDel(List adIds); public int verify(AdVerifyDTO dto); + + /** + * 启用 + */ + public int enable(Long adId); + + /** + * 禁用 + */ + public int disable(Long adId); + } 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 2ea7d8c..28a00bc 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 @@ -27,7 +27,7 @@ public class AdConverterImpl implements AdConverter { } po.setType(data.getType()); po.setPicture(data.getPicture()); - + po.setStatus(data.getStatus()); po.setUrl(data.getUrl()); po.setUrlType(data.getUrlType()); po.setAuditStatus(data.getAuditStatus()); @@ -49,6 +49,7 @@ public class AdConverterImpl implements AdConverter { } po.setType(data.getType()); po.setPicture(data.getPicture()); + po.setStatus(data.getStatus()); po.setUrl(data.getUrl()); po.setUrlType(data.getUrlType()); po.setAuditStatus(data.getAuditStatus()); 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 58e188e..14a95ca 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 @@ -9,6 +9,7 @@ import com.ruoyi.bst.ad.domain.enums.AdVerifyStatus; import com.ruoyi.bst.ad.service.AdConverter; import com.ruoyi.bst.area.domain.AreaVO; import com.ruoyi.bst.area.service.AreaService; +import com.ruoyi.bst.device.domain.enums.DeviceStatus; import com.ruoyi.bst.order.service.OrderService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; @@ -150,13 +151,12 @@ public class AdServiceImpl implements AdService { @Override public int verify(AdVerifyDTO dto) { - // 查询故障申报 + // 查询广告 AdVO ad = this.selectAdByAdId(dto.getId()); ServiceUtil.assertion(ad == null, "当前广告信息不存在", dto.getId()); ServiceUtil.assertion(!AdVerifyStatus.canVerify().contains(ad.getAuditStatus()), "ID为%s的广告当前不允许审核", dto.getId()); - // 更新故障申报状态 boolean pass = dto.getPass() != null && dto.getPass(); - // 更新故障申报状态 + // 更新广告状态 Ad data = new Ad(); data.setAuditStatus(pass ? AdVerifyStatus.PASSED.getCode() : AdVerifyStatus.REJECTED.getCode()); data.setVerifyBy(SecurityUtils.getUserId()); @@ -170,4 +170,18 @@ public class AdServiceImpl implements AdService { return rows; } + @Override + public int enable(Long adId) { + AdVO ad = this.selectAdByAdId(adId); + ServiceUtil.assertion(ad == null, "当前广告信息不存在", adId); + ServiceUtil.assertion(!DeviceStatus.canEnable().contains(ad.getStatus()), "广告%s当前状态不允许启用", adId); + } + + @Override + public int disable(Long adId) { + AdVO ad = this.selectAdByAdId(adId); + ServiceUtil.assertion(ad == null, "当前广告信息不存在", adId); + ServiceUtil.assertion(!DeviceStatus.canDisable().contains(ad.getStatus()), "广告%s当前状态不允许启用", adId); + } + } 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 9e23194..fdab927 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 @@ -3,6 +3,7 @@ package com.ruoyi.web.app; import com.ruoyi.bst.ad.domain.AdQuery; import com.ruoyi.bst.ad.domain.AdVO; import com.ruoyi.bst.ad.domain.enums.AdBelong; +import com.ruoyi.bst.ad.domain.enums.AdStatus; import com.ruoyi.bst.ad.domain.enums.AdVerifyStatus; import com.ruoyi.common.core.domain.vo.UserVO; import com.ruoyi.system.user.service.UserService; @@ -36,7 +37,7 @@ public class AppAdController extends BaseController { @Anonymous public AjaxResult getAd(AdQuery query) { query.setAuditStatus(AdVerifyStatus.PASSED.getCode()); - + query.setStatus(AdStatus.ENABLE.getCode()); List list = new ArrayList<>(); // 查询所属运营区的广告 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 d5b69ab..de3b39e 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 @@ -156,4 +156,34 @@ public class AdController extends BaseController return toAjax(adService.verify(dto)); } + @PreAuthorize("@ss.hasPermi('bst:ad:enable')") + @Log(title = "广告启用", businessType = BusinessType.OTHER, bizIdName = "arg0", bizType = LogBizType.AD) + @ApiOperation("广告启用") + @PutMapping("/enable") + public AjaxResult enableAd(@RequestBody Long id) { + if (!adValidator.canEdit(id)){ + return error("您无权启用id为"+ id +"的广告"); + } + int count = adService.enable(id); + if (count == 0) { + return error("启用失败"); + } + return toAjax(count); + } + + @PreAuthorize("@ss.hasPermi('bst:ad:disable')") + @Log(title = "广告禁用", businessType = BusinessType.OTHER, bizIdName = "arg0", bizType = LogBizType.AD) + @ApiOperation("广告禁用") + @PutMapping("/disable") + public AjaxResult disableAd(@RequestBody Long id) { + if (!adValidator.canEdit(id)){ + return error("您无权禁用id为"+ id +"的广告"); + } + int count = adService.disable(id); + if (count == 0) { + return error("禁用失败"); + } + return toAjax(count); + } + }