瀏覽代碼

作者:张哲
时间:2022/11/24
类型:开发
描述:新闻资讯 PC新闻列表 PC新闻详情

ZizgZh 2 年之前
父節點
當前提交
52351910bc

+ 1 - 0
src/main/java/com/redxun/JpaasKnowledgeApp.java

@@ -12,6 +12,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.cloud.stream.annotation.EnableBinding;
 import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**

+ 11 - 1
src/main/java/com/redxun/knowledge/controller/BannerController.java

@@ -12,6 +12,7 @@ import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.Banner;
+import com.redxun.knowledge.entity.vo.BannerPcVo;
 import com.redxun.knowledge.service.BannerServiceImpl;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.redxun.common.base.entity.JsonResult;
@@ -48,7 +49,7 @@ public class BannerController extends BaseController<Banner> {
         return "业务--首页banner表";
     }
 
-    @ApiOperation(value = "Banner列表")
+    @ApiOperation(value = "Banner列表(分页后台)")
     @ApiImplicitParam(name = "queryData", value = "查询条件")
     @PostMapping("findAllBanner")
     public JsonPageResult findAllBanner(@RequestBody QueryData queryData) {
@@ -65,5 +66,14 @@ public class BannerController extends BaseController<Banner> {
         }
         return jsonResult;
     }
+
+    @ApiOperation(value = "Banner列表(无分页,前台)")
+    @GetMapping("getAllList")
+    public JsonPageResult getAllList() {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        List<BannerPcVo> bannerPcVoList = bannerService.getAllList();
+        jsonResult.setData(bannerPcVoList);
+        return jsonResult;
+    }
 }
 

+ 96 - 14
src/main/java/com/redxun/knowledge/controller/NewsController.java

@@ -1,42 +1,124 @@
 
 package com.redxun.knowledge.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.redxun.common.base.entity.JsonPageResult;
 import com.redxun.common.base.entity.JsonResult;
-import com.redxun.common.tool.StringUtils;
+import com.redxun.common.base.entity.QueryData;
+import com.redxun.common.base.search.QueryFilter;
+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.News;
+import com.redxun.knowledge.entity.vo.NewsPcVo;
 import com.redxun.knowledge.service.NewsServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import java.util.Arrays;
+
+import java.io.IOException;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @RestController
 @RequestMapping("/knowledge/news")
 @Api(tags = "业务--新闻表")
-@ClassDefine(title = "业务--新闻表",alias = "NewsController",path = "/knowledge/news",packages = "",packageName = "子系统名称")
+@ClassDefine(title = "业务--新闻表", alias = "NewsController", path = "/knowledge/news", packages = "", packageName = "子系统名称")
 public class NewsController extends BaseController<News> {
 
-@Autowired
-NewsServiceImpl newsService;
+    @Autowired
+    NewsServiceImpl newsService;
 
 
-@Override
-public BaseService getBaseService() {
-return newsService;
-}
+    @Override
+    public BaseService getBaseService() {
+        return newsService;
+    }
 
-@Override
-public String getComment() {
-return "业务--新闻表";
-}
+    @Override
+    public String getComment() {
+        return "业务--新闻表";
+    }
+
+    @ApiOperation(value = "新闻列表(后台)")
+    @ApiImplicitParam(name = "queryData", value = "查询条件")
+    @PostMapping("findAllNews")
+    public JsonPageResult findAllNews(@RequestBody QueryData queryData) {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            IPage page = newsService.findAllNews(filter);
+            this.handlePage(page);
+            jsonResult.setPageData(page);
+        } catch (Exception e) {
+            jsonResult.setSuccess(false);
+            this.logger.error(ExceptionUtil.getExceptionMessage(e));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
+        }
+        return jsonResult;
+    }
+
+    @ApiOperation(value = "新闻资讯(无分页,前台)")
+    @GetMapping("getAllList")
+    public JsonPageResult getAllList() {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        List<NewsPcVo> newsPcVoList = newsService.getAllList();
+        jsonResult.setData(newsPcVoList);
+        return jsonResult;
+    }
+
+    @ApiOperation(value = "前台新闻列表")
+    @PostMapping("findAllPcNews")
+    public JsonPageResult findAllPcNews(@RequestBody QueryData queryData) {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            IPage page = newsService.findAllPcNews(filter);
+            this.handlePage(page);
+            jsonResult.setPageData(page);
+        } catch (Exception e) {
+            jsonResult.setSuccess(false);
+            this.logger.error(ExceptionUtil.getExceptionMessage(e));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
+        }
+        return jsonResult;
+    }
+
+    @ApiOperation("前台新闻详情")
+    @GetMapping("findByIdPcNews/{newsId}")
+    public JsonResult getAllList(@PathVariable("newsId") String newsId) {
+        JsonResult<News> newsJsonResult = this.get(newsId);
+        // 统计浏览数量
+        newsService.countViews(queryLoginUser(),newsId);
+        return newsJsonResult;
+    }
+
+    /**
+     * 获取登录员工信息
+     * @return
+     */
+    private String queryLoginUser() {
+        String loginUserId = null;
+        try {
+            JPaasUser jPaasUser = SysUserUtil.getLoginUser();
+            if (jPaasUser == null) {
+                return null;
+            }
+            loginUserId = jPaasUser.getUserId();
+        } catch (IOException e) {
+            log.error(ExceptionUtil.getExceptionMessage(e));
+        }
+        return loginUserId;
+    }
 
 }
 

+ 3 - 17
src/main/java/com/redxun/knowledge/entity/dao/News.java

@@ -18,6 +18,9 @@ import com.redxun.common.base.entity.BaseExtEntity;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
+import oracle.sql.BLOB;
+
+import java.sql.Blob;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -64,23 +67,6 @@ public class News  extends BaseExtEntity<java.lang.String> {
     @TableField(value = "IS_DEL")
     @TableLogic
     private Integer isDel;
-    ////公司ID
-    //@TableField(value = "COMPANY_ID_")
-    //private String companyId;
-    ////创建人
-    //@TableField(value = "CREATED_BY_")
-    //private String createdBy;
-    ////创建时间
-    //@TableField(value = "CREATED_TIME_")
-    //private java.util.Date createdTime;
-    ////更新人
-    //@TableField(value = "UPDATED_BY_")
-    //private String updatedBy;
-    ////更新时间
-    //@TableField(value = "UPDATED_TIME_")
-    //private java.util.Date updatedTime;
-
-
 
     @Override
     public String getPkId() {

+ 67 - 0
src/main/java/com/redxun/knowledge/entity/vo/NewsAdminVo.java

@@ -0,0 +1,67 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 文件名: NewsAdminVo
+ * 作者: Zizg
+ * 时间: 2022/11/23
+ * 描述: 新闻列表Vo
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class NewsAdminVo {
+    //主键
+    private String pkId;
+
+    //新闻标题
+    private String title;
+
+    //新闻作者ID
+    private String authorId;
+
+    //新闻作者
+    private String author;
+
+    //缩略图附件ID
+    private String thumbnail;
+
+    //是否可用;1-可用 0-不可用
+    private Integer enabled;
+
+    //新闻简介
+    private String summary;
+
+    //新闻正文
+    private String content;
+
+    //浏览数量
+    private Integer views;
+
+    //创建时间
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date createTime;
+
+
+
+}
+

+ 28 - 0
src/main/java/com/redxun/knowledge/entity/vo/NewsPcVo.java

@@ -0,0 +1,28 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+/**
+ * 文件名: NewsPcVo
+ * 作者: Zizg
+ * 时间: 2022/11/24
+ * 描述: 新闻资讯Vo
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class NewsPcVo {
+    //主键
+    private String pkId;
+
+    //新闻标题
+    private String title;
+
+    //新闻简介
+    private String summary;
+
+    //缩略图附件ID
+    private String thumbnail;
+}

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

@@ -1,8 +1,12 @@
 package com.redxun.knowledge.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.knowledge.entity.dao.News;
 import org.apache.ibatis.annotations.Mapper;
 import com.redxun.common.base.db.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
 * 业务--新闻表数据库访问层
@@ -10,4 +14,13 @@ import com.redxun.common.base.db.BaseDao;
 @Mapper
 public interface NewsMapper extends BaseDao<News> {
 
+    /**
+     * 分页查询
+     * @param page
+     * @param params
+     * @return
+     */
+    IPage findAllNews(IPage<News> page,@Param("w") Map<String, Object> params);
+
+    IPage findAllPcNews(IPage page,@Param("params") Map<String,Object> params);
 }

+ 21 - 16
src/main/java/com/redxun/knowledge/service/BannerServiceImpl.java

@@ -1,20 +1,19 @@
 
 package com.redxun.knowledge.service;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.base.db.BaseDao;
 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.tool.IdGenerator;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.knowledge.entity.dao.Banner;
+import com.redxun.knowledge.entity.vo.BannerPcVo;
 import com.redxun.knowledge.mapper.BannerMapper;
-import com.redxun.knowledge.mapper.BannerMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
+
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -34,21 +33,27 @@ public class BannerServiceImpl extends SuperServiceImpl<BannerMapper, Banner> im
         return bannerMapper;
     }
 
+
     public IPage findAllBanner(QueryFilter filter) {
         Map<String, Object> params = PageHelper.constructParams(filter);
         return bannerMapper.findAllBanner(filter.getPage(), params);
     }
 
-    ///**
-    // * 查询全部banner展示(默认展示10张)
-    // * @return
-    // */
-    //@Override
-    //public List<Banner> getAll() {
-    //    QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
-    //    queryWrapper.orderByDesc("CREATE_TIME_");
-    //    List<Banner> bannersList = bannerMapper.selectList(queryWrapper);
-    //    List<Banner> result = bannersList.parallelStream().limit(10).collect(Collectors.toList());
-    //    return result;
-    //}
+    /**
+     * 前台查询全部banner展示(默认展示10张)
+     * @return
+     */
+    public List<BannerPcVo> getAllList() {
+        QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ENABLED",1);
+        queryWrapper.orderByDesc("SORT").orderByDesc("CREATE_TIME_");
+        List<Banner> bannersList = bannerMapper.selectList(queryWrapper);
+        List<Banner> result = bannersList.parallelStream().limit(10).collect(Collectors.toList());
+        List<BannerPcVo> collectBannerPcVo = result.parallelStream().map(e -> {
+            BannerPcVo bannerPcVo = new BannerPcVo();
+            BeanUtils.copyProperties(e, bannerPcVo);
+            return bannerPcVo;
+        }).collect(Collectors.toList());
+        return collectBannerPcVo;
+    }
 }

+ 86 - 7
src/main/java/com/redxun/knowledge/service/NewsServiceImpl.java

@@ -1,22 +1,32 @@
 
 package com.redxun.knowledge.service;
 
-import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
-import com.redxun.common.tool.IdGenerator;
+import com.redxun.common.base.db.PageHelper;
+import com.redxun.common.base.entity.QueryData;
+import com.redxun.common.base.search.QueryFilter;
+import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.knowledge.entity.dao.News;
+import com.redxun.knowledge.entity.vo.NewsAdminVo;
+import com.redxun.knowledge.entity.vo.NewsPcVo;
 import com.redxun.knowledge.mapper.NewsMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.List;
+
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
-* [业务--新闻表]业务服务类
-*/
+ * [业务--新闻表]业务服务类
+ */
+@Slf4j
 @Service
 public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implements BaseService<News> {
 
@@ -28,4 +38,73 @@ public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implemen
         return newsMapper;
     }
 
+    /**
+     * 后台新闻列表(分页)
+     *
+     * @param filter
+     * @return
+     */
+    public IPage findAllNews(QueryFilter filter) {
+        Map<String, Object> params = PageHelper.constructParams(filter);
+        IPage page = newsMapper.findAllNews(filter.getPage(), params);
+        List<News> newsList = page.getRecords();
+        List<NewsAdminVo> collectNewsAdminVoList = newsList.parallelStream().map(e -> {
+            NewsAdminVo newsAdminVo = new NewsAdminVo();
+            BeanUtils.copyProperties(e, newsAdminVo);
+            return newsAdminVo;
+        }).collect(Collectors.toList());
+        page.setRecords(collectNewsAdminVoList);
+        return page;
+    }
+
+    /**
+     * 首页新闻资讯 前台展示
+     *
+     * @return
+     */
+    public List<NewsPcVo> getAllList() {
+        // 组装分页
+        QueryData queryData = new QueryData();
+        queryData.setPageNo(1);
+        queryData.setPageSize(10);
+        QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+        IPage page = this.findAllNews(filter);
+        // 查询后台展示结果
+        List<NewsAdminVo> records = page.getRecords();
+        // 前台展示结果处理
+        List<NewsPcVo> collectNewsPcVoList = records.stream().
+                filter(e -> e.getEnabled() == 1).
+                limit(6).
+                map(e -> {
+                    NewsPcVo newsPcVo = new NewsPcVo();
+                    BeanUtils.copyProperties(e, newsPcVo);
+                    return newsPcVo;
+                }).collect(Collectors.toList());
+        return collectNewsPcVoList;
+    }
+
+    /**
+     * 前台分页列表
+     *
+     * @param filter
+     * @return
+     */
+    public IPage findAllPcNews(QueryFilter filter) {
+        IPage page = newsMapper.findAllPcNews(filter.getPage(), filter.getParams());
+        return page;
+    }
+
+
+    /**
+     * 统计浏览数量
+     * @param loginUserId
+     */
+    public News countViews(String loginUserId,String newsId) {
+        Map<String ,Integer> map = new HashMap<>();
+
+        News news = new News();
+        news.setPkId(newsId);
+        //news.setViews(viewsNum);
+        return news;
+    }
 }

+ 32 - 0
src/main/java/com/redxun/knowledge/task/ScheduledTask.java

@@ -0,0 +1,32 @@
+package com.redxun.knowledge.task;
+
+import com.redxun.knowledge.service.NewsServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+/**
+ * 文件名: task
+ * 作者: Zizg
+ * 时间: 2022/11/24
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Component
+@EnableScheduling
+public class ScheduledTask {
+
+    @Autowired
+    private NewsServiceImpl newsService;
+
+    @Scheduled(cron = "0 0 0 * * ? ")
+    public void task(){
+        newsService.countViews("", "");
+    }
+}

+ 11 - 2
src/main/resources/mapper/knowledge/BannerMapper.xml

@@ -21,9 +21,17 @@
                 <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
     </resultMap>
 
+    <sql id="COLUMNS">
+        PK_ID,TYPE,NAME,SUMMARY,BANNER_FILE,KNOWLEDGE_ID,SORT,
+        ENABLED,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,
+        CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
+    </sql>
+
 
     <select id="query" resultType="com.redxun.knowledge.entity.dao.Banner" parameterType="java.util.Map">
-        select PK_ID,TYPE,NAME,SUMMARY,BANNER_FILE,KNOWLEDGE_ID,SORT,ENABLED,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_ from KM_BANNER
+        select PK_ID,TYPE,NAME,SUMMARY,BANNER_FILE,KNOWLEDGE_ID,SORT,
+        ENABLED,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,
+        CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_ from KM_BANNER
         <where>
             <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
                 ${w.whereSql}
@@ -38,7 +46,8 @@
     </select>
 
     <select id="findAllBanner" resultType="com.redxun.knowledge.entity.vo.BannerPcVo">
-        SELECT *
+        SELECT
+        <include refid="COLUMNS" />
         FROM KM_BANNER
         <where>
             <if test="@rx.Ognl@isNotEmpty(w.whereSql)">

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

@@ -9,7 +9,7 @@
                 <result property="author" column="AUTHOR" jdbcType="VARCHAR"/>
                 <result property="summary" column="SUMMARY" jdbcType="VARCHAR"/>
                 <result property="thumbnail" column="THUMBNAIL" jdbcType="VARCHAR"/>
-                <result property="content" column="CONTENT" jdbcType="BLOB"/>
+                <result property="content" column="CONTENT" jdbcType="VARCHAR"/>
                 <result property="views" column="VIEWS" jdbcType="INTEGER"/>
                 <result property="enabled" column="ENABLED" jdbcType="INTEGER"/>
                 <result property="isDel" column="IS_DEL" jdbcType="INTEGER"/>
@@ -22,9 +22,16 @@
                 <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
     </resultMap>
 
+    <sql id="columns">
+        PK_ID,TITLE,AUTHOR_ID,AUTHOR,SUMMARY,THUMBNAIL,CONTENT,VIEWS,ENABLED,IS_DEL,
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,
+        CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
+    </sql>
 
     <select id="query" resultType="com.redxun.knowledge.entity.dao.News" parameterType="java.util.Map">
-        select PK_ID,TITLE,AUTHOR_ID,AUTHOR,SUMMARY,THUMBNAIL,CONTENT,VIEWS,ENABLED,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_ from KM_NEWS
+        select PK_ID,TITLE,AUTHOR_ID,AUTHOR,SUMMARY,THUMBNAIL,CONTENT,VIEWS,ENABLED,IS_DEL,
+        COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,
+        CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_ from KM_NEWS
         <where>
             <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
                 ${w.whereSql}
@@ -38,6 +45,36 @@
         </if>
     </select>
 
+    <select id="findAllNews" resultType="com.redxun.knowledge.entity.dao.News">
+        SELECT
+        <include refid="columns" />
+        FROM KM_NEWS
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
+                ${w.whereSql}
+            </if>
+            and IS_DEL = 0
+        </where>
+        <if test="@rx.Ognl@isNotEmpty(w.orderBySql)">
+            ORDER BY ${w.orderBySql}
+        </if>
+    </select>
+
+    <select id="findAllPcNews" resultType="com.redxun.knowledge.entity.vo.NewsAdminVo">
+        SELECT
+        <include refid="columns" />
+        FROM KM_NEWS
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(params.keyword)">
+                (TITLE LIKE '%' || #{params.keyword} || '%' OR
+                AUTHOR LIKE '%' || #{params.keyword} || '%' OR
+                CONTENT LIKE '%' || #{params.keyword} || '%')
+            </if>
+            and IS_DEL = 0 and ENABLED = 1
+        </where>
+        order by VIEWS DESC
+    </select>
+
 </mapper>