Procházet zdrojové kódy

作者:张哲
时间:2022/11/25
类型:开发
描述:[后台]配置管理-banner管理模块

ZizgZh před 2 roky
rodič
revize
a9215a2b8c

+ 10 - 5
src/main/java/com/redxun/knowledge/controller/BannerController.java

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
-import com.redxun.common.base.entity.JsonPage;
 import com.redxun.common.base.entity.JsonPageResult;
+import com.redxun.common.base.entity.JsonResult;
 import com.redxun.common.base.entity.QueryData;
 import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.base.search.QueryFilterBuilder;
@@ -14,9 +14,6 @@ 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;
-import com.redxun.common.tool.StringUtils;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -25,7 +22,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
 import java.util.List;
 
 @Slf4j
@@ -67,6 +63,7 @@ public class BannerController extends BaseController<Banner> {
         return jsonResult;
     }
 
+
     @ApiOperation(value = "Banner列表(无分页,前台)")
     @GetMapping("getAllList")
     public JsonPageResult getAllList() {
@@ -75,5 +72,13 @@ public class BannerController extends BaseController<Banner> {
         jsonResult.setData(bannerPcVoList);
         return jsonResult;
     }
+
+    @ApiOperation(value = "删除banner")
+    @GetMapping("deleteBanner")
+    public JsonResult deleteBanner(@RequestParam("bannerId") String bannerId){
+        bannerService.deleteBanner(bannerId);
+        return JsonResult.Success(bannerId);
+    }
+
 }
 

+ 33 - 4
src/main/java/com/redxun/knowledge/controller/NewsController.java

@@ -21,9 +21,13 @@ 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.data.redis.connection.ConnectionUtils;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpSession;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -38,6 +42,9 @@ public class NewsController extends BaseController<News> {
     @Autowired
     NewsServiceImpl newsService;
 
+    @Autowired
+    private RedisTemplate redisTemplate;
+
 
     @Override
     public BaseService getBaseService() {
@@ -49,7 +56,7 @@ public class NewsController extends BaseController<News> {
         return "业务--新闻表";
     }
 
-    @ApiOperation(value = "新闻列表(后台)")
+    @ApiOperation(value = "新闻列表(有分页,后台)")
     @ApiImplicitParam(name = "queryData", value = "查询条件")
     @PostMapping("findAllNews")
     public JsonPageResult findAllNews(@RequestBody QueryData queryData) {
@@ -94,11 +101,33 @@ public class NewsController extends BaseController<News> {
     }
 
     @ApiOperation("前台新闻详情")
-    @GetMapping("findByIdPcNews/{newsId}")
-    public JsonResult getAllList(@PathVariable("newsId") String newsId) {
+    @GetMapping("findByIdPcNews")
+    public JsonResult getAllList(@RequestParam("newsId") String newsId,
+                                 HttpSession httpSession) {
         JsonResult<News> newsJsonResult = this.get(newsId);
         // 统计浏览数量
-        newsService.countViews(queryLoginUser(),newsId);
+        // TODO: 2022/11/25 后续取登录员工信息
+        String loginUserId = "1001";
+        List<String> newsIdAttr = (List<String>) httpSession.getServletContext().getAttribute(loginUserId);
+        if (newsIdAttr == null){
+            List<String> initNewsIds = new ArrayList<>();
+            initNewsIds.add(newsId);
+            httpSession.getServletContext().setAttribute(loginUserId,initNewsIds);
+        }
+        if (newsIdAttr != null || !newsIdAttr.contains(newsId)){
+            newsIdAttr.add(newsId);
+            httpSession.getServletContext().setAttribute(loginUserId,newsIdAttr);
+        }
+        newsIdAttr.forEach(e -> {
+            if (redisTemplate.hasKey(e)){
+                // 获取该新闻浏览数量
+                Integer views = (Integer) redisTemplate.opsForValue().get(e);
+                redisTemplate.opsForValue().set(e,++views);
+            } else {
+                Integer views = newsJsonResult.getData().getViews();
+                redisTemplate.opsForValue().set(e,++views);
+            }
+        });
         return newsJsonResult;
     }
 

+ 1 - 1
src/main/java/com/redxun/knowledge/entity/dao/Banner.java

@@ -59,7 +59,7 @@ public class Banner  extends BaseExtEntity<java.lang.String> {
     private Integer enabled;
     //删除标记
     @TableField(value = "IS_DEL")
-    @TableLogic
+    @TableLogic(value = "0", delval = "1")
     private Integer isDel;
 
     @Override

+ 0 - 16
src/main/java/com/redxun/knowledge/entity/dao/Knowledge.java

@@ -79,22 +79,6 @@ public class Knowledge  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

+ 0 - 17
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprovalNode.java

@@ -52,23 +52,6 @@ public class KnowledgeApprovalNode  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() {

+ 1 - 16
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprove.java

@@ -70,22 +70,7 @@ public class KnowledgeApprove  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;
-    //审批意见
+
     @TableField(value = "COMMENT")
     private String comment;
 

+ 0 - 17
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeCategory.java

@@ -52,23 +52,6 @@ public class KnowledgeCategory  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() {

+ 0 - 17
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeLabel.java

@@ -46,23 +46,6 @@ public class KnowledgeLabel  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() {

+ 65 - 0
src/main/java/com/redxun/knowledge/entity/vo/BannerAdminVo.java

@@ -0,0 +1,65 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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.io.Serializable;
+import java.util.Date;
+
+/**
+ * 文件名: BannerAdminVo
+ * 作者: Zizg
+ * 时间: 2022/11/25
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Data
+public class BannerAdminVo implements Serializable {
+    //主键
+    private String pkId;
+
+    //Banner名称
+    private String name;
+
+    //Banner图片附件ID
+    private String bannerFile;
+
+    //Banner类型;1-展示 2-维基知识
+    private Integer type;
+
+    //知识ID
+    private String knowledgeId;
+
+    //是否可用;1-可用 0-不可用
+    private Integer enabled;
+
+    //操作人
+    private String updateBy;
+
+    //排序
+    private Integer sort;
+
+    //操作时间
+    @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 updateTime;
+
+
+
+}

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

@@ -39,12 +39,6 @@ public class NewsAdminVo {
     //是否可用;1-可用 0-不可用
     private Integer enabled;
 
-    //新闻简介
-    private String summary;
-
-    //新闻正文
-    private String content;
-
     //浏览数量
     private Integer views;
 

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

@@ -14,5 +14,7 @@ import java.util.Map;
 @Mapper
 public interface BannerMapper extends BaseDao<Banner> {
 
-    IPage findAllBanner(IPage<Banner> var1, @Param("w") Map<String, Object> var2);
+    IPage findAllBanner(IPage<Banner> page, @Param("params") Map<String, Object> params,@Param("w") Map<String, Object> order);
+
+    void deleteBanner(String pkId);
 }

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

@@ -20,7 +20,7 @@ public interface NewsMapper extends BaseDao<News> {
      * @param params
      * @return
      */
-    IPage findAllNews(IPage<News> page,@Param("w") Map<String, Object> params);
+    IPage findAllNews(IPage<News> page,@Param("params")Map<String, Object> params,@Param("w") Map<String, Object> order);
 
     IPage findAllPcNews(IPage page,@Param("params") Map<String,Object> params);
 }

+ 11 - 2
src/main/java/com/redxun/knowledge/service/BannerServiceImpl.java

@@ -14,10 +14,10 @@ import com.redxun.knowledge.mapper.BannerMapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import javax.annotation.Resource;
 
 /**
 * [业务--首页banner表]业务服务类
@@ -34,9 +34,14 @@ public class BannerServiceImpl extends SuperServiceImpl<BannerMapper, Banner> im
     }
 
 
+    /**
+     * 后台查询全部banner展示(分页)
+     * @param filter
+     * @return
+     */
     public IPage findAllBanner(QueryFilter filter) {
         Map<String, Object> params = PageHelper.constructParams(filter);
-        return bannerMapper.findAllBanner(filter.getPage(), params);
+        return bannerMapper.findAllBanner(filter.getPage(),filter.getParams(),params);
     }
 
     /**
@@ -56,4 +61,8 @@ public class BannerServiceImpl extends SuperServiceImpl<BannerMapper, Banner> im
         }).collect(Collectors.toList());
         return collectBannerPcVo;
     }
+
+    public void deleteBanner(String pkId) {
+        bannerMapper.deleteBanner(pkId);
+    }
 }

+ 2 - 14
src/main/java/com/redxun/knowledge/service/NewsServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -46,7 +47,7 @@ public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implemen
      */
     public IPage findAllNews(QueryFilter filter) {
         Map<String, Object> params = PageHelper.constructParams(filter);
-        IPage page = newsMapper.findAllNews(filter.getPage(), params);
+        IPage page = newsMapper.findAllNews(filter.getPage(), filter.getParams(),params);
         List<News> newsList = page.getRecords();
         List<NewsAdminVo> collectNewsAdminVoList = newsList.parallelStream().map(e -> {
             NewsAdminVo newsAdminVo = new NewsAdminVo();
@@ -94,17 +95,4 @@ public class NewsServiceImpl extends SuperServiceImpl<NewsMapper, News> implemen
         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;
-    }
 }

+ 2 - 1
src/main/java/com/redxun/knowledge/task/ScheduledTask.java

@@ -27,6 +27,7 @@ public class ScheduledTask {
 
     @Scheduled(cron = "0 0 0 * * ? ")
     public void task(){
-        newsService.countViews("", "");
+
+        //newsService.countViews("", "");
     }
 }

+ 32 - 5
src/main/resources/mapper/knowledge/BannerMapper.xml

@@ -45,21 +45,48 @@
         </if>
     </select>
 
-    <select id="findAllBanner" resultType="com.redxun.knowledge.entity.vo.BannerPcVo">
+    <select id="findAllBanner" resultType="com.redxun.knowledge.entity.vo.BannerAdminVo">
         SELECT
         <include refid="COLUMNS" />
         FROM KM_BANNER
         <where>
-            <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
-                ${w.whereSql}
+            <if test="@rx.Ognl@isNotEmpty(params.name)">
+                NAME LIKE '%' || #{params.name} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.type)">
+                and TYPE = #{params.type}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.enabled)">
+                and ENABLED = #{params.enabled}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createBy)">
+                and CREATE_BY_ LIKE '%' || #{params.createBy} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.beginTime)">
+                and CREATE_TIME_ &gt;= TO_DATE(#{params.beginTime}, 'YYYY-MM-DD')
             </if>
-            and ENABLED = 1
+            <if test="@rx.Ognl@isNotEmpty(params.endTime)">
+                and CREATE_TIME_ &lt;= TO_DATE(#{params.endTime}, 'YYYY-MM-DD')
+            </if>
+            and IS_DEL = 0
         </where>
+        ORDER BY ENABLED DESC
         <if test="@rx.Ognl@isNotEmpty(w.orderBySql)">
-            ORDER BY ${w.orderBySql}
+            ,${w.orderBySql}
         </if>
+        <if test="@rx.Ognl@isEmpty(w.orderBySql)">
+            ,UPDATE_TIME_ DESC
+        </if>
+        ,SORT DESC
     </select>
 
+    <delete id="deleteBanner">
+        update KM_BANNER
+        SET
+        IS_DEL = 1,UPDATE_TIME_ = sysdate
+        where PK_ID = #{pkId}
+    </delete>
+
 </mapper>
 
 

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

@@ -50,13 +50,29 @@
         <include refid="columns" />
         FROM KM_NEWS
         <where>
-            <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
-                ${w.whereSql}
+            <if test="@rx.Ognl@isNotEmpty(params.title)">
+                TITLE LIKE '%' || #{params.title} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.enabled)">
+                and ENABLED = #{params.enabled}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.author)">
+                and AUTHOR LIKE '%' || #{params.author} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.beginTime)">
+                and CREATE_TIME_ &gt;= TO_DATE(#{params.beginTime}, 'YYYY-MM-DD')
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.endTime)">
+                and CREATE_TIME_ &lt;= TO_DATE(#{params.endTime}, 'YYYY-MM-DD')
             </if>
             and IS_DEL = 0
         </where>
+        ORDER BY ENABLED DESC
         <if test="@rx.Ognl@isNotEmpty(w.orderBySql)">
-            ORDER BY ${w.orderBySql}
+            ,${w.orderBySql}
+        </if>
+        <if test="@rx.Ognl@isEmpty(w.orderBySql)">
+            ,CREATE_TIME_ DESC
         </if>
     </select>