瀏覽代碼

接口:知识库标签-新增/修改标签数据

YangL 2 年之前
父節點
當前提交
39d411a025

+ 33 - 18
src/main/java/com/redxun/knowledge/controller/KnowledgeLabelController.java

@@ -5,7 +5,7 @@ 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.JsonResult;
-import com.redxun.common.tool.StringUtils;
+import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.KnowledgeLabel;
 import com.redxun.knowledge.service.KnowledgeLabelServiceImpl;
 import com.redxun.web.controller.BaseController;
@@ -14,29 +14,44 @@ 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.util.List;
 
 @Slf4j
 @RestController
 @RequestMapping("/api-knowledge/knowledge/knowledgeLabel")
 @Api(tags = "业务--知识标签表")
-@ClassDefine(title = "业务--知识标签表",alias = "KnowledgeLabelController",path = "/knowledge/knowledgeLabel",packages = "",packageName = "子系统名称")
+@ClassDefine(title = "业务--知识标签表", alias = "KnowledgeLabelController", path = "/api-knowledge/knowledge/knowledgeLabel", packages = "", packageName = "子系统名称")
 public class KnowledgeLabelController extends BaseController<KnowledgeLabel> {
 
-@Autowired
-KnowledgeLabelServiceImpl knowledgeLabelService;
-
-
-@Override
-public BaseService getBaseService() {
-return knowledgeLabelService;
-}
-
-@Override
-public String getComment() {
-return "业务--知识标签表";
-}
-
+    @Autowired
+    KnowledgeLabelServiceImpl knowledgeLabelService;
+
+
+    @Override
+    public BaseService getBaseService() {
+        return knowledgeLabelService;
+    }
+
+    @Override
+    public String getComment() {
+        return "业务--知识标签表";
+    }
+
+    @ApiOperation(value = "新增/修改标签数据", httpMethod = "POST")
+    @PostMapping("saveOrUpdateTags")
+    public JsonResult saveOrUpdateTags(@RequestParam(value = "id", required = false) String id, @RequestParam(value = "name", required = true) String name, @RequestParam(value = "sort", required = true) Integer sort) {
+        JsonResult jsonResult = JsonResult.getSuccessResult("请求成功!");
+        try {
+            KnowledgeLabel result = knowledgeLabelService.saveOrUpdateTags(id, name, sort);
+            if (ObjectUtils.isEmpty(result)) {
+                jsonResult.setSuccess(false);
+            }
+            jsonResult.setData(result);
+        } catch (Exception e) {
+            jsonResult.setSuccess(false);
+            this.logger.error(ExceptionUtil.getExceptionMessage(e));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
+        }
+        return jsonResult;
+    }
 }
 

+ 3 - 2
src/main/java/com/redxun/knowledge/mapper/KnowledgeLabelMapper.java

@@ -5,9 +5,10 @@ import org.apache.ibatis.annotations.Mapper;
 import com.redxun.common.base.db.BaseDao;
 
 /**
-* 业务--知识标签表数据库访问层
-*/
+ * 业务--知识标签表数据库访问层
+ */
 @Mapper
 public interface KnowledgeLabelMapper extends BaseDao<KnowledgeLabel> {
 
+    void adjustSort(Integer adjustSort);
 }

+ 57 - 2
src/main/java/com/redxun/knowledge/service/KnowledgeLabelServiceImpl.java

@@ -3,20 +3,31 @@ 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.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
+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.entity.dao.KnowledgeLabel;
 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 javax.annotation.Resource;
 
 /**
-* [业务--知识标签表]业务服务类
-*/
+ * [业务--知识标签表]业务服务类
+ */
 @Service
 public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMapper, KnowledgeLabel> implements BaseService<KnowledgeLabel> {
 
@@ -28,4 +39,48 @@ public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMa
         return knowledgeLabelMapper;
     }
 
+    /**
+     * 新增/修改标签数据
+     *
+     * @param id   标签ID
+     * @param name 标签名称
+     * @param sort 标签排序
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public KnowledgeLabel saveOrUpdateTags(String id, String name, Integer sort) {
+        KnowledgeLabel knowledgeLabel = new KnowledgeLabel();
+        if (StringUtils.isEmpty(id)) {
+            knowledgeLabel.setPkId(IdGenerator.getIdStr());
+            knowledgeLabel.setCreateBy(queryLoginUser());
+            knowledgeLabel.setCreateTime(new Date());
+        } else {
+            knowledgeLabel.setPkId(id);
+            knowledgeLabel.setUpdateBy(queryLoginUser());
+            knowledgeLabel.setCreateTime(new Date());
+        }
+        knowledgeLabel.setName(name);
+        knowledgeLabel.setSort(sort);
+        // 更新sort
+        knowledgeLabelMapper.adjustSort(sort);
+        if (saveOrUpdate(knowledgeLabel)) {
+            return knowledgeLabelMapper.selectById(knowledgeLabel.getPkId());
+        }
+
+        return null;
+    }
+
+    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;
+    }
 }

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

@@ -3,22 +3,24 @@
 <mapper namespace="com.redxun.knowledge.mapper.KnowledgeLabelMapper">
 
     <resultMap id="KnowledgeLabel" type="com.redxun.knowledge.entity.dao.KnowledgeLabel">
-                <id property="pkId" column="PK_ID" jdbcType="VARCHAR"/>
-                <result property="name" column="NAME" jdbcType="VARCHAR"/>
-                <result property="sort" column="SORT" jdbcType="INTEGER"/>
-                <result property="isDel" column="IS_DEL" jdbcType="INTEGER"/>
-                <result property="companyId" column="COMPANY_ID_" jdbcType="VARCHAR"/>
-                <result property="createDepId" column="CREATE_DEP_ID_" jdbcType="VARCHAR"/>
-                <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
-                <result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
-                <result property="createTime" column="CREATE_TIME_" jdbcType="DATE"/>
-                <result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
-                <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
+        <id property="pkId" column="PK_ID" jdbcType="VARCHAR"/>
+        <result property="name" column="NAME" jdbcType="VARCHAR"/>
+        <result property="sort" column="SORT" jdbcType="INTEGER"/>
+        <result property="isDel" column="IS_DEL" jdbcType="INTEGER"/>
+        <result property="companyId" column="COMPANY_ID_" jdbcType="VARCHAR"/>
+        <result property="createDepId" column="CREATE_DEP_ID_" jdbcType="VARCHAR"/>
+        <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
+        <result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
+        <result property="createTime" column="CREATE_TIME_" jdbcType="DATE"/>
+        <result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
+        <result property="updateTime" column="UPDATE_TIME_" jdbcType="DATE"/>
     </resultMap>
 
 
     <select id="query" resultType="com.redxun.knowledge.entity.dao.KnowledgeLabel" parameterType="java.util.Map">
-        select PK_ID,NAME,SORT,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_ from KM_KNOWLEDGE_LABEL
+        select
+        PK_ID,NAME,SORT,IS_DEL,COMPANY_ID_,CREATE_DEP_ID_,TENANT_ID_,CREATED_BY_,CREATED_TIME_,UPDATED_BY_,UPDATED_TIME_
+        from KM_KNOWLEDGE_LABEL
         <where>
             <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
                 ${w.whereSql}
@@ -28,10 +30,15 @@
             ORDER BY ${w.orderBySql}
         </if>
         <if test="@rx.Ognl@isEmpty(w.orderBySql)">
-            ORDER BY  PK_ID DESC
+            ORDER BY PK_ID DESC
         </if>
     </select>
 
+    <update id="adjustSort" parameterType="java.lang.Integer">
+        UPDATE KM_KNOWLEDGE_LABEL
+        SET sort = sort + 1
+        WHERE sort >= #{adjustSort}
+    </update>
 </mapper>