Prechádzať zdrojové kódy

留言返回树列表

wuweihao 3 rokov pred
rodič
commit
db05b13219

+ 1 - 1
gis_cms/src/main/java/com/gis/cms/controller/WebController.java

@@ -157,7 +157,7 @@ public class WebController {
     @PostMapping("/comment/list")
     public Result commentList(@RequestBody CommentPageDto param) {
         param.setStatus(2);
-        return commentService.search(param);
+        return commentService.voListTree(param);
     }
 
 }

+ 1 - 1
gis_cms/src/main/java/com/gis/cms/entity/dto/BbsDto.java

@@ -22,7 +22,7 @@ public class BbsDto {
     private String content;
 
     @NotBlank(message = "类型不能为空")
-    @ApiModelProperty(value = "类型: scene:数字史馆, school:校园,goods:典藏", required = true)
+    @ApiModelProperty(value = "类型: scene:点赞箱, school:战友情,goods:敢为先", required = true)
     private String type;
 
     @ApiModelProperty(value = "创建者名")

+ 3 - 0
gis_cms/src/main/java/com/gis/cms/entity/dto/CommentPageDto.java

@@ -16,4 +16,7 @@ public class CommentPageDto extends PageDateDto {
 //    @ApiModelProperty(value = "显示:0:不显示,1:显示", notes = "后端使用")
 //    private Integer display;
 
+//    @ApiModelProperty(value = "父级id")
+//    private Long parentId;
+
 }

+ 1 - 1
gis_cms/src/main/java/com/gis/cms/entity/po/BbsEntity.java

@@ -25,7 +25,7 @@ public class BbsEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "内容")
     private String content;
 
-    @ApiModelProperty(value = "类型: scene:数字史馆, school:校园,goods:典藏")
+    @ApiModelProperty(value = "类型: scene:点赞箱, school:战友情,goods:敢为先")
     private String type;
 
     @ApiModelProperty(value = "审核状态,0:待审核, 1:审核不通过,2:审核通过")

+ 2 - 7
gis_cms/src/main/java/com/gis/cms/mapper/CommentMapper.java

@@ -2,13 +2,8 @@ package com.gis.cms.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.gis.cms.entity.dto.CommentPageDto;
-import com.gis.cms.entity.dto.SortPageDto;
 import com.gis.cms.entity.po.CommentEntity;
-import com.gis.cms.mapper.provider.CommentProvider;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.SelectProvider;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Component;
 
@@ -17,8 +12,8 @@ import org.springframework.stereotype.Component;
 public interface CommentMapper extends BaseMapper<CommentEntity> {
 
 
-    @SelectProvider(type = CommentProvider.class, method = "search")
-    IPage<CommentEntity> search(CommentPageDto param, IPage<CommentEntity> page);
+
+
 
     @Update("update tb_comment set status = #{status} , update_time = NOW() where is_delete=0 and id = #{id} ")
     void setAudit(Long id, Integer status);

+ 0 - 46
gis_cms/src/main/java/com/gis/cms/mapper/provider/CommentProvider.java

@@ -1,46 +0,0 @@
-package com.gis.cms.mapper.provider;
-
-import com.gis.cms.entity.dto.CommentPageDto;
-import com.gis.cms.entity.dto.SortPageDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2021/12/28 0028 12:17
- */
-@Slf4j
-public class CommentProvider {
-
-    public String search(CommentPageDto param) {
-        StringBuffer sql = new StringBuffer(
-                "select a.*  from tb_comment a where a.is_delete=0 ");
-
-
-        if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
-
-            sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
-            sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if (!StringUtils.isAllBlank(searchKey)) {
-            searchKey = StringUtils.trim(searchKey);
-            sql.append(" and (");
-            sql.append( "a.content like '%").append(searchKey).append("%'");
-            sql.append(")");
-        }
-
-        Integer status = param.getStatus();
-        if (status != null){
-            sql.append( " and a.status=").append(status);
-        }
-
-
-
-        sql.append(" order by a.create_time desc");
-
-
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 48
gis_cms/src/main/java/com/gis/cms/mapper/provider/ImgProvider.java

@@ -1,48 +0,0 @@
-package com.gis.cms.mapper.provider;
-
-import com.gis.cms.entity.dto.SortPageDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2021/12/28 0028 12:17
- */
-@Slf4j
-public class ImgProvider {
-
-    public String search(SortPageDto param) {
-        StringBuffer sql = new StringBuffer(
-                "select a.* ,b.real_name as creatorName from tb_img a left join sys_user b on b.id=a.creator_id where a.is_delete=0 ");
-
-        Integer display = param.getDisplay();
-        if (display != null){
-            sql.append( " and a.display=").append(display);
-        }
-
-        if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
-
-            sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
-            sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if (!StringUtils.isAllBlank(searchKey)) {
-            searchKey = StringUtils.trim(searchKey);
-            sql.append(" and (");
-            sql.append( "a.name like '%").append(searchKey).append("%'");
-            sql.append(")");
-        }
-
-        Integer sortType = param.getSortType();
-        if (sortType == 0){
-            sql.append(" order by a.create_time desc");
-        } else if (sortType == 1){
-            sql.append(" order by a.sort desc");
-        } else {
-            sql.append(" order by a.sort, a.create_time desc");
-        }
-
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 48
gis_cms/src/main/java/com/gis/cms/mapper/provider/MusicProvider.java

@@ -1,48 +0,0 @@
-package com.gis.cms.mapper.provider;
-
-import com.gis.cms.entity.dto.SortPageDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2021/12/28 0028 12:17
- */
-@Slf4j
-public class MusicProvider {
-
-    public String search(SortPageDto param) {
-        StringBuffer sql = new StringBuffer(
-                "select a.* ,b.real_name as creatorName from tb_music a left join sys_user b on b.id=a.creator_id where a.is_delete=0 ");
-
-        Integer display = param.getDisplay();
-        if (display != null){
-            sql.append( " and a.display=").append(display);
-        }
-
-        if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
-
-            sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
-            sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if (!StringUtils.isAllBlank(searchKey)) {
-            searchKey = StringUtils.trim(searchKey);
-            sql.append(" and (");
-            sql.append( "a.name like '%").append(searchKey).append("%'");
-            sql.append(")");
-        }
-
-        Integer sortType = param.getSortType();
-        if (sortType == 0){
-            sql.append(" order by a.create_time desc");
-        } else if (sortType == 1){
-            sql.append(" order by a.sort desc");
-        } else {
-            sql.append(" order by a.sort, a.create_time desc");
-        }
-
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 48
gis_cms/src/main/java/com/gis/cms/mapper/provider/StudentProvider.java

@@ -1,48 +0,0 @@
-package com.gis.cms.mapper.provider;
-
-import com.gis.cms.entity.dto.SortPageDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2021/12/28 0028 12:17
- */
-@Slf4j
-public class StudentProvider {
-
-    public String search(SortPageDto param) {
-        StringBuffer sql = new StringBuffer(
-                "select a.* ,b.real_name as creatorName from tb_student a left join sys_user b on b.id=a.creator_id where a.is_delete=0 ");
-
-        Integer display = param.getDisplay();
-        if (display != null){
-            sql.append( " and a.display=").append(display);
-        }
-        if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
-
-            sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
-            sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if (!StringUtils.isAllBlank(searchKey)) {
-            searchKey = StringUtils.trim(searchKey);
-            sql.append(" and (");
-            sql.append( " a.name like '%").append(searchKey).append("%'");
-            sql.append( " or a.num like '%").append(searchKey).append("%'");
-            sql.append(")");
-        }
-
-        Integer sortType = param.getSortType();
-        if (sortType == 0){
-            sql.append(" order by a.create_time desc");
-        } else if (sortType == 1){
-            sql.append(" order by a.sort desc");
-        } else {
-            sql.append(" order by a.sort, a.create_time desc");
-        }
-
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 48
gis_cms/src/main/java/com/gis/cms/mapper/provider/VideoProvider.java

@@ -1,48 +0,0 @@
-package com.gis.cms.mapper.provider;
-
-import com.gis.cms.entity.dto.SortPageDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2021/12/28 0028 12:17
- */
-@Slf4j
-public class VideoProvider {
-
-    public String search(SortPageDto param) {
-        StringBuffer sql = new StringBuffer(
-                "select a.* ,b.real_name as creatorName from tb_video a left join sys_user b on b.id=a.creator_id where a.is_delete=0 ");
-
-        Integer display = param.getDisplay();
-        if (display != null){
-            sql.append( " and a.display=").append(display);
-        }
-
-        if (StringUtils.isNotBlank(param.getStartTime()) && StringUtils.isNotBlank(param.getEndTime())) {
-
-            sql.append(" and a.create_time >= ").append("'").append(param.getStartTime()).append("'");
-            sql.append(" and a.create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if (!StringUtils.isAllBlank(searchKey)) {
-            searchKey = StringUtils.trim(searchKey);
-            sql.append(" and (");
-            sql.append( "a.name like '%").append(searchKey).append("%'");
-            sql.append(")");
-        }
-
-        Integer sortType = param.getSortType();
-        if (sortType == 0){
-            sql.append(" order by a.create_time desc");
-        } else if (sortType == 1){
-            sql.append(" order by a.sort desc");
-        } else {
-            sql.append(" order by a.sort, a.create_time desc");
-        }
-
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 2 - 0
gis_cms/src/main/java/com/gis/cms/service/CommentService.java

@@ -21,4 +21,6 @@ public interface CommentService extends IService<CommentEntity> {
     Result search(CommentPageDto param);
 
     void audit(Long id, Integer status);
+
+    Result voListTree(CommentPageDto param);
 }

+ 32 - 5
gis_cms/src/main/java/com/gis/cms/service/impl/CommentServiceImpl.java

@@ -1,14 +1,15 @@
 package com.gis.cms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gis.cms.entity.dto.CommentPageDto;
-import com.gis.cms.entity.dto.SortPageDto;
 import com.gis.cms.entity.dto.CommentDto;
 import com.gis.cms.entity.po.CommentEntity;
 import com.gis.cms.mapper.CommentMapper;
 import com.gis.cms.service.CommentService;
+import com.gis.cms.tree.CommentTreeUtil;
 import com.gis.common.base.service.impl.IBaseService;
 import com.gis.common.util.BaseUtil;
 import com.gis.common.util.FileUtils;
@@ -18,9 +19,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Map;
 
 
 /**
@@ -42,22 +41,50 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, CommentEntity
     public Result search(CommentPageDto param) {
         BaseUtil.startPage(param);
         IPage<CommentEntity> page = new Page<>(param.getPageNum() , param.getPageSize());
-        IPage<CommentEntity> result = getBaseMapper().search(param, page);
+        BaseUtil.startPage(param);
+
+        LambdaQueryWrapper<CommentEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CommentEntity::getStatus, 2);
+        String searchKey = param.getSearchKey();
+        wrapper.like(StringUtils.isNotBlank(searchKey), CommentEntity::getContent, searchKey);
+        wrapper.orderByDesc(CommentEntity::getCreateTime);
+        IPage<CommentEntity> result = this.page(page, wrapper);
         return Result.success(result);
     }
 
 
 
+
+
     @Override
     public void audit(Long id, Integer status) {
         getBaseMapper().setAudit(id, status);
     }
 
 
+
+    @Override
+    public Result voListTree(CommentPageDto param) {
+        BaseUtil.startPage(param);
+        IPage page = new Page<>(param.getPageNum() , param.getPageSize());
+
+        LambdaQueryWrapper<CommentEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CommentEntity::getStatus, 2);
+        String searchKey = param.getSearchKey();
+        wrapper.like(StringUtils.isNotBlank(searchKey), CommentEntity::getContent, searchKey);
+        wrapper.orderByDesc(CommentEntity::getCreateTime);
+        IPage result = this.page(page, wrapper);
+
+        CommentTreeUtil tree = new CommentTreeUtil(result.getRecords());
+        result.setRecords(tree.buildTree());
+
+        return Result.success(result);
+    }
+
+
     @Override
     public Result saveEntity(CommentDto param) {
         CommentEntity entity = new CommentEntity();
-//            entity.setCreatorId(iBaseService.getUserId());
         BeanUtils.copyProperties(param, entity);
         this.saveOrUpdate(entity);
         return Result.success();

+ 4 - 1
gis_cms/src/main/java/com/gis/cms/service/impl/NewsServiceImpl.java

@@ -15,6 +15,7 @@ import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.BaseUtil;
 import com.gis.common.util.FileUtils;
 import com.gis.common.util.Result;
+import io.netty.util.NettyRuntime;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -160,6 +161,8 @@ public class NewsServiceImpl extends ServiceImpl<NewsMapper, NewsEntity> impleme
     }
 
 
-
+//    public static void main(String[] args) {
+//        System.out.println(NettyRuntime.availableProcessors());
+//    }
 
 }

+ 134 - 0
gis_cms/src/main/java/com/gis/cms/tree/CommentTreeUtil.java

@@ -0,0 +1,134 @@
+package com.gis.cms.tree;
+
+import com.gis.cms.entity.po.CommentEntity;
+import com.gis.cms.tree.vo.CommentTree;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+public class CommentTreeUtil {
+
+    private List<CommentTree> resultNodes = new ArrayList<CommentTree>();//树形结构排序之后list内容
+
+    private List<CommentTree> nodes = new ArrayList<CommentTree>();
+
+    /**
+     *
+     * @param nodesList 转换对象
+     */
+    public CommentTreeUtil(List<CommentEntity> nodesList) {//通过构造函数初始化
+
+        for (CommentEntity n : nodesList) {
+            CommentTree vo = new CommentTree();
+            vo.setId(n.getId());
+            vo.setContent(n.getContent());
+
+
+//            vo.setRealName(n.getRealName());
+            vo.setCreateTime(n.getCreateTime());
+//            vo.setUpdateTime(n.getUpdateTime());
+//            vo.setUnit(n.getUnit());
+            vo.setNickName(n.getCreatorName());
+//            vo.setDisplay(n.getDisplay());
+//            vo.setIsRealName(n.getIsRealName());
+
+
+
+
+            if (n.getParentId() != null) {
+                vo.setParentId(n.getParentId());
+            }
+            nodes.add(vo);
+        }
+    }
+
+    public CommentTreeUtil() {
+    }
+
+    /**
+     * 构建树形结构list
+     *
+     * @return 返回树形结构List列表
+     */
+    public List<CommentTree> buildTree() {
+        for (CommentTree node : nodes) {
+            Long id = node.getParentId();
+            if (id == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
+                resultNodes.add(node);//添加一级节点
+                node.setLevel(1);
+                build(node, node.getLevel());//递归获取二级、三级、。。。节点
+            }
+        }
+        return resultNodes;
+    }
+
+    /**
+     * 递归循环子节点
+     *
+     * @param node 当前节点
+     */
+    private void build(CommentTree node, int level) {
+        List<CommentTree> children = getChildren(node);
+        if (!children.isEmpty()) {//如果存在子节点
+            node.setChildren(children);
+//        	level++;
+            for (CommentTree child : children) {//将子节点遍历加入返回值中
+        		child.setLevel(level);
+                build(child, child.getLevel());
+            }
+        }
+    }
+
+    /**
+     * @param node
+     * @return 返回
+     */
+    private List<CommentTree> getChildren(CommentTree node) {
+        List<CommentTree> children = new ArrayList<CommentTree>();
+        Long id = node.getId();
+        for (CommentTree child : nodes) {
+            if (id.equals(child.getParentId())) {//如果id等于父id
+                children.add(child);//将该节点加入循环列表中
+            }
+        }
+        return children;
+    }
+
+
+    /**
+     * 过滤敏感内容
+     * @param filterKey 敏感词集合
+     * @param content 过滤内容
+     * @return
+     */
+//    private String getFilterMsg(Set<Object> filterKey, String content){
+//        for (Object s : filterKey) {
+//            if (s != null){
+//                content =  content.replaceAll(s.toString(), "**");
+//            }
+//        }
+//        return content;
+//    }
+
+//    public List<CommentTree> buildTree(List<SysResourceEntity> all, List<SysResourceEntity> in) {
+//        for (SysResourceEntity n : all) {
+//            CommentTree treeGrid = new CommentTree();
+//            treeGrid.setId(n.getId());
+//            treeGrid.setMsg(n.getMsg());
+//            treeGrid.setUserName(n.getUserName());
+//            treeGrid.setCreateTime(n.getCreateTime());
+//            for (SysResourceEntity nin : in) {
+//                if (nin.getId().equals(n.getId())) {
+//                }
+//            }
+//            if (n.getParentId() != null) {
+//                treeGrid.setParentId(n.getParentId());
+//            }
+//            nodes.add(treeGrid);
+//        }
+//        return buildTree();
+//    }
+
+}

+ 44 - 0
gis_cms/src/main/java/com/gis/cms/tree/vo/CommentTree.java

@@ -0,0 +1,44 @@
+package com.gis.cms.tree.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class CommentTree {
+
+    private Long id;
+
+//    private String realName;
+
+    private Long parentId;
+
+    private String content;
+
+    private LocalDateTime createTime;
+
+//    private LocalDateTime updateTime;
+
+    private String nickName;
+
+//    private String unit;
+
+//    private Integer display;
+
+//    @ApiModelProperty(value = "是否显示真实姓名: 1:是, 0:否")
+//    private Integer isRealName;
+
+
+    // 子菜单/或按钮
+    private List<CommentTree> children;
+
+    @JSONField(serialize = false)
+    private int level;
+
+
+
+
+}