From 6fcebea344a1afa0ab76155ff3a1f6c352336f71 Mon Sep 17 00:00:00 2001
From: xjs <1294405880@qq.com>
Date: Thu, 28 Apr 2022 16:40:57 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=BE=85=E5=8A=9E=E5=88=86=E7=B1=BB?=
=?UTF-8?q?=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/api/business/todo/todoCategory.js | 37 ++++
.../views/business/todo/category/index.vue | 182 ++++++++++++++++++
.../src/views/business/todo/list/index.vue | 13 ++
.../com/xjs/controller/TodoController.java | 65 +++++++
.../com/xjs/domain/todo/TodoCategory.java | 58 ++++++
.../com/xjs/mapper/TodoCategoryMapper.java | 12 ++
.../com/xjs/service/TodoCateGoryService.java | 14 ++
.../service/impl/TodoCateGoryServiceImpl.java | 63 ++++++
8 files changed, 444 insertions(+)
create mode 100644 ruoyi-ui/src/api/business/todo/todoCategory.js
create mode 100644 ruoyi-ui/src/views/business/todo/category/index.vue
create mode 100644 ruoyi-ui/src/views/business/todo/list/index.vue
create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/TodoController.java
create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/todo/TodoCategory.java
create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/mapper/TodoCategoryMapper.java
create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/service/TodoCateGoryService.java
create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/service/impl/TodoCateGoryServiceImpl.java
diff --git a/ruoyi-ui/src/api/business/todo/todoCategory.js b/ruoyi-ui/src/api/business/todo/todoCategory.js
new file mode 100644
index 00000000..1693cf9b
--- /dev/null
+++ b/ruoyi-ui/src/api/business/todo/todoCategory.js
@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+//添加待办分类
+export function addTodoCategory(data) {
+ return request({
+ url: '/warning/todo/category/add',
+ method: 'post',
+ data: data
+ })
+}
+
+//查询所有待办分类
+export function list() {
+ return request({
+ url: '/warning/todo/category/list',
+ method: 'get',
+ })
+}
+
+
+//删除待办分类
+export function removeTodoCategory(id) {
+ return request({
+ url: `/warning/todo/category/remove/${id}`,
+ method: 'delete',
+ })
+}
+
+//修改待办分类
+export function editTodoCategory(data) {
+ return request({
+ url: `/warning/todo/category/edit`,
+ method: 'put',
+ data: data
+ })
+}
+
diff --git a/ruoyi-ui/src/views/business/todo/category/index.vue b/ruoyi-ui/src/views/business/todo/category/index.vue
new file mode 100644
index 00000000..4df3cc14
--- /dev/null
+++ b/ruoyi-ui/src/views/business/todo/category/index.vue
@@ -0,0 +1,182 @@
+
+
+
+
+ 待办分类
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/business/todo/list/index.vue b/ruoyi-ui/src/views/business/todo/list/index.vue
new file mode 100644
index 00000000..63d591cc
--- /dev/null
+++ b/ruoyi-ui/src/views/business/todo/list/index.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/TodoController.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/TodoController.java
new file mode 100644
index 00000000..b3e114d9
--- /dev/null
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/TodoController.java
@@ -0,0 +1,65 @@
+package com.xjs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.xjs.domain.todo.TodoCategory;
+import com.xjs.service.TodoCateGoryService;
+import com.xjs.validation.group.AddGroup;
+import com.xjs.validation.group.UpdateGroup;
+import com.xjs.web.MyBaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 待办控制器
+ *
+ * @author xiejs
+ * @since 2022-04-28
+ */
+@RestController
+@RequestMapping("todo")
+@Api(tags = "业务模块-待办事项")
+public class TodoController extends MyBaseController {
+
+ @Autowired
+ private TodoCateGoryService todoCateGoryService;
+
+ @PostMapping("category/add")
+ @ApiOperation("添加待办分类")
+ @RequiresPermissions("todo:category:add")
+ @Log(title = "添加待办分类", businessType = BusinessType.INSERT)
+ public AjaxResult addTodoCategory(@RequestBody @Validated(AddGroup.class) TodoCategory todoCategory) {
+ return toAjax(todoCateGoryService.save(todoCategory));
+ }
+
+ @GetMapping("category/list")
+ @ApiOperation("查询所有待办分类")
+ @RequiresPermissions("todo:category:list")
+ public AjaxResult listTodoCategory() {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.orderByDesc(TodoCategory::getSort);
+ return AjaxResult.success(todoCateGoryService.list(wrapper));
+ }
+
+ @DeleteMapping("category/remove/{id}")
+ @ApiOperation("删除待办分类")
+ @RequiresPermissions("todo:category:remove")
+ @Log(title = "删除待办分类", businessType = BusinessType.DELETE)
+ public AjaxResult removeTodoCategory(@PathVariable String id) {
+ return toAjax(todoCateGoryService.removeById(id));
+ }
+
+ @PutMapping("category/edit")
+ @ApiOperation("修改待办分类")
+ @RequiresPermissions("todo:category:edit")
+ @Log(title = "修改待办分类", businessType = BusinessType.UPDATE)
+ public AjaxResult editTodoCategory(@RequestBody @Validated(UpdateGroup.class) TodoCategory todoCategory) {
+ return toAjax(todoCateGoryService.updateById(todoCategory));
+ }
+}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/todo/TodoCategory.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/todo/TodoCategory.java
new file mode 100644
index 00000000..819e8145
--- /dev/null
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/todo/TodoCategory.java
@@ -0,0 +1,58 @@
+package com.xjs.domain.todo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.xjs.entity.BaseEntity;
+import com.xjs.validation.group.AddGroup;
+import com.xjs.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 待办分类实体类
+ *
+ * @author xiejs
+ * @since 2022-04-28
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class TodoCategory extends BaseEntity implements Serializable {
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 分类名称
+ */
+ @NotBlank(message = "分类名称不能为空", groups = {UpdateGroup.class, AddGroup.class})
+ @Size(max = 5, message = "请控制分类名称长度在 5 字符", groups = {UpdateGroup.class, AddGroup.class})
+ private String name;
+
+ /**
+ * 颜色
+ */
+ @NotBlank(message = "颜色不能为空", groups = {UpdateGroup.class, AddGroup.class})
+ @Size(max = 10, message = "请控制分类名称长度在 10 字符", groups = {UpdateGroup.class, AddGroup.class})
+ private String color;
+
+ /**
+ * 排序
+ */
+ @NotNull(message = "排序不能为空", groups = {UpdateGroup.class, AddGroup.class})
+ @Max(value = 100, message = "排序范围在 0 - 100 ", groups = {UpdateGroup.class, AddGroup.class})
+ private Long sort;
+
+ /**
+ * 创建时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Date createTime;
+}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/mapper/TodoCategoryMapper.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/mapper/TodoCategoryMapper.java
new file mode 100644
index 00000000..717a1c28
--- /dev/null
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/mapper/TodoCategoryMapper.java
@@ -0,0 +1,12 @@
+package com.xjs.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjs.domain.todo.TodoCategory;
+
+/**
+ * 待办事项mapper
+ * @author xiejs
+ * @since 2022-04-28
+ */
+public interface TodoCategoryMapper extends BaseMapper {
+}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/TodoCateGoryService.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/TodoCateGoryService.java
new file mode 100644
index 00000000..52507277
--- /dev/null
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/TodoCateGoryService.java
@@ -0,0 +1,14 @@
+package com.xjs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xjs.domain.todo.TodoCategory;
+
+/**
+ * 待办事项service接口
+ * @author xiejs
+ * @since 2022-04-28
+ */
+public interface TodoCateGoryService extends IService {
+
+
+}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/impl/TodoCateGoryServiceImpl.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/impl/TodoCateGoryServiceImpl.java
new file mode 100644
index 00000000..f9d8fd5e
--- /dev/null
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/service/impl/TodoCateGoryServiceImpl.java
@@ -0,0 +1,63 @@
+package com.xjs.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjs.domain.todo.TodoCategory;
+import com.xjs.exception.BusinessException;
+import com.xjs.mapper.TodoCategoryMapper;
+import com.xjs.service.TodoCateGoryService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 待办事项service接口实现
+ *
+ * @author xiejs
+ * @since 2022-04-28
+ */
+@Service
+public class TodoCateGoryServiceImpl extends ServiceImpl implements TodoCateGoryService {
+
+ @Override
+ @Transactional
+ public boolean save(TodoCategory entity) {
+ this.hasExist(entity);
+ return super.save(entity);
+ }
+
+ @Override
+ @Transactional
+ public boolean updateById(TodoCategory entity) {
+ //顺序不能乱
+ boolean b = super.updateById(entity);
+ this.hasExist(entity);
+ return b;
+ }
+
+
+ /**
+ * 检查数据库是否存在该数据
+ *
+ * @param entity 实体类
+ */
+ private void hasExist(TodoCategory entity) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(TodoCategory::getName, entity.getName());
+ List categoryList = super.list(wrapper);
+ //根据id判断是添加还是修改
+ if (entity.getId() != null) {
+ if (CollUtil.isNotEmpty(categoryList) && categoryList.size() > 1) {
+ throw new BusinessException("已存在" + entity.getName());
+ }
+ } else {
+ if (CollUtil.isNotEmpty(categoryList)) {
+ throw new BusinessException("已存在" + entity.getName());
+ }
+ }
+ }
+
+
+}