diff --git a/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java b/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java index 5db76f2..de0f5c4 100644 --- a/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java +++ b/src/main/java/com/guo/learningprogresstracker/controller/TaskController.java @@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.rmi.ServerException; + /** * 任务控制层 * @author guo @@ -49,9 +51,9 @@ public class TaskController { @DeleteMapping("/tasks/{taskId}") @Operation(summary = "删除指定任务") - public CommonResult deleteTask(@PathVariable("taskId") String taskId) { -// return CommonResult.success(tasksService.deleteTask(taskId)); - return null; + public CommonResult deleteTask(@PathVariable("taskId") String taskId) throws ServerException { + tasksService.deleteTask(taskId); + return CommonResult.success(); } @GetMapping("/tasks") diff --git a/src/main/java/com/guo/learningprogresstracker/dto/request/TaskRequest.java b/src/main/java/com/guo/learningprogresstracker/dto/request/TaskRequest.java index 0a28520..d4c1e98 100644 --- a/src/main/java/com/guo/learningprogresstracker/dto/request/TaskRequest.java +++ b/src/main/java/com/guo/learningprogresstracker/dto/request/TaskRequest.java @@ -16,7 +16,7 @@ public class TaskRequest { public interface Create{} @Null(message = "创建时不可指定任务ID",groups = Ops.CreateG.class) - @NotEmpty(message = "更新时必须指定任务ID",groups = Ops.UpdateG.class) + @NotNull(message = "更新时必须指定任务ID",groups = Ops.UpdateG.class) private Integer id; /** * 学习任务的名称 diff --git a/src/main/java/com/guo/learningprogresstracker/service/TasksService.java b/src/main/java/com/guo/learningprogresstracker/service/TasksService.java index ca4ebfd..d8f5e2d 100644 --- a/src/main/java/com/guo/learningprogresstracker/service/TasksService.java +++ b/src/main/java/com/guo/learningprogresstracker/service/TasksService.java @@ -6,6 +6,8 @@ import com.guo.learningprogresstracker.dto.response.TasksListInfoResponse; import com.guo.learningprogresstracker.entity.TaskEntity; import com.baomidou.mybatisplus.extension.service.IService; +import java.rmi.ServerException; + /** * @author guo * @description 针对表【tasks(存储学习任务的基本信息,包括优先级的多维度计算)】的数据库操作Service @@ -20,4 +22,6 @@ public interface TasksService extends IService { TaskInfoResponse getTask(String taskId); void updateTask(String taskId, TaskRequest updatedTask); + + void deleteTask(String taskId) throws ServerException; } diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java index 6c1be6a..7c4195a 100644 --- a/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java @@ -13,8 +13,11 @@ import com.guo.learningprogresstracker.mapper.TasksMapper; import com.guo.learningprogresstracker.utils.CalculatedPriorityTool; import com.guo.learningprogresstracker.utils.GenerateNumTool; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.rmi.ServerException; + /** * @author guo * @description 针对表【tasks(存储学习任务的基本信息,包括优先级的多维度计算)】的数据库操作Service实现 @@ -22,6 +25,7 @@ import org.springframework.stereotype.Service; */ @Service @RequiredArgsConstructor +@Slf4j public class TasksServiceImpl extends ServiceImpl implements TasksService{ @@ -58,6 +62,14 @@ public class TasksServiceImpl extends ServiceImpl this.updateById(taskEntity); } + + @Override + public void deleteTask(String taskId) throws ServerException { + boolean b = this.removeById(taskId); + if(!b){ + throw new ServerException("未能正常删除任务"); + } + } } diff --git a/src/test/java/com/guo/learningprogresstracker/controller/TaskControllerTest.java b/src/test/java/com/guo/learningprogresstracker/controller/TaskControllerTest.java index 8d71334..c5ea12d 100644 --- a/src/test/java/com/guo/learningprogresstracker/controller/TaskControllerTest.java +++ b/src/test/java/com/guo/learningprogresstracker/controller/TaskControllerTest.java @@ -1,13 +1,13 @@ package com.guo.learningprogresstracker.controller; import cn.dev33.satoken.stp.StpUtil; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fasterxml.jackson.databind.ObjectMapper; import com.guo.learningprogresstracker.dto.request.TaskRequest; import com.guo.learningprogresstracker.entity.CommonResult; import com.guo.learningprogresstracker.entity.TaskEntity; import com.guo.learningprogresstracker.service.impl.TasksServiceImpl; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -23,11 +23,13 @@ import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; @SpringBootTest @AutoConfigureMockMvc +@Slf4j class TaskControllerTest { @Autowired @@ -49,7 +51,7 @@ class TaskControllerTest { @Test void addTask() throws Exception { TaskRequest taskRequest = getTaskRequest(); - + log.info("testInfo"); String s = jacksonObjectMapper.writeValueAsString(taskRequest); System.out.println("Token Value: " + StpUtil.getTokenValue()); mockMvc.perform(post("/tasks") @@ -104,23 +106,32 @@ class TaskControllerTest { } @Test - void updateTask() { + void updateTask() throws Exception { TaskRequest taskRequest = mock(TaskRequest.class); when(taskRequest.getTaskName()).thenReturn("测试数据名称"); when(taskRequest.getMaterialUrl()).thenReturn("http://example.com/material"); - CommonResult commonResult = taskController.updateTask("0", taskRequest); - assertEquals(commonResult.getData(), 200, "任务信息更新失败"); + when(taskRequest.getId()).thenReturn(1); + String s = jacksonObjectMapper.writeValueAsString(taskRequest); + + mockMvc.perform(put("/tasks/"+taskRequest.getId()) + .header("satoken",StpUtil.getTokenValue()) + .contentType(MediaType.APPLICATION_JSON) + .content(s)) + .andDo(print()) + .andExpect(jsonPath("$.code").value(200)) + .andExpect(jsonPath("$.data").isEmpty()); } @Test void deleteTask() throws Exception { CommonResult commonResult = taskController.addTask(getTaskRequest()); - assertEquals(ObjectUtils.isNotEmpty(commonResult.getMessage()),"任务创建失败"); + assertEquals(commonResult.getCode(),200); TaskEntity taskEntity = tasksServiceImpl.getOne(Wrappers.lambdaQuery().eq(TaskEntity::getTaskNum, commonResult.getMessage())); assertNotNull(taskEntity,"未能找到新创建的任务实体"); - mockMvc.perform(delete("/tasks/"+taskEntity.getId())) + mockMvc.perform(delete("/tasks/"+taskEntity.getId()) + .header("satoken",StpUtil.getTokenValue())) .andDo(print()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.data").isEmpty());