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 @@ + + + + + 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()); + } + } + } + + +}