Explorar o código

feat(mall): 添加轮播图、导航菜单和推荐分类的状态修改功能

- 在DkhCarouselConfigController中新增changeStatus方法用于轮播图状态修改
- 在DkhHeaderMenuController中新增changeStatus方法用于导航菜单状态修改
- 在DkhRecommendCategoryConfigController中新增changeStatus方法用于推荐分类状态修改
- 在各个Service接口中添加updateStatus方法定义
- 在各个ServiceImpl中实现updateStatus方法完成状态更新逻辑
- 在PcAnnouncementController中新增getNewOne方法获取最新公告
- 在SysAnnouncementService中实现getNewOne方法查询最新已显示公告
hurx hai 13 horas
pai
achega
b5e4bb488b

+ 10 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/controller/DkhCarouselConfigController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.mall.domain.bo.DkhCategoryMainBo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -103,4 +104,13 @@ public class DkhCarouselConfigController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(dkhCarouselConfigService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "企业轮播图配置", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public R<Void> changeStatus(@RequestBody DkhCarouselConfigBo bo) {
+        return toAjax(dkhCarouselConfigService.updateStatus(bo));
+    }
 }

+ 10 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/controller/DkhHeaderMenuController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.mall.domain.bo.DkhCarouselConfigBo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -103,4 +104,13 @@ public class DkhHeaderMenuController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(dkhHeaderMenuService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "顶部导航菜单配置", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public R<Void> changeStatus(@RequestBody DkhHeaderMenuBo bo) {
+        return toAjax(dkhHeaderMenuService.updateStatus(bo));
+    }
 }

+ 10 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/controller/DkhRecommendCategoryConfigController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.mall.domain.bo.DkhHeaderMenuBo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -103,4 +104,13 @@ public class DkhRecommendCategoryConfigController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(dkhRecommendCategoryConfigService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "推荐分类配置", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public R<Void> changeStatus(@RequestBody DkhRecommendCategoryConfigBo bo) {
+        return toAjax(dkhRecommendCategoryConfigService.updateStatus(bo));
+    }
 }

+ 8 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/IDkhCarouselConfigService.java

@@ -67,4 +67,12 @@ public interface IDkhCarouselConfigService extends IService<DkhCarouselConfig>{
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    Boolean updateStatus(DkhCarouselConfigBo bo);
 }

+ 8 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/IDkhHeaderMenuService.java

@@ -67,4 +67,12 @@ public interface IDkhHeaderMenuService extends IService<DkhHeaderMenu>{
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    Boolean updateStatus(DkhHeaderMenuBo bo);
 }

+ 8 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/IDkhRecommendCategoryConfigService.java

@@ -67,4 +67,12 @@ public interface IDkhRecommendCategoryConfigService extends IService<DkhRecommen
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    Boolean updateStatus(DkhRecommendCategoryConfigBo bo);
 }

+ 14 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/DkhCarouselConfigServiceImpl.java

@@ -136,4 +136,18 @@ public class DkhCarouselConfigServiceImpl extends ServiceImpl<DkhCarouselConfigM
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateStatus(DkhCarouselConfigBo bo) {
+        DkhCarouselConfig update = new DkhCarouselConfig();
+        update.setId(bo.getId());
+        update.setStatus(bo.getStatus());
+        return baseMapper.updateById(update) > 0;
+    }
 }

+ 14 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/DkhHeaderMenuServiceImpl.java

@@ -150,4 +150,18 @@ public class DkhHeaderMenuServiceImpl extends ServiceImpl<DkhHeaderMenuMapper, D
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateStatus(DkhHeaderMenuBo bo) {
+        DkhHeaderMenu update = new DkhHeaderMenu();
+        update.setId(bo.getId());
+        update.setStatus(bo.getStatus());
+        return baseMapper.updateById(update) > 0;
+    }
 }

+ 14 - 0
ruoyi-modules/ruoyi-mall/src/main/java/org/dromara/mall/service/impl/DkhRecommendCategoryConfigServiceImpl.java

@@ -158,4 +158,18 @@ public class DkhRecommendCategoryConfigServiceImpl extends ServiceImpl<DkhRecomm
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 状态修改
+     *
+     * @param bo 包含id和status
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateStatus(DkhRecommendCategoryConfigBo bo) {
+        DkhRecommendCategoryConfig update = new DkhRecommendCategoryConfig();
+        update.setId(bo.getId());
+        update.setStatus(bo.getStatus());
+        return baseMapper.updateById(update) > 0;
+    }
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/pc/controller/PcAnnouncementController.java

@@ -36,6 +36,14 @@ public class PcAnnouncementController extends BaseController {
         return sysAnnouncementService.queryPageList(bo, pageQuery);
     }
 
+    /**
+     * 查询平台最新公告
+     */
+    @GetMapping("/getNewOne")
+    public R<SysAnnouncementVo> getNewOne() {
+        return R.ok(sysAnnouncementService.getNewOne());
+    }
+
     /**
      * 获取平台公告详细信息
      *

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysAnnouncementService.java

@@ -59,6 +59,13 @@ public interface ISysAnnouncementService extends IService<SysAnnouncement>{
      */
     Boolean updateByBo(SysAnnouncementBo bo);
 
+    /**
+     * 查询最新一条已显示的公告(isShow=1),按创建时间倒序
+     *
+     * @return 最新公告
+     */
+    SysAnnouncementVo getNewOne();
+
     /**
      * 校验并批量删除平台公告信息
      *

+ 16 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysAnnouncementServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.system.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -129,6 +130,21 @@ public class SysAnnouncementServiceImpl  extends ServiceImpl<SysAnnouncementMapp
         //TODO 做一些数据校验,如唯一约束
     }
 
+    /**
+     * 查询最新一条已显示的公告(isShow=1),按创建时间倒序
+     *
+     * @return 最新公告
+     */
+    @Override
+    public SysAnnouncementVo getNewOne() {
+        LambdaQueryWrapper<SysAnnouncement> lqw = Wrappers.<SysAnnouncement>lambdaQuery()
+            .eq(SysAnnouncement::getIsShow, 1L)
+            .orderByDesc(SysAnnouncement::getCreateTime)
+            .last("LIMIT 1");
+        List<SysAnnouncementVo> list = baseMapper.selectVoList(lqw);
+        return CollUtil.isEmpty(list) ? null : list.get(0);
+    }
+
     /**
      * 校验并批量删除平台公告信息
      *