Quellcode durchsuchen

作者:张哲
时间:2023/02/08
类型:开发
描述:知识地图开发

ZizgZh vor 2 Jahren
Ursprung
Commit
a07c61d963

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

@@ -98,8 +98,16 @@ public class UserService {
         Map<String, Object> map = new HashMap<>();
         String sex = userClient.findByUserId(userId).getSex();
         String photo = userClient.findByUserId(userId).getPhoto();
+        if (photo == null){
+            if (("male").equals(sex)){
+                map.put("photo","1615521393665536002");
+            } else {
+                map.put("photo","1615521593893220354");
+            }
+        } else {
+            map.put("photo",photo);
+        }
         map.put("sex",sex);
-        map.put("photo",photo);
         return map;
     }
 

+ 14 - 5
src/main/java/com/redxun/knowledge/map/controller/MapController.java

@@ -14,6 +14,7 @@ import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.constant.HttpMethodConstants;
 import com.redxun.common.utils.ContextUtil;
 import com.redxun.common.utils.ExceptionUtil;
+import com.redxun.knowledge.map.entity.vo.KnowledgeVo;
 import com.redxun.knowledge.map.entity.vo.OsUserVo;
 import com.redxun.knowledge.map.entity.dao.Map;
 import com.redxun.knowledge.map.entity.dto.MapDto;
@@ -97,7 +98,7 @@ public class MapController extends BaseController<Map> {
             )}
     )
     public JsonResult edit(@RequestBody MapDto mapDto){
-        JsonResult jsonResult = JsonResult.getSuccessResult("");
+        JsonResult jsonResult = JsonResult.getSuccessResult("编辑成功!");
         String pkId = mapService.create(mapDto);
         return jsonResult.setData(pkId);
     }
@@ -145,7 +146,7 @@ public class MapController extends BaseController<Map> {
     @ApiOperation("查看该用户组及子组的用户")
     @PostMapping({"queryGroupUsers"})
     public JsonPageResult queryGroupUsers(@ApiParam @RequestBody QueryData queryData) {
-        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("");
 
         try {
             java.util.Map<String, String> params = queryData.getParams();
@@ -153,15 +154,23 @@ public class MapController extends BaseController<Map> {
             params.put("tenantId", ContextUtil.getCurrentTenantId());
             IPage<OsUserVo> osUserIPage = mapService.queryGroupUsers(filter, params);
             jsonResult.setPageData(osUserIPage);
-        } catch (Exception var6) {
+        } catch (Exception e) {
             jsonResult.setSuccess(false);
-            this.logger.error(ExceptionUtil.getExceptionMessage(var6));
-            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(var6));
+            this.logger.error(ExceptionUtil.getExceptionMessage(e));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
         }
 
         return jsonResult;
     }
 
+    @ApiOperation("根据知识ID获取知识快照信息")
+    @GetMapping("knowledgeSnapshot")
+    public JsonResult knowledgeSnapshot(@RequestParam("pkId") String pkId){
+        JsonResult jsonResult = JsonPageResult.getSuccess("");
+        KnowledgeVo knowledgeVo = mapService.knowledgeSnapshot(pkId);
+        return jsonResult.setData(knowledgeVo);
+    }
+
 
 }
 

+ 4 - 1
src/main/java/com/redxun/knowledge/map/entity/vo/KnowledgeVo.java

@@ -24,8 +24,11 @@ import java.util.Date;
 @Data
 public class KnowledgeVo implements Serializable {
 
+    //知识Id
+    private String pkId;
+
     //知识分类
-    private KnowledgeCategoryAdminVo knowledgeCategoryAdminVo;
+    private String category;
 
     //知识名称
     private String titles;

+ 37 - 2
src/main/java/com/redxun/knowledge/map/entity/vo/MapContentVo.java

@@ -1,8 +1,12 @@
 package com.redxun.knowledge.map.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.io.Serializable;
+import java.util.Date;
 
 /**
  * 文件名: MapContentVo
@@ -40,6 +44,37 @@ public class MapContentVo implements Serializable {
     //排序
     private Integer sort;
 
-    //如果存在知识,返回知识信息
-    private KnowledgeVo knowledgeVo;
+    //知识分类
+    private String category;
+
+    //知识名称
+    private String titles;
+
+    //知识简介
+    private String summary;
+
+    //作者
+    private String author;
+
+    //作者头像Id
+    private String authorHead;
+
+    //创建时间
+    @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;
+
+    //浏览数量
+    private Integer views;
+
+    //附件类型
+    private String attachmentType;
 }

+ 79 - 20
src/main/java/com/redxun/knowledge/map/service/MapServiceImpl.java

@@ -213,22 +213,33 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
                         MapContentVo mapContentVo = new MapContentVo();
                         BeanUtils.copyProperties(mapContent, mapContentVo);
                         if (mapContent.getKnowledgeId() != null) {
-                            KnowledgeVo knowledgeVo = new KnowledgeVo();
                             Knowledge knowledge = knowledgeService.get(mapContent.getKnowledgeId());
-                            BeanUtils.copyProperties(knowledge, knowledgeVo);
                             String photo = (String) userService.querySexAndPhoto(knowledge.getCreateBy()).get("photo");
-                            knowledgeVo.setAuthorHead(photo);
+                            mapContentVo.setAuthorHead(photo);
+                            mapContentVo.setTitles(knowledge.getTitles());
+                            mapContentVo.setSummary(knowledge.getSummary());
+                            mapContentVo.setAuthor(knowledge.getAuthor());
+                            mapContentVo.setCreateTime(knowledge.getCreateTime());
+                            mapContentVo.setViews(knowledge.getViews());
                             // 有文件,截取文件名后缀
                             String attachmentName = knowledge.getAttachmentName();
-                            String[] strArray = attachmentName.split("\\.");
-                            int suffixIndex = strArray.length - 1;
-                            knowledgeVo.setAttachmentType(strArray[suffixIndex]);
-                            mapContentVo.setKnowledgeVo(knowledgeVo);
+                            if (attachmentName != null){
+                                String[] strArray = attachmentName.split("\\.");
+                                int suffixIndex = strArray.length - 1;
+                                mapContentVo.setAttachmentType(strArray[suffixIndex]);
+                            }
                             //添加分类信息
                             KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId());
-                            mapContentVo.getKnowledgeVo().setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
-                        } else {
-                            mapContentVo.setKnowledgeVo(null);
+                            String name3 = knowledgeCategoryAdminVo.getName();
+                            mapContentVo.setCategory(name3);
+                            if (knowledgeCategoryAdminVo.getParents() != null){
+                                String name2 = knowledgeCategoryAdminVo.getParents().getName();
+                                mapContentVo.setCategory(name2 + " " + name3);
+                                if (knowledgeCategoryAdminVo.getParents().getParents() != null){
+                                    String name1 = knowledgeCategoryAdminVo.getParents().getParents().getName();
+                                    mapContentVo.setCategory(name1 + " " +name2 + " " + name3);
+                                }
+                            }
                         }
                         return mapContentVo;
                     }).collect(Collectors.toList());
@@ -356,22 +367,33 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
                     contents.forEach(content -> {
                                 //查看知识
                                 if (content.getKnowledgeId() != null) {
-                                    KnowledgeVo knowledgeVo = new KnowledgeVo();
                                     Knowledge knowledge = knowledgeService.get(content.getKnowledgeId());
-                                    BeanUtils.copyProperties(knowledge, knowledgeVo);
                                     String photo = (String) userService.querySexAndPhoto(knowledge.getCreateBy()).get("photo");
-                                    knowledgeVo.setAuthorHead(photo);
+                                    content.setAuthorHead(photo);
+                                    content.setTitles(knowledge.getTitles());
+                                    content.setSummary(knowledge.getSummary());
+                                    content.setAuthor(knowledge.getAuthor());
+                                    content.setCreateTime(knowledge.getCreateTime());
+                                    content.setViews(knowledge.getViews());
                                     // 有文件,截取文件名后缀
                                     String attachmentName = knowledge.getAttachmentName();
-                                    String[] strArray = attachmentName.split("\\.");
-                                    int suffixIndex = strArray.length - 1;
-                                    knowledgeVo.setAttachmentType(strArray[suffixIndex]);
-                                    content.setKnowledgeVo(knowledgeVo);
+                                    if (attachmentName != null){
+                                        String[] strArray = attachmentName.split("\\.");
+                                        int suffixIndex = strArray.length - 1;
+                                        content.setAttachmentType(strArray[suffixIndex]);
+                                    }
                                     //添加分类信息
                                     KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId());
-                                    content.getKnowledgeVo().setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
-                                } else {
-                                    content.setKnowledgeVo(null);
+                                    String name3 = knowledgeCategoryAdminVo.getName();
+                                    content.setCategory(name3);
+                                    if (knowledgeCategoryAdminVo.getParents() != null){
+                                        String name2 = knowledgeCategoryAdminVo.getParents().getName();
+                                        content.setCategory(name2 + " " + name3);
+                                        if (knowledgeCategoryAdminVo.getParents().getParents() != null){
+                                            String name1 = knowledgeCategoryAdminVo.getParents().getParents().getName();
+                                            content.setCategory(name1 + " " +name2 + " " + name3);
+                                        }
+                                    }
                                 }
                                 //设置学习内容状态
                                 if (updateState(userId, pkId, route.getPkId(), content.getPkId()) > 0) {
@@ -464,4 +486,41 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
         return osUserIPage;
     }
 
+    /**
+     * 根据知识ID获取知识快照信息
+     * @param pkId
+     * @return
+     */
+    public KnowledgeVo knowledgeSnapshot(String pkId) {
+        KnowledgeVo knowledgeVo = new KnowledgeVo();
+        Knowledge knowledge = knowledgeService.get(pkId);
+        String photo = (String) userService.querySexAndPhoto(knowledge.getCreateBy()).get("photo");
+        knowledgeVo.setPkId(pkId);
+        knowledgeVo.setAuthorHead(photo);
+        knowledgeVo.setTitles(knowledge.getTitles());
+        knowledgeVo.setSummary(knowledge.getSummary());
+        knowledgeVo.setAuthor(knowledge.getAuthor());
+        knowledgeVo.setCreateTime(knowledge.getCreateTime());
+        knowledgeVo.setViews(knowledge.getViews());
+        // 有文件,截取文件名后缀
+        String attachmentName = knowledge.getAttachmentName();
+        if (attachmentName != null){
+            String[] strArray = attachmentName.split("\\.");
+            int suffixIndex = strArray.length - 1;
+            knowledgeVo.setAttachmentType(strArray[suffixIndex]);
+        }
+        //添加分类信息
+        KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId());
+        String name3 = knowledgeCategoryAdminVo.getName();
+        knowledgeVo.setCategory(name3);
+        if (knowledgeCategoryAdminVo.getParents() != null){
+            String name2 = knowledgeCategoryAdminVo.getParents().getName();
+            knowledgeVo.setCategory(name2 + " " + name3);
+            if (knowledgeCategoryAdminVo.getParents().getParents() != null){
+                String name1 = knowledgeCategoryAdminVo.getParents().getParents().getName();
+                knowledgeVo.setCategory(name1 + " " +name2 + " " + name3);
+            }
+        }
+        return knowledgeVo;
+    }
 }

+ 3 - 3
src/main/resources/mapper/knowledge/map/MapGroupPurviewUserMapper.xml

@@ -27,9 +27,9 @@
                CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
         from KM_MAP_GROUP_PURVIEW_USER
         <where>
-            <if test="@rx.Ognl@isNotEmpty(w.whereSql)">
-                ${w.whereSql}
-            </if>
+            <if test="@rx.Ognl@isNotEmpty(w.pkId)">
+                MAP_ID = #{w.pkId} and IS_DEL = 0
+            </if >
         </where>
         <if test="@rx.Ognl@isNotEmpty(w.orderBySql)">
             ORDER BY ${w.orderBySql}

+ 0 - 2
src/main/resources/mapper/knowledge/map/MapMapper.xml

@@ -104,8 +104,6 @@
             <id column="contentId" property="pkId"/>
             <result column="contentSort" property="sort"/>
             <result column="contentType" property="type"/>
-            <association property="knowledgeVo" javaType="com.redxun.knowledge.map.entity.vo.KnowledgeVo" autoMapping="true">
-            </association>
         </collection>
     </resultMap>