# cms **Repository Path**: luozongwei/cms ## Basic Information - **Project Name**: cms - **Description**: 看点资讯管理系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-14 - **Last Updated**: 2023-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 看点资讯管理系统 ## 介绍 > jd2311 第二小组 cms(看点资讯管理)项目 > 从 0-1 手动搭建 + 团队合作 > 具体代码介绍:https://www.lzwgxust.top/post/33997261.html ### 项目背景及环境搭建 > 日常生活中,内容管理系统占据我们80%以上的常用系统,如个人博客、今日头条、腾讯新闻、知乎等。这些系统的核心功能集中在内容(资讯)管理, > 以一篇文章为一个资讯,反映了人们越来越喜欢简洁记录生活所见所闻。通用的看点资讯管理系统采用前后台分离技术,分为前台页面展示和后台资讯管理系统,后台通用而前台可根据客户需求定制。 ### MybatisPlus基础及应用 > 主要是通过官网学习mp的配置、注解、代码生成器、CRUD接口、条件构造器、主键策略、自定义ID生成器、逻辑删除、分页插件 > 开启了新大陆 官网:https://baomidou.com/pages/24112f/ ### 轮播图模块 主要功能:查询启用的轮播图、条件+分页查询、根据id查询、新增或修改、删除轮播图等
技术如下: - 使用CollectionUtils 进行对集合类型的判空 - 使用mp代码生成器MybatisPlusGenerator简化开发 - 使用常量类CmsConstant,避免硬编码 ### 登录及用户模块 主要功能:登录、退出、文件上传、新增用户、根据id查询、更新用户、删除用户、雪花算法Bug解决
技术如下: - md5对密码进行加密+Jwt-HS256对称加密 - 通过七牛云oss+文件上传工具实现图片上传功能(也可使用阿里云oss主要在于工具类的不同实现) - 细节: IPage的两种使用思路:①通过selectPage(page,lqw);②通过xml实现必须把page参数传进去xxxXXX(page, 条件...); - 细节: code success必须返回200,否则登录不进去 - 细节: 对于路径参数/{ids}的测试postman和knife4j不同点做一下说明: - - postman必须通过/xxx/1,2,3 路径后面添加的方式 原因:postman的x-www-form-urlencoded默认发送的String类型, 若坚持使用postman测,则必须在java做类型处理`List -> List` - - knife4j都可以路径添加或者x-www-form-urlencoded两种方式 - 通过注解`@JsonSerialize(using=ToStringSerializer.class)` 解决 官方雪花算法长度过长导致JS精度丢失问题 将Long值返回给前端时转为String,前端传递String给后端时会再转换成Long类型。 ### 栏目模块 主要功能:新增栏目、根据id查询栏目信息、更新栏目、根据ids批量删除栏目、分页+条件查询、查询所有1级栏目(含二级)、 查询所有一级栏目(不含二级)、excel文件导入导出功能
技术如下: - 通过使用Stream来替代部分mp+xml模式的查询 - 使用EasyExcel实现excel文件的导入导出功能包含了 Listener、Converter、EasyUtils - 分级栏目困难,目前只实现1,2级功能(后面再想想) - 业务逻辑相对较难 - 难点:关于导入模块,需要实现先单独(没有实现批量)插入一级栏目,后批量插入二级栏目; 解决方法就是再`CategoryParentIdConverter`中添加一个`map<唯一Integer值, parentName名字>` 然后在`CategoryServiceImpl`中对整个list数据进行分类除了,因为一级栏目在`CategoryListener`中单独加入,所以只需要在impl中处理二级栏目批量插入即可 ### 资讯模块 主要功能:新增或修改文章、审核文章、删除文章、查询指定文章、分页+条件查询文章、redis优化阅读量
技术如下: - 通过Spring监听器+Spring定时器+redis缓存防止用户恶意刷新阅读量,导致数据库压力过大 - ### 评论模块 主要功能:新增一级评论、新增二级评论、删除评论、批量删除评论、查询指定1级评论下所有的2级评论、分页+查询指定文章下的所有一级评论(包含2级) 分页+条件+查询所有一级评论(包含二级)
技术如下: - 通过嵌套结果、嵌套查询、mp条件构造器三种方式实现多表联查+分页 ### 日志模块 主要功能:新增日志、查询日志、导出日志
技术如下: - 通过注解Logging+切面类LogAspect实现日志记录功能 # 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request