Ver código fonte

feat: 创建返回值格式,新加创建知识点逻辑

chenjiawei09 3 anos atrás
pai
commit
f2413e448a

+ 21 - 0
src/main/java/com/seeckg/knowledgegraph_backend/convert/KnowledgeConvert.java

@@ -0,0 +1,21 @@
+package com.seeckg.knowledgegraph_backend.convert;
+
+import com.seeckg.knowledgegraph_backend.pojo.Knowledge;
+import com.seeckg.knowledgegraph_backend.pojo.KnowledgeVO;
+
+/**
+ * @author chenjiawei09 <chenjiawei09@kuaishou.com>
+ * Created on 2023-05-19
+ */
+public class KnowledgeConvert {
+
+    public static Knowledge convert(KnowledgeVO from) {
+        return Knowledge.builder()
+                .id(from.getId())
+                .name(from.getName())
+                .context(from.getContext())
+                .creatorId(from.getCreatorId())
+                .bindClassId(from.getBindClassId())
+                .build();
+    }
+}

+ 29 - 0
src/main/java/com/seeckg/knowledgegraph_backend/enums/ReturnCode.java

@@ -0,0 +1,29 @@
+package com.seeckg.knowledgegraph_backend.enums;
+
+/**
+ * @author chenjiawei09 <chenjiawei09@kuaishou.com>
+ * Created on 2023-05-19
+ */
+public enum ReturnCode {
+    PARAM_ERROR(1, "参数错误"),
+    SERVER_ERROR(2, "系统错误"),
+    INVALID_USER(3, "用户无权限");
+
+    private int code;
+
+    private String desc;
+
+    ReturnCode(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public int getCode() {
+        return this.code;
+    }
+
+    public String getDesc() {
+        return this.desc;
+    }
+
+}

+ 39 - 0
src/main/java/com/seeckg/knowledgegraph_backend/pojo/Response.java

@@ -0,0 +1,39 @@
+package com.seeckg.knowledgegraph_backend.pojo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author chenjiawei09 <chenjiawei09@kuaishou.com>
+ * Created on 2023-05-19
+ */
+
+
+/**
+ * @author mars
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Response {
+    private int code;
+    private String msg;
+    private Object result;
+
+    public Response(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public static Response buildSuccess(Object result) {
+        return new Response(0, "Success", result);
+    }
+
+    public static Response buildSuccess() {
+        return new Response(0, "Success");
+    }
+    public static Response buildFailed(int code, String msg) {
+        return new Response(code, msg, null);
+    }
+}
+

+ 30 - 3
src/main/java/com/seeckg/knowledgegraph_backend/service/KnowledgeService.java

@@ -1,26 +1,53 @@
 package com.seeckg.knowledgegraph_backend.service;
 
+import java.util.Objects;
+
 import javax.annotation.Resource;
 
+import com.seeckg.knowledgegraph_backend.convert.KnowledgeConvert;
 import com.seeckg.knowledgegraph_backend.dao.KnowledgeDao;
+import com.seeckg.knowledgegraph_backend.enums.ReturnCode;
+import com.seeckg.knowledgegraph_backend.enums.UserRole;
+import com.seeckg.knowledgegraph_backend.pojo.CourseVO;
 import com.seeckg.knowledgegraph_backend.pojo.Knowledge;
 import com.seeckg.knowledgegraph_backend.pojo.KnowledgeVO;
+import com.seeckg.knowledgegraph_backend.pojo.Response;
 import com.seeckg.knowledgegraph_backend.pojo.UserVO;
 import com.seeckg.knowledgegraph_backend.remote.SeeCoderRemoteService;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import lombok.extern.slf4j.Slf4j;
+
 @Service
+@Slf4j
 public class KnowledgeService {
     @Autowired
     KnowledgeDao knowledgeDao;
     @Resource
     SeeCoderRemoteService seeCoderRemoteService;
 
-    public void addKnowledge(KnowledgeVO knowledgeVO, long userId) {
-        UserVO userVO = seeCoderRemoteService.getUserById(userId);
-        //if (userVO)
+    public Response addKnowledge(KnowledgeVO knowledgeVO) {
+        UserVO userVO = seeCoderRemoteService.getUserById(knowledgeVO.getCreatorId());
+        if (!userVO.getRole().equals(UserRole.TEACHER)) {
+            log.error("[KnowledgeService.addKnowledge] 用户无权限 knowledgeVO = {},userVO = {}", knowledgeVO, userVO);
+            return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
+        }
+        if (knowledgeVO.getBindClassId() != 0L) {
+            CourseVO courseVO = seeCoderRemoteService.getCourseById(knowledgeVO.getBindClassId());
+            if (Objects.isNull(courseVO)) {
+                log.error("[KnowledgeService.addKnowledge] 课程信息错误,查无该课程 knowledgeVO = {}", knowledgeVO);
+                return Response.buildFailed(ReturnCode.PARAM_ERROR.getCode(), "课程信息错误,查无该课程");
+            }
+            if (courseVO.getTeacherId() != knowledgeVO.getCreatorId()) {
+                log.error("[KnowledgeService.addKnowledge] 课程信息错误,用户无权限 knowledgeVO = {}", knowledgeVO);
+                return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
+            }
+        }
+        Knowledge knowledge = KnowledgeConvert.convert(knowledgeVO);
+        knowledgeDao.save(knowledge);
+        return Response.buildSuccess();
     }
 
     public Knowledge findByName(String name) {