From 64c37a81e850b8d8ee83e71088a172488825e00b Mon Sep 17 00:00:00 2001 From: EricCheng <12955029+ericchengscut@user.noreply.gitee.com> Date: Sat, 13 Apr 2024 13:29:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E7=AB=AFTask?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=B1=BB=E7=9A=84=E8=AE=BE=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=85=B6Mapper=E3=80=81Service=E7=B1=BB?= =?UTF-8?q?=E7=9A=84=E8=AE=BE=E8=AE=A1=EF=BC=8C=E4=BD=BF=E7=94=A8MyBatis?= =?UTF-8?q?=E7=9A=84xml=E6=98=A0=E5=B0=84=E6=96=87=E4=BB=B6=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=AF=B9tasks=E6=95=B0=E6=8D=AE=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../newgroupshell/common/Constants.java | 7 ++ .../common/enums/TaskStatusEnum.java | 8 ++ .../newgroupshell/mapper/GroupMapper.java | 8 +- .../newgroupshell/mapper/TaskMapper.java | 23 ++++ .../com/example/newgroupshell/pojo/Task.java | 76 +++++++++++++ .../newgroupshell/service/TaskService.java | 20 ++++ .../service/impl/TaskServiceImpl.java | 52 +++++++++ src/main/resources/mapper/TaskMapper.xml | 106 ++++++++++++++++++ 8 files changed, 295 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/example/newgroupshell/common/Constants.java create mode 100644 src/main/java/com/example/newgroupshell/common/enums/TaskStatusEnum.java create mode 100644 src/main/java/com/example/newgroupshell/mapper/TaskMapper.java create mode 100644 src/main/java/com/example/newgroupshell/pojo/Task.java create mode 100644 src/main/java/com/example/newgroupshell/service/TaskService.java create mode 100644 src/main/java/com/example/newgroupshell/service/impl/TaskServiceImpl.java create mode 100644 src/main/resources/mapper/TaskMapper.xml diff --git a/src/main/java/com/example/newgroupshell/common/Constants.java b/src/main/java/com/example/newgroupshell/common/Constants.java new file mode 100644 index 0000000..2d1b056 --- /dev/null +++ b/src/main/java/com/example/newgroupshell/common/Constants.java @@ -0,0 +1,7 @@ +package com.example.newgroupshell.common; + +//common包放置枚举与常量等通用数据类型 + +public interface Constants { + String USER_DEFAULT_PASSWORD = "123456"; +} diff --git a/src/main/java/com/example/newgroupshell/common/enums/TaskStatusEnum.java b/src/main/java/com/example/newgroupshell/common/enums/TaskStatusEnum.java new file mode 100644 index 0000000..06cf357 --- /dev/null +++ b/src/main/java/com/example/newgroupshell/common/enums/TaskStatusEnum.java @@ -0,0 +1,8 @@ +package com.example.newgroupshell.common.enums; + +public enum TaskStatusEnum { + PENDING, //待处理 + IN_PROGRESS, //进行中 + COMPLETED, //已完成 + DELAYED //已延期 +} diff --git a/src/main/java/com/example/newgroupshell/mapper/GroupMapper.java b/src/main/java/com/example/newgroupshell/mapper/GroupMapper.java index 6a826b9..922fab9 100644 --- a/src/main/java/com/example/newgroupshell/mapper/GroupMapper.java +++ b/src/main/java/com/example/newgroupshell/mapper/GroupMapper.java @@ -1,4 +1,5 @@ package com.example.newgroupshell.mapper; + import com.example.newgroupshell.pojo.Group; import com.example.newgroupshell.pojo.User; import org.apache.ibatis.annotations.*; @@ -22,9 +23,6 @@ public interface GroupMapper { @Select("select * from `groups`") List selectAllGroup(); // 获取特定用户创建的团队 - @Select("select * from `groups` where leaderid=#{leaderid}") - List findgroupbuleaderid(@Param("leaderid") int leaderid); - /** * Retrieves a list of groups where the 'leaderid' matches the provided parameter. @@ -32,6 +30,6 @@ public interface GroupMapper { * @param leaderid the id of the group leader * @return a list of groups where the 'leaderid' matches the provided parameter */ - @Select("select * from 'groups' where leaderid=#{0}") - List findGroupByLeaderId(int leaderid); + @Select("select * from `groups` where leaderid=#{leaderid}") + List findgroupbuleaderid(@Param("leaderid") int leaderid); } \ No newline at end of file diff --git a/src/main/java/com/example/newgroupshell/mapper/TaskMapper.java b/src/main/java/com/example/newgroupshell/mapper/TaskMapper.java new file mode 100644 index 0000000..e1e1744 --- /dev/null +++ b/src/main/java/com/example/newgroupshell/mapper/TaskMapper.java @@ -0,0 +1,23 @@ +package com.example.newgroupshell.mapper; + + +import com.example.newgroupshell.common.enums.TaskStatusEnum; +import com.example.newgroupshell.pojo.Task; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface TaskMapper { + int insertTask(Task task); + + int updateTaskById(Task task); + + int deleteTaskById(@Param("tid") Integer tid); + + List findTasksByAssigneeId(@Param("assigneeId") Integer assigneeId); + + List findTasksByCreatorId(@Param("creatorId") Integer creatorId); + + List findTasksByStatus(@Param("status") TaskStatusEnum status); +} \ No newline at end of file diff --git a/src/main/java/com/example/newgroupshell/pojo/Task.java b/src/main/java/com/example/newgroupshell/pojo/Task.java new file mode 100644 index 0000000..38244cc --- /dev/null +++ b/src/main/java/com/example/newgroupshell/pojo/Task.java @@ -0,0 +1,76 @@ +package com.example.newgroupshell.pojo; + +import com.example.newgroupshell.common.enums.TaskStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.time.LocalDateTime; + +/** + * Task class represents a task with its attributes and methods. + * + * @author Eric + * @version 1.0 + */ +@Data +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class Task { + /** + * The unique identifier of the task. + */ + private Integer tid; + + /** + * The title of the task. + */ + private String title; + + /** + * The description of the task. + */ + private String description; + + /** + * The time when the task was created. + */ + private LocalDateTime createdTime; + + /** + * The time when the task was last updated. + */ + private LocalDateTime updatedTime; + + /** + * The time when the task is scheduled to start. + */ + private LocalDateTime startTime; + + /** + * The deadline for the task. + */ + private LocalDateTime deadline; //TODO:deadline必须比startTime迟 + + /** + * The ID of the assignee responsible for the task. + */ + private Integer assigneeId; + + /** + * The ID of the creator of the task. + */ + private Integer creatorId; + + /** + * The priority level of the task. + */ + private Integer priority; + + /** + * The status of the task. + */ + private TaskStatusEnum status; +} \ No newline at end of file diff --git a/src/main/java/com/example/newgroupshell/service/TaskService.java b/src/main/java/com/example/newgroupshell/service/TaskService.java new file mode 100644 index 0000000..f38c31f --- /dev/null +++ b/src/main/java/com/example/newgroupshell/service/TaskService.java @@ -0,0 +1,20 @@ +package com.example.newgroupshell.service; + +import com.example.newgroupshell.common.enums.TaskStatusEnum; +import com.example.newgroupshell.pojo.Task; + +import java.util.List; + +public interface TaskService { + Task createTask(Task task); + + Task updateTask(Task task); + + boolean deleteTask(Integer taskId); + + List listTasksByCreator(Integer creatorId); + + List listTasksByAssignee(Integer assigneeId); + + List listTasksByStatus(TaskStatusEnum status); +} diff --git a/src/main/java/com/example/newgroupshell/service/impl/TaskServiceImpl.java b/src/main/java/com/example/newgroupshell/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..a59e99b --- /dev/null +++ b/src/main/java/com/example/newgroupshell/service/impl/TaskServiceImpl.java @@ -0,0 +1,52 @@ +package com.example.newgroupshell.service.impl; + +import com.example.newgroupshell.common.enums.TaskStatusEnum; +import com.example.newgroupshell.mapper.TaskMapper; +import com.example.newgroupshell.pojo.Task; +import com.example.newgroupshell.service.TaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class TaskServiceImpl implements TaskService { + @Autowired + private TaskMapper taskMapper; + + @Override + public Task createTask(Task task) { + task.setCreatedTime(LocalDateTime.now()); + task.setUpdatedTime(LocalDateTime.now()); + taskMapper.insertTask(task); + return task; + } + + @Override + public Task updateTask(Task task) { + task.setUpdatedTime(LocalDateTime.now()); + taskMapper.updateTaskById(task); + return task; + } + + @Override + public boolean deleteTask(Integer taskId) { + return taskMapper.deleteTaskById(taskId) > 0; + } + + @Override + public List listTasksByCreator(Integer creatorId) { + return taskMapper.findTasksByCreatorId(creatorId); + } + + @Override + public List listTasksByAssignee(Integer assigneeId) { + return taskMapper.findTasksByAssigneeId(assigneeId); + } + + @Override + public List listTasksByStatus(TaskStatusEnum status) { + return taskMapper.findTasksByStatus(status); + } +} diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml new file mode 100644 index 0000000..70c6826 --- /dev/null +++ b/src/main/resources/mapper/TaskMapper.xml @@ -0,0 +1,106 @@ + + + + + + tid, title, description,create_time, update_time,start_time, deadline, assignee_id, creator_id, priority, status + + + + INSERT INTO tasks + + tid, + title, + description, + create_time, + update_time, + start_time, + deadline, + assignee_id, + creator_id, + priority, + status, + + + #{tid}, + #{title}, + #{description}, + #{createdTime}, + #{updatedTime}, + #{startTime}, + #{deadline}, + #{assigneeId}, + #{creatorId}, + #{priority}, + #{status}, + + + + + + UPDATE tasks + + + title = #{title}, + + + description = #{description}, + + + create_time = #{createdTime}, + + + update_time = #{updatedTime}, + + + start_time = #{startTime}, + + + deadline = #{deadline}, + + + assignee_id = #{assigneeId}, + + + creator_id = #{creatorId}, + + + priority = #{priority}, + + + status = #{status}, + + + WHERE tid = #{tid} + + + + + DELETE + FROM tasks + WHERE tid = #{tid} + + + + + + + + + + + + -- Gitee