فهرست منبع

作者:张哲
时间:2022/11/30
类型:开发
描述:知识分类模块开发

ZizgZh 2 سال پیش
والد
کامیت
b07034b017

+ 21 - 0
src/main/java/com/redxun/knowledge/controller/NewsController.java

@@ -12,6 +12,7 @@ import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.model.JPaasUser;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.common.utils.SysUserUtil;
+import com.redxun.knowledge.entity.dao.Banner;
 import com.redxun.knowledge.entity.dao.News;
 import com.redxun.knowledge.entity.vo.NewsPcVo;
 import com.redxun.knowledge.service.NewsServiceImpl;
@@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -71,6 +73,25 @@ public class NewsController extends BaseController<News> {
         return jsonResult;
     }
 
+    @ApiOperation(value = "删除新闻")
+    @GetMapping("deleteNews")
+    public JsonResult deleteBanner(@RequestParam("newsId") String newsId){
+        newsService.delete(newsId);
+        return JsonResult.Success("删除成功!");
+    }
+
+    @ApiOperation(value = "上线/下线")
+    @GetMapping("updateStatus/{newsId}/{status}")
+    public JsonResult updateStatus(@PathVariable("newsId") String newsId,
+                                   @PathVariable("status") Integer status){
+        News news = new News();
+        news.setPkId(newsId);
+        news.setEnabled(status);
+        news.setUpdateTime(new Date());
+        newsService.updateById(news);
+        return JsonResult.Success();
+    }
+
     @ApiOperation(value = "上升/下降")
     @GetMapping("/goUpOrDownUp/{newsId}/{status}")
     public JsonResult goUpOrDownUp(@PathVariable("newsId") String newsId,

+ 6 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeCategoryMapper.java

@@ -23,4 +23,10 @@ public interface KnowledgeCategoryMapper extends BaseDao<KnowledgeCategory> {
     List<KnowledgeCategoryAdminVo> selectKnowledgeCategoryByParent(String pkId);
 
     KnowledgeCategoryAdminVo selectByCategoryId(String categoryId);
+
+    /**
+     * 新增/修改时变更sort
+     * @param sort
+     */
+    void insertOrUpdateBySort(@Param("parent") String parent,@Param("sort") Integer sort);
 }

+ 1 - 1
src/main/java/com/redxun/knowledge/mapper/NewsMapper.java

@@ -33,5 +33,5 @@ public interface NewsMapper extends BaseDao<News> {
 
     void deleteNews(Serializable id);
 
-    void swapSort(String newsId, Integer sort);
+    void swapSort(@Param("newsId") String newsId, @Param("sort") Integer sort);
 }

+ 40 - 3
src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java

@@ -8,6 +8,8 @@ import com.redxun.common.base.db.BaseService;
 import com.redxun.common.base.db.PageHelper;
 import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.common.tool.BeanUtil;
+import com.redxun.common.tool.IdGenerator;
 import com.redxun.knowledge.entity.dao.KnowledgeCategory;
 import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
 import com.redxun.knowledge.mapper.KnowledgeCategoryMapper;
@@ -92,6 +94,44 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
 
     }
 
+    /**
+     * 新增知识分类
+     * @param entity
+     * @return
+     */
+    @Override
+    public int insert(KnowledgeCategory entity) {
+        if (BeanUtil.isEmpty(entity.getPkId())) {
+            entity.setPkId(IdGenerator.getIdStr());
+        }
+        // 没有parent默认为一级分类
+        if (entity.getParent() == null){
+            entity.setParent("0");
+        }
+        // 没有sort默认为0
+        if (entity.getSort() == null){
+            entity.setSort(0);
+        }
+        knowledgeCategoryMapper.insertOrUpdateBySort(entity.getParent(),entity.getSort());
+        return this.getRepository().insert(entity);
+    }
+
+    /**
+     * 修改知识分类
+     * @param entity
+     * @return
+     */
+    @Override
+    public int update(KnowledgeCategory entity) {
+        if (entity.getParent() != null){
+            if (entity.getSort() == null) {
+                entity.setSort(0);
+            }
+        }
+        knowledgeCategoryMapper.insertOrUpdateBySort(entity.getParent(), entity.getSort());
+        return this.getRepository().updateById(entity);
+    }
+
     // 查询孩子节点(非递归)
     private List<KnowledgeCategory> findAllChildren(KnowledgeCategory knowledgeCategory) {
         QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
@@ -132,7 +172,4 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
             return false;
         }
     }
-
-
-
 }

+ 1 - 5
src/main/java/com/redxun/knowledge/service/NewsServiceImpl.java

@@ -79,11 +79,8 @@ public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implemen
     public int insert(News entity) {
         if (BeanUtil.isEmpty(entity.getPkId())) {
             entity.setPkId(IdGenerator.getIdStr());
-            // TODO: 2022/11/29  获取系统登录用户id(数据库中设置id和作者)
             entity.setAuthorId(entity.getAuthorId());
-            entity.setAuthor(userService.queryLoginUserName());
-            entity.setCreateBy(userService.queryLoginUser());
-            entity.setUpdateBy(userService.queryLoginUser());
+            entity.setAuthor(entity.getAuthor());
         }
         if (entity.getSort() == null){
             entity.setSort(0);
@@ -104,7 +101,6 @@ public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implemen
      */
     @Override
     public int update(News entity) {
-        entity.setUpdateBy(userService.queryLoginUser());
         if (entity.getSort() != null){
             QueryWrapper<News> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("SORT",entity.getSort());

+ 1 - 1
src/main/resources/mapper/knowledge/BannerMapper.xml

@@ -97,7 +97,7 @@
     <update id="insertOrUpdateBySort">
         update KM_BANNER
         set SORT = SORT + 1
-        where SORT >= #{sort}
+        where SORT >= #{sort} AND IS_DEL = 0
     </update>
 
 

+ 7 - 1
src/main/resources/mapper/knowledge/KnowledgeCategoryMapper.xml

@@ -49,7 +49,7 @@
         </if>
         and IS_DEL = 0
     </where>
-    ORDER BY SORT ASC
+    ORDER BY SORT ASC,UPDATE_TIME_ DESC
     </select>
 
     <select id="selectKnowledgeCategoryByParent" resultType="com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo">
@@ -70,6 +70,12 @@
         </where>
     </select>
 
+    <update id="insertOrUpdateBySort">
+        update KM_KNOWLEDGE_CATEGORY
+        set SORT = SORT + 1
+        where SORT >= #{sort} and PARENT = #{parent} and IS_DEL = 0
+    </update>
+
 </mapper>
 
 

+ 3 - 2
src/main/resources/mapper/knowledge/NewsMapper.xml

@@ -95,14 +95,15 @@
     <update id="insertOrUpdateBySort">
         update KM_NEWS
         set SORT = SORT + 1
-        where SORT >= #{sort}
+        where SORT >= #{sort} AND IS_DEL = 0
     </update>
 
     <update id="swapSort">
         update KM_NEWS
         set
             SORT = #{sort}
-        where PK_ID = #{bannerId}
+        where PK_ID = #{newsId}
+        <foreach collection="array"  item="1"></foreach>
     </update>
 
     <delete id="deleteNews">