|
|
@@ -30,11 +30,13 @@ public class KnowledgeService {
|
|
|
|
|
|
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);
|
|
|
@@ -50,6 +52,78 @@ public class KnowledgeService {
|
|
|
return Response.buildSuccess();
|
|
|
}
|
|
|
|
|
|
+ public Response editKnowledge(KnowledgeVO knowledgeVO, long userId) {
|
|
|
+ UserVO userVO = seeCoderRemoteService.getUserById(userId);
|
|
|
+ // 垂直权限校验
|
|
|
+ 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() != userId) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 课程信息错误,用户无权限 knowledgeVO = {}", knowledgeVO);
|
|
|
+ return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (knowledgeVO.getCreatorId() != userId) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 用户无权限 knowledgeVO = {},userVO = {}", knowledgeVO, userVO);
|
|
|
+ return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Knowledge knowledgeOld = knowledgeDao.findById(knowledgeVO.getId()).orElse(null);
|
|
|
+ if (Objects.isNull(knowledgeOld)){
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 查无该知识点 knowledgeVO = {}", knowledgeVO);
|
|
|
+ return Response.buildFailed(ReturnCode.PARAM_ERROR.getCode(), "知识点信息错误,查无该知识点");
|
|
|
+ }
|
|
|
+ Knowledge knowledgeNew = KnowledgeConvert.convert(knowledgeVO);
|
|
|
+ knowledgeDao.save(knowledgeNew);
|
|
|
+ return Response.buildSuccess();
|
|
|
+ }
|
|
|
+
|
|
|
+ public Response deleteKnowledge(long knowledgeId , long userId) {
|
|
|
+ UserVO userVO = seeCoderRemoteService.getUserById(userId);
|
|
|
+ // 垂直权限校验
|
|
|
+ if (!userVO.getRole().equals(UserRole.TEACHER)) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 用户无权限 knowledgeId = {},userVO = {}", knowledgeId, userVO);
|
|
|
+ return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
|
|
|
+ }
|
|
|
+
|
|
|
+ Knowledge knowledgeOld = knowledgeDao.findById(knowledgeId).orElse(null);
|
|
|
+ if (Objects.isNull(knowledgeOld)){
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 查无该知识点 knowledgeId = {}", knowledgeId );
|
|
|
+ return Response.buildFailed(ReturnCode.PARAM_ERROR.getCode(), "知识点信息错误,查无该知识点");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 水平权限校验
|
|
|
+ if (knowledgeOld.getBindClassId() != 0L) {
|
|
|
+ CourseVO courseVO = seeCoderRemoteService.getCourseById(knowledgeOld.getBindClassId());
|
|
|
+ if (Objects.isNull(courseVO)) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 课程信息错误,查无该课程 knowledgeVO = {}", knowledgeOld);
|
|
|
+ return Response.buildFailed(ReturnCode.PARAM_ERROR.getCode(), "课程信息错误,查无该课程");
|
|
|
+ }
|
|
|
+ if (courseVO.getTeacherId() != knowledgeOld.getCreatorId()) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 课程信息错误,用户无权限 knowledgeVO = {}", knowledgeOld);
|
|
|
+ return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (knowledgeOld.getCreatorId() != userId) {
|
|
|
+ log.error("[KnowledgeService.addKnowledge] 用户无权限 knowledgeId = {},userVO = {}", knowledgeId, userVO);
|
|
|
+ return Response.buildFailed(ReturnCode.INVALID_USER.getCode(), ReturnCode.INVALID_USER.getDesc());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ knowledgeDao.deleteById(knowledgeId);
|
|
|
+ return Response.buildSuccess();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public Knowledge findByName(String name) {
|
|
|
return knowledgeDao.findByName(name);
|
|
|
}
|