Procházet zdrojové kódy

1、厦门海嘉成-栏目菜单

41235 před 1 rokem
rodič
revize
210759f54a

+ 67 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/controller/open/OpenColumnController.java

@@ -0,0 +1,67 @@
+package com.fjhx.xmhjc.controller.open;
+
+import com.fjhx.xmhjc.entity.about.vo.AboutUsHonorVo;
+import com.fjhx.xmhjc.entity.column.dto.ColumnArticleSelectDto;
+import com.fjhx.xmhjc.entity.column.dto.ColumnMenuSelectDto;
+import com.fjhx.xmhjc.entity.column.dto.ColumnMenuSubSelectDto;
+import com.fjhx.xmhjc.entity.column.vo.ColumnArticleVo;
+import com.fjhx.xmhjc.entity.column.vo.ColumnMenuSubVo;
+import com.fjhx.xmhjc.entity.column.vo.ColumnMenuVo;
+import com.fjhx.xmhjc.service.about.AboutUsHonorService;
+import com.fjhx.xmhjc.service.column.ColumnArticleService;
+import com.fjhx.xmhjc.service.column.ColumnMenuService;
+import com.fjhx.xmhjc.service.column.ColumnMenuSubService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 菜单栏目文章 前端控制器
+ *
+ * @author lqh
+ * @since 2023-11-13
+ */
+@RestController
+@RequestMapping("/open/aboutUsHonor")
+public class OpenColumnController {
+
+    @Autowired
+    private ColumnMenuService columnMenuService;
+    @Autowired
+    private ColumnMenuSubService columnMenuSubService;
+    @Autowired
+    private ColumnArticleService columnArticleService;
+
+    /**
+     * 门户菜单列表
+     */
+    @PostMapping("/getMenuByOpen")
+    public List<ColumnMenuVo> getMenuListByOpen() {
+        ColumnMenuSelectDto dto = new ColumnMenuSelectDto();
+        dto.setStatus("1");
+        return columnMenuService.getList(dto);
+    }
+
+    /**
+     * 门户菜单列表
+     */
+    @PostMapping("/getMenuSubByOpen")
+    public List<ColumnMenuSubVo> getMenuListByOpen(@RequestBody ColumnMenuSubSelectDto dto ) {
+        dto.setStatus("1");
+        return columnMenuSubService.getList(dto);
+    }
+
+    /**
+     * 门户菜单列表
+     */
+    @PostMapping("/getArticleByOpen")
+    public List<ColumnArticleVo> getArticleByOpen(@RequestBody ColumnArticleSelectDto dto ) {
+        dto.setStatus("1");
+        return columnArticleService.getList(dto);
+    }
+
+}

+ 1 - 1
hx-xmhjc/src/main/java/com/fjhx/xmhjc/entity/column/po/ColumnArticle.java

@@ -47,7 +47,7 @@ public class ColumnArticle extends BaseIdPo {
     /**
      * 封面
      */
-    private String cover;
+    private Long readNum;
 
     /**
      * 发表时间

+ 2 - 0
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/column/ColumnMenuSubService.java

@@ -47,5 +47,7 @@ public interface ColumnMenuSubService extends BaseService<ColumnMenuSub> {
      */
     void delete(Long id);
 
+    Boolean checkDeleteByMenu(Long id);
+
     Boolean checkDelete(Long id);
 }

+ 40 - 10
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/column/impl/ColumnMenuServiceImpl.java

@@ -88,21 +88,51 @@ public class ColumnMenuServiceImpl extends ServiceImpl<ColumnMenuMapper, ColumnM
 
     @Override
     public void edit(ColumnMenuDto columnMenuDto) {
-        this.updateById(columnMenuDto);
-        //处理子表
-        columnMenuSubService.handleColumnMenuSub(columnMenuDto.getId(),columnMenuDto.getColumnMenuSubList());
-    }
+        ColumnMenu menu = getById(columnMenuDto.getId());
+        //栏目类型1=列表;2=图文;3=外链
+        //如果  栏目类型 从 列表=》图文/外链  需要判断所有栏目是否有文章
+        if ("1".equals(menu.getType()) && !menu.getType().equals(columnMenuDto.getType())){
+            //验证是否能删除
+            if (columnMenuSubService.checkDeleteByMenu(menu.getId())){
+                //删除子栏目
+                columnMenuSubService.lambdaUpdate().eq(ColumnMenuSub::getColumnId,menu.getId()).remove();
+                //修改
+                this.updateById(columnMenuDto);
+            }else {
+                throw new RuntimeException("该菜单子栏目存在文章,无法更改栏目类型!如不想显示请禁用");
+            }
+
+        }else if ("1".equals(menu.getType()) && menu.getType().equals(columnMenuDto.getType())){
+            //如果  栏目类型 从 列表=》列表  需要判断是否有文章
+            this.updateById(columnMenuDto);
+            //处理子表
+            columnMenuSubService.handleColumnMenuSub(columnMenuDto.getId(),columnMenuDto.getColumnMenuSubList());
+        }else {
+            //如果  栏目类型 从 图文/外链=》图文/外链
+            this.updateById(columnMenuDto);
 
-    @Override
-    public void delete(Long id) {
+        }
 
 
 
-        this.removeById(id);
 
-        //TODO判断菜单及栏目是否有文章
-        ColumnMenuSubSelectDto columnMenuSubSelectDto = new ColumnMenuSubSelectDto();
-//        columnMenuSubService.getList()
 
     }
+
+    @Override
+    public void delete(Long id) {
+
+        ColumnMenu menu = getById(id);
+        //栏目类型1=列表;2=图文;3=外链
+        if ("1".equals(menu.getType())){
+            if (columnMenuSubService.checkDeleteByMenu(id)){
+                this.removeById(id);
+                columnMenuSubService.lambdaUpdate().eq(ColumnMenuSub::getColumnId,id).remove();
+            }else {
+                throw new RuntimeException("该菜单子栏目存在文章,删除失败!如不想显示请禁用");
+            }
+        }else {
+            this.removeById(id);
+        }
+    }
 }

+ 23 - 7
hx-xmhjc/src/main/java/com/fjhx/xmhjc/service/column/impl/ColumnMenuSubServiceImpl.java

@@ -2,15 +2,12 @@ package com.fjhx.xmhjc.service.column.impl;
 
 import cn.hutool.core.util.StrUtil;
 import com.fjhx.xmhjc.entity.column.dto.ColumnArticleSelectDto;
-import com.fjhx.xmhjc.entity.column.po.ColumnMenu;
 import com.fjhx.xmhjc.entity.column.po.ColumnMenuSub;
 import com.fjhx.xmhjc.entity.column.vo.ColumnArticleVo;
-import com.fjhx.xmhjc.entity.product.po.ProductCategory;
 import com.fjhx.xmhjc.mapper.column.ColumnMenuSubMapper;
 import com.fjhx.xmhjc.service.column.ColumnArticleService;
 import com.fjhx.xmhjc.service.column.ColumnMenuSubService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.StringUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.xmhjc.entity.column.vo.ColumnMenuSubVo;
@@ -88,6 +85,22 @@ public class ColumnMenuSubServiceImpl extends ServiceImpl<ColumnMenuSubMapper, C
     }
 
     @Override
+    public Boolean checkDeleteByMenu(Long id) {
+        //查询子栏目
+        ColumnMenuSubSelectDto columnMenuSubSelectDto = new ColumnMenuSubSelectDto();
+        columnMenuSubSelectDto.setColumnId(id);
+        List<ColumnMenuSubVo> list = getList(columnMenuSubSelectDto);
+        //验证是否有文章
+        long count = list.stream().filter(x -> {
+            return !checkDelete(x.getId());
+        }).count();
+        if (count == 0){
+            return true;
+        }
+        return false;
+    }
+
+    @Override
     public Boolean checkDelete(Long id) {
         ColumnArticleSelectDto columnArticleSelectDto = new ColumnArticleSelectDto();
         columnArticleSelectDto.setSubId(id);
@@ -101,14 +114,15 @@ public class ColumnMenuSubServiceImpl extends ServiceImpl<ColumnMenuSubMapper, C
     @Transactional
     public void handleColumnMenuSub(Long id, List<ColumnMenuSub> columnMenuSubList) {
         //获取已有子栏目
-        IWrapper<ColumnMenuSub> wrapper = getWrapper();
-        wrapper.eq("cms", ColumnMenuSub::getColumnId,id);
-        List<ColumnMenuSubVo> list = this.baseMapper.getList(wrapper);
+        ColumnMenuSubSelectDto dto = new ColumnMenuSubSelectDto();
+        dto.setColumnId(id);
+        List<ColumnMenuSubVo> list = getList(dto);
+
         //用于删除子栏目
         Map<Long, ColumnMenuSubVo> map = list.stream().collect(Collectors.toMap(ColumnMenuSub::getId, Function.identity()));
 
         //新增修改
-        columnMenuSubList.stream().forEach(sub ->{
+        columnMenuSubList.forEach(sub ->{
             sub.setColumnId(id);
             //判断新增修改
             if (Objects.isNull(sub.getId())){
@@ -125,6 +139,8 @@ public class ColumnMenuSubServiceImpl extends ServiceImpl<ColumnMenuSubMapper, C
             //TODO判断文章
             if (checkDelete(key)){
                 this.removeById(key);
+            }else {
+                throw new RuntimeException(value.getName()+"存在文章,删除失败!如不想显示请禁用");
             }
         });
 

+ 2 - 2
hx-xmhjc/src/main/resources/mapper/column/ColumnArticleMapper.xml

@@ -9,7 +9,7 @@
             ca.title,
             ca.sub_title,
             ca.briefly,
-            ca.cover,
+            ca.read_num,
             ca.time,
             ca.sort,
             ca.status,
@@ -28,7 +28,7 @@
             ca.title,
             ca.sub_title,
             ca.briefly,
-            ca.cover,
+            ca.read_num,
             ca.time,
             ca.sort,
             ca.status,