浏览代码

接口:知识库标签-分页条件搜索标签管理列表

YangL 2 年之前
父节点
当前提交
a3a6b152e2

+ 1 - 1
src/main/java/com/redxun/knowledge/common/MessageService.java

@@ -27,7 +27,7 @@ public class MessageService {
     }
 
     /**
-     * 发送站内信
+     * 发送企业微信消息
      *
      * @param title    标题
      * @param content  内容

+ 16 - 0
src/main/java/com/redxun/knowledge/common/UserService.java

@@ -1,6 +1,7 @@
 package com.redxun.knowledge.common;
 
 import com.redxun.common.model.JPaasUser;
+import com.redxun.common.tool.StringUtils;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.common.utils.SysUserUtil;
 import com.redxun.feign.org.UserClient;
@@ -28,6 +29,7 @@ public class UserService {
 
     /**
      * 获取当前系统登录用户id
+     *
      * @return
      */
     public String queryLoginUser() {
@@ -47,6 +49,7 @@ public class UserService {
 
     /**
      * 获取当前系统登录用户姓名
+     *
      * @return
      */
     public String queryLoginUserName() {
@@ -54,4 +57,17 @@ public class UserService {
         String fullName = userClient.findByUserId(userId).getFullName();
         return fullName;
     }
+
+    /**
+     * 根据用户ID查询用户对象
+     *
+     * @param userId 用户ID
+     * @return
+     */
+    public JPaasUser queryUser(String userId) {
+        if (StringUtils.isEmpty(userId)) {
+            return null;
+        }
+        return userClient.getUserById(userId);
+    }
 }

+ 31 - 0
src/main/java/com/redxun/knowledge/controller/KnowledgeLabelController.java

@@ -1,12 +1,18 @@
 
 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.base.entity.QueryData;
+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.KnowledgeLabel;
+import com.redxun.knowledge.entity.vo.KnowledgeLabelVo;
 import com.redxun.knowledge.service.KnowledgeLabelServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
@@ -53,5 +59,30 @@ public class KnowledgeLabelController extends BaseController<KnowledgeLabel> {
         }
         return jsonResult;
     }
+
+    /**
+     * 分页条件搜索标签管理列表
+     *
+     * @param queryData name	标签名称
+     *                  createTimeBegin	开始时间
+     *                  createTimeEnd	结束时间
+     * @return
+     */
+    @ApiOperation(value = "分页条件搜索标签管理列表", httpMethod = "POST")
+    @PostMapping("findAllTags")
+    public JsonPageResult findAllTags(@RequestBody QueryData queryData) {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            IPage<KnowledgeLabelVo> page = knowledgeLabelService.findAllTags(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;
+    }
 }
 

+ 39 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeLabelVo.java

@@ -0,0 +1,39 @@
+package com.redxun.knowledge.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class KnowledgeLabelVo {
+    // 主键
+    private String pkId;
+
+    // 标签名称
+    private String name;
+
+    // 操作人
+    private String operator;
+
+    // 操作人姓名
+    private String operatorName;
+
+    // 操作时间
+    @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 operateTime;
+
+    // 排序
+    private Integer sort;
+}

+ 7 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeLabelMapper.java

@@ -1,8 +1,13 @@
 package com.redxun.knowledge.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.knowledge.entity.dao.KnowledgeLabel;
+import com.redxun.knowledge.entity.vo.KnowledgeLabelVo;
 import org.apache.ibatis.annotations.Mapper;
 import com.redxun.common.base.db.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * 业务--知识标签表数据库访问层
@@ -11,4 +16,6 @@ import com.redxun.common.base.db.BaseDao;
 public interface KnowledgeLabelMapper extends BaseDao<KnowledgeLabel> {
 
     void adjustSort(Integer adjustSort);
+
+    IPage<KnowledgeLabelVo> findAllTags(IPage page, Map<String, Object> params);
 }

+ 19 - 11
src/main/java/com/redxun/knowledge/service/KnowledgeLabelServiceImpl.java

@@ -1,29 +1,24 @@
 
 package com.redxun.knowledge.service;
 
-import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+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.search.QueryFilter;
 import com.redxun.common.model.JPaasUser;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.StringUtils;
-import com.redxun.common.utils.ExceptionUtil;
-import com.redxun.common.utils.SysUserUtil;
 import com.redxun.knowledge.common.UserService;
+import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.entity.dao.KnowledgeLabel;
+import com.redxun.knowledge.entity.vo.BannerAdminVo;
+import com.redxun.knowledge.entity.vo.KnowledgeLabelVo;
 import com.redxun.knowledge.mapper.KnowledgeLabelMapper;
-import freemarker.template.ObjectWrapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import javax.annotation.Resource;
 
 /**
@@ -73,4 +68,17 @@ public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMa
 
         return null;
     }
+
+    public IPage<KnowledgeLabelVo> findAllTags(QueryFilter filter) {
+        IPage<KnowledgeLabelVo> page = knowledgeLabelMapper.findAllTags(filter.getPage(), filter.getParams());
+        List<KnowledgeLabelVo> knowledgeLabelVos = page.getRecords();
+        knowledgeLabelVos.forEach(e -> {
+            JPaasUser user = userService.queryUser(e.getOperator());
+            if (user != null) {
+                e.setOperatorName(user.getFullName());
+            }
+        });
+
+        return page;
+    }
 }

+ 20 - 0
src/main/resources/mapper/knowledge/KnowledgeLabelMapper.xml

@@ -39,6 +39,26 @@
         SET sort = sort + 1
         WHERE sort >= #{adjustSort}
     </update>
+
+    <select id="findAllTags" parameterType="java.util.Map" resultType="com.redxun.knowledge.entity.vo.KnowledgeLabelVo">
+        SELECT PK_ID, NAME, SORT, CASE WHEN UPDATE_BY_ IS NULL THEN CREATE_BY_ ELSE UPDATE_BY_ END OPERATOR, CASE WHEN
+        UPDATE_TIME_
+        IS NULL THEN CREATE_TIME_ ELSE UPDATE_TIME_ END OPERATE_TIME
+        FROM KM_KNOWLEDGE_LABEL
+        <where>
+            IS_DEL = 0
+            <if test="@rx.Ognl@isNotEmpty(params.name)">
+                AND name like '%'||#{params.name}||'%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createTimeBegin)">
+                AND CREATE_TIME_ &gt;= TO_DATE(#{params.createTimeBegin, jdbcType=DATE}, 'YYYY-MM-DD HH24:MI:SS')
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createTimeEnd)">
+                AND CREATE_TIME_ &lt;= TO_DATE(#{params.createTimeEnd, jdbcType=DATE}, 'YYYY-MM-DD HH24:MI:SS')
+            </if>
+        </where>
+        ORDER BY SORT ASC
+    </select>
 </mapper>