当前位置: 首页 > news >正文

视觉元素网站成都企业网站建设哪家专业

视觉元素网站,成都企业网站建设哪家专业,ui培训机构全国排名,安徽省建设工程造价信息网官网目录 一、分类页面的分页和模糊查询 1、CategoryController类修改 2、CategoryService和impl的修改 3、CategoryMapper的创建 二、新增分类 1、Category类的修改 2、CategoryController类修改 3、CategoryService和impl的修改 4、CategoryMapper的修改 三、启用和禁用…

目录

一、分类页面的分页和模糊查询

1、CategoryController类修改

2、CategoryService和impl的修改

3、CategoryMapper的创建

二、新增分类

1、Category类的修改

2、CategoryController类修改

3、CategoryService和impl的修改

4、CategoryMapper的修改

三、启用和禁用分类

1、CategoryController类修改

2、CategoryService和impl的修改

3、CategoryMapper的修改

四、分类修改

1、CategoryController类修改

2、CategoryService和impl的修改

3、CategoryMapper的修改

五、分类删除

1、新增分类的报错提示消息

2、CategoryController类修改

3、CategoryService和impl的修改

4、CategoryMapper的修改


        事前说明:原视频教程中使用的是mybaits,我想试试能不能通过mybatis-plus做一下这个项目。由于日常工作外加上我的私人生活,视频一天的课,我可能得一周甚至更多时间才能敲完。文章中插入的代码是实现上一个功能的基础上加上新的功能,所以想看这个模块的完整代码,直接看最后一个标题的内容或者通过我的gitee地址看就行。

苍穹外卖mybatis-plus版https://gitee.com/xxyzc/sky-take-out

一、分类页面的分页和模糊查询

1、CategoryController类修改

package com.sky.controller.admin;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/admin/category")
@Slf4j
@Api(tags = "分类相关操作")
public class CategoryController {@Autowiredprivate CategoryService categoryService;/*** 模糊查询和分页查询分类** @return*/@ApiOperation("模糊和分页查询分类")@GetMapping("/page")public Result<PageResult> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("查询条件:categoryPageQueryDTO:{}", categoryPageQueryDTO);IPage<Category> categoryList = categoryService.getCategoryList(categoryPageQueryDTO);PageResult pageResult = new PageResult();pageResult.setTotal(categoryList.getTotal());pageResult.setRecords(categoryList.getRecords());return Result.success(pageResult);}
}

2、CategoryService和impl的修改

package com.sky.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;public interface CategoryService {/*** 根据前台查询条件查询分类列表** @param categoryPageQueryDTO* @return*/IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO);
}
package com.sky.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.entity.Dish;
import com.sky.entity.Setmeal;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Overridepublic IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("service:categoryPageQueryDTO:{}", categoryPageQueryDTO);LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(StringUtils.isNotEmpty(categoryPageQueryDTO.getName()), Category::getName, categoryPageQueryDTO.getName()).like(categoryPageQueryDTO.getType() != null, Category::getType, categoryPageQueryDTO.getType()).orderByAsc(Category::getSort);IPage<Category> iPage = new Page<>(categoryPageQueryDTO.getPage(), categoryPageQueryDTO.getPageSize());return categoryMapper.selectPage(iPage, queryWrapper);}
}

3、CategoryMapper的创建

package com.sky.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sky.entity.Category;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface CategoryMapper extends BaseMapper<Category> {}

二、新增分类

1、Category类的修改

刚完成新增操作后,数据库中分类表的id是一大长串的值,为了让它自动递增,完成下列操作

        (1)、在id属性上加上@TableId(value = "id", type = IdType.AUTO),

        (2)、navicate中操作:选中数据库表category,右键点击“设计表”后弹出这个窗口,点“自动递增”,把那一大串的值修改成1。

修改后新增时可以让id值+1,从而避免新增时数据库中的id是一大长串的数字。

package com.sky.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.time.LocalDateTime;@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Category implements Serializable {private static final long serialVersionUID = 1L;@TableId(value = "id", type = IdType.AUTO)private Long id;//类型: 1菜品分类 2套餐分类private Integer type;//分类名称private String name;//顺序private Integer sort;//分类状态 0标识禁用 1表示启用private Integer status;//创建时间private LocalDateTime createTime;//更新时间private LocalDateTime updateTime;//创建人private Long createUser;//修改人private Long updateUser;
}

2、CategoryController类修改

package com.sky.controller.admin;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/admin/category")
@Slf4j
@Api(tags = "分类相关操作")
public class CategoryController {@Autowiredprivate CategoryService categoryService;/*** 模糊查询和分页查询分类** @return*/@ApiOperation("模糊和分页查询分类")@GetMapping("/page")public Result<PageResult> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("查询条件:categoryPageQueryDTO:{}", categoryPageQueryDTO);IPage<Category> categoryList = categoryService.getCategoryList(categoryPageQueryDTO);PageResult pageResult = new PageResult();pageResult.setTotal(categoryList.getTotal());pageResult.setRecords(categoryList.getRecords());return Result.success(pageResult);}/*** 新增分类** @param categoryDTO 分类信息* @return*/@ApiOperation("新增分类")@PostMappingpublic Result<String> addCategory(@RequestBody CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);categoryService.addCategory(categoryDTO);return Result.success();}
}

3、CategoryService和impl的修改

package com.sky.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;public interface CategoryService {/*** 根据前台查询条件查询分类列表** @param categoryPageQueryDTO* @return*/IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO);/*** 新增分类** @param categoryDTO 新的分类信息*/void addCategory(CategoryDTO categoryDTO);
}
package com.sky.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.entity.Dish;
import com.sky.entity.Setmeal;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Overridepublic IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("service:categoryPageQueryDTO:{}", categoryPageQueryDTO);LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(StringUtils.isNotEmpty(categoryPageQueryDTO.getName()), Category::getName, categoryPageQueryDTO.getName()).like(categoryPageQueryDTO.getType() != null, Category::getType, categoryPageQueryDTO.getType()).orderByAsc(Category::getSort);IPage<Category> iPage = new Page<>(categoryPageQueryDTO.getPage(), categoryPageQueryDTO.getPageSize());return categoryMapper.selectPage(iPage, queryWrapper);}@Overridepublic void addCategory(CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);Category category = new Category();BeanUtils.copyProperties(categoryDTO, category);// 要求新增的分类是禁用状态,所以status=0category.setStatus(0);category.setCreateUser(BaseContext.getCurrentId());category.setUpdateUser(BaseContext.getCurrentId());category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());categoryMapper.insert(category);}
}

4、CategoryMapper的修改

mapper不用修改!!!

三、启用和禁用分类

1、CategoryController类修改

package com.sky.controller.admin;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/admin/category")
@Slf4j
@Api(tags = "分类相关操作")
public class CategoryController {@Autowiredprivate CategoryService categoryService;/*** 模糊查询和分页查询分类** @return*/@ApiOperation("模糊和分页查询分类")@GetMapping("/page")public Result<PageResult> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("查询条件:categoryPageQueryDTO:{}", categoryPageQueryDTO);IPage<Category> categoryList = categoryService.getCategoryList(categoryPageQueryDTO);PageResult pageResult = new PageResult();pageResult.setTotal(categoryList.getTotal());pageResult.setRecords(categoryList.getRecords());return Result.success(pageResult);}/*** 新增分类** @param categoryDTO 分类信息* @return*/@ApiOperation("新增分类")@PostMappingpublic Result<String> addCategory(@RequestBody CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);categoryService.addCategory(categoryDTO);return Result.success();}@ApiOperation("启用、禁用分类")@PostMapping("/status/{status}")public Result<String> changeStatus(@PathVariable Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);categoryService.changeStatus(status, id);return Result.success();}
}

2、CategoryService和impl的修改

package com.sky.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;public interface CategoryService {/*** 根据前台查询条件查询分类列表** @param categoryPageQueryDTO* @return*/IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO);/*** 新增分类** @param categoryDTO 新的分类信息*/void addCategory(CategoryDTO categoryDTO);/*** 启用、禁用分类** @param status 修改后的状态* @param id     分类的id*/void changeStatus(Integer status, Long id);
}
package com.sky.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.entity.Dish;
import com.sky.entity.Setmeal;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Autowiredprivate DishMapper dishMapper;@Autowiredprivate SetmealMapper setmealMapper;@Overridepublic IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("service:categoryPageQueryDTO:{}", categoryPageQueryDTO);LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(StringUtils.isNotEmpty(categoryPageQueryDTO.getName()), Category::getName, categoryPageQueryDTO.getName()).like(categoryPageQueryDTO.getType() != null, Category::getType, categoryPageQueryDTO.getType()).orderByAsc(Category::getSort);IPage<Category> iPage = new Page<>(categoryPageQueryDTO.getPage(), categoryPageQueryDTO.getPageSize());return categoryMapper.selectPage(iPage, queryWrapper);}@Overridepublic void addCategory(CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);Category category = new Category();BeanUtils.copyProperties(categoryDTO, category);category.setStatus(0);category.setCreateUser(BaseContext.getCurrentId());category.setUpdateUser(BaseContext.getCurrentId());category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());categoryMapper.insert(category);}@Overridepublic void changeStatus(Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);Category category = new Category();category.setId(id);category.setStatus(status);category.setUpdateTime(LocalDateTime.now());category.setUpdateUser(BaseContext.getCurrentId());categoryMapper.updateById(category);}
}

3、CategoryMapper的修改

mapper不用修改!!!

四、分类修改

1、CategoryController类修改

package com.sky.controller.admin;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/admin/category")
@Slf4j
@Api(tags = "分类相关操作")
public class CategoryController {@Autowiredprivate CategoryService categoryService;/*** 模糊查询和分页查询分类** @return*/@ApiOperation("模糊和分页查询分类")@GetMapping("/page")public Result<PageResult> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("查询条件:categoryPageQueryDTO:{}", categoryPageQueryDTO);IPage<Category> categoryList = categoryService.getCategoryList(categoryPageQueryDTO);PageResult pageResult = new PageResult();pageResult.setTotal(categoryList.getTotal());pageResult.setRecords(categoryList.getRecords());return Result.success(pageResult);}/*** 新增分类** @param categoryDTO 分类信息* @return*/@ApiOperation("新增分类")@PostMappingpublic Result<String> addCategory(@RequestBody CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);categoryService.addCategory(categoryDTO);return Result.success();}@ApiOperation("启用、禁用分类")@PostMapping("/status/{status}")public Result<String> changeStatus(@PathVariable Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);categoryService.changeStatus(status, id);return Result.success();}@ApiOperation("修改分类")@PutMappingpublic Result<String> updateCategory(@RequestBody CategoryDTO categoryDTO) {log.info("修改分类:{}", categoryDTO);categoryService.updateCategory(categoryDTO);return Result.success();}
}

2、CategoryService和impl的修改

package com.sky.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;public interface CategoryService {/*** 根据前台查询条件查询分类列表** @param categoryPageQueryDTO* @return*/IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO);/*** 新增分类** @param categoryDTO 新的分类信息*/void addCategory(CategoryDTO categoryDTO);/*** 启用、禁用分类** @param status 修改后的状态* @param id     分类的id*/void changeStatus(Integer status, Long id);/*** 修改分类** @param categoryDTO 新的分类信息*/void updateCategory(CategoryDTO categoryDTO);
}
package com.sky.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.entity.Dish;
import com.sky.entity.Setmeal;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Overridepublic IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("service:categoryPageQueryDTO:{}", categoryPageQueryDTO);LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(StringUtils.isNotEmpty(categoryPageQueryDTO.getName()), Category::getName, categoryPageQueryDTO.getName()).like(categoryPageQueryDTO.getType() != null, Category::getType, categoryPageQueryDTO.getType()).orderByAsc(Category::getSort);IPage<Category> iPage = new Page<>(categoryPageQueryDTO.getPage(), categoryPageQueryDTO.getPageSize());return categoryMapper.selectPage(iPage, queryWrapper);}@Overridepublic void addCategory(CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);Category category = new Category();BeanUtils.copyProperties(categoryDTO, category);category.setStatus(0);category.setCreateUser(BaseContext.getCurrentId());category.setUpdateUser(BaseContext.getCurrentId());category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());categoryMapper.insert(category);}@Overridepublic void changeStatus(Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);Category category = new Category();category.setId(id);category.setStatus(status);category.setUpdateTime(LocalDateTime.now());category.setUpdateUser(BaseContext.getCurrentId());categoryMapper.updateById(category);}@Overridepublic void updateCategory(CategoryDTO categoryDTO) {log.info("修改分类:{}", categoryDTO);Category category = categoryMapper.selectById(categoryDTO.getId());category.setName(categoryDTO.getName());category.setSort(categoryDTO.getSort());category.setUpdateUser(BaseContext.getCurrentId());category.setUpdateTime(LocalDateTime.now());categoryMapper.updateById(category);}
}

3、CategoryMapper的修改

mapper不用修改!!!

五、分类删除

        分类的删除不是单纯直接删除,而是需要判断被删除的分类下是否已经有菜品或者套餐,如果有则不允许删除。

1、新增分类的报错提示消息

package com.sky.handler;import com.sky.constant.MessageConstant;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;import java.sql.SQLIntegrityConstraintViolationException;@RestControllerAdvice
@Slf4j
public class CategoryAdvice {@ExceptionHandler(DeletionNotAllowedException.class)public Result<String> systemException(DeletionNotAllowedException ex) {log.error("异常信息:{}", ex.getMessage());return Result.error(ex.getMessage());}@ExceptionHandlerpublic Result<String> doSQLException(SQLIntegrityConstraintViolationException ex) {log.error("异常信息:{}", ex.getMessage());String message = ex.getMessage();if (message.contains("Duplicate")) {return Result.error(message.split(" ")[2] + MessageConstant.ALREADY_EXIST);}return Result.error(MessageConstant.UNKNOWN_ERROR);}
}

2、CategoryController类修改

package com.sky.controller.admin;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/admin/category")
@Slf4j
@Api(tags = "分类相关操作")
public class CategoryController {@Autowiredprivate CategoryService categoryService;/*** 模糊查询和分页查询分类** @return*/@ApiOperation("模糊和分页查询分类")@GetMapping("/page")public Result<PageResult> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("查询条件:categoryPageQueryDTO:{}", categoryPageQueryDTO);IPage<Category> categoryList = categoryService.getCategoryList(categoryPageQueryDTO);PageResult pageResult = new PageResult();pageResult.setTotal(categoryList.getTotal());pageResult.setRecords(categoryList.getRecords());return Result.success(pageResult);}/*** 新增分类** @param categoryDTO 分类信息* @return*/@ApiOperation("新增分类")@PostMappingpublic Result<String> addCategory(@RequestBody CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);categoryService.addCategory(categoryDTO);return Result.success();}@ApiOperation("启用、禁用分类")@PostMapping("/status/{status}")public Result<String> changeStatus(@PathVariable Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);categoryService.changeStatus(status, id);return Result.success();}@ApiOperation("修改分类")@PutMappingpublic Result<String> updateCategory(@RequestBody CategoryDTO categoryDTO) {log.info("修改分类:{}", categoryDTO);categoryService.updateCategory(categoryDTO);return Result.success();}@ApiOperation("删除分类")@DeleteMappingpublic Result<String> deleteCategoryById(Long id) {log.info("删除分类:{}", id);categoryService.deleteCategoryById(id);return Result.success();}
}

3、CategoryService和impl的修改

package com.sky.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;public interface CategoryService {/*** 根据前台查询条件查询分类列表** @param categoryPageQueryDTO* @return*/IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO);/*** 新增分类** @param categoryDTO 新的分类信息*/void addCategory(CategoryDTO categoryDTO);/*** 启用、禁用分类** @param status 修改后的状态* @param id     分类的id*/void changeStatus(Integer status, Long id);/*** 修改分类** @param categoryDTO 新的分类信息*/void updateCategory(CategoryDTO categoryDTO);/*** 根据id删除分类* 删除时需要判断该分类下有没有菜品或套餐,如果有则不能删除:通过category的id和dish以及setmeal的category_id关联查询** @param id 要删除的分类id*/void deleteCategoryById(Long id);
}

        impl中实现删除功能:通过分类表的id与菜品表和套餐表的category_id联查,查询是否含有该分类下的菜品和套餐。

package com.sky.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.entity.Dish;
import com.sky.entity.Setmeal;
import com.sky.exception.DeletionNotAllowedException;
import com.sky.mapper.CategoryMapper;
import com.sky.mapper.DishMapper;
import com.sky.mapper.SetmealMapper;
import com.sky.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
@Slf4j
public class CategoryServiceImpl implements CategoryService {@Autowiredprivate CategoryMapper categoryMapper;@Autowiredprivate DishMapper dishMapper;@Autowiredprivate SetmealMapper setmealMapper;@Overridepublic IPage<Category> getCategoryList(CategoryPageQueryDTO categoryPageQueryDTO) {log.info("service:categoryPageQueryDTO:{}", categoryPageQueryDTO);LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(StringUtils.isNotEmpty(categoryPageQueryDTO.getName()), Category::getName, categoryPageQueryDTO.getName()).like(categoryPageQueryDTO.getType() != null, Category::getType, categoryPageQueryDTO.getType()).orderByAsc(Category::getSort);IPage<Category> iPage = new Page<>(categoryPageQueryDTO.getPage(), categoryPageQueryDTO.getPageSize());return categoryMapper.selectPage(iPage, queryWrapper);}@Overridepublic void addCategory(CategoryDTO categoryDTO) {log.info("新增分类:{}", categoryDTO);Category category = new Category();BeanUtils.copyProperties(categoryDTO, category);category.setStatus(0);category.setCreateUser(BaseContext.getCurrentId());category.setUpdateUser(BaseContext.getCurrentId());category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());categoryMapper.insert(category);}@Overridepublic void changeStatus(Integer status, Long id) {log.info("启用、禁用分类:{};id:{}", status, id);Category category = new Category();category.setId(id);category.setStatus(status);category.setUpdateTime(LocalDateTime.now());category.setUpdateUser(BaseContext.getCurrentId());categoryMapper.updateById(category);}@Overridepublic void updateCategory(CategoryDTO categoryDTO) {log.info("修改分类:{}", categoryDTO);Category category = categoryMapper.selectById(categoryDTO.getId());category.setName(categoryDTO.getName());category.setSort(categoryDTO.getSort());category.setUpdateUser(BaseContext.getCurrentId());category.setUpdateTime(LocalDateTime.now());categoryMapper.updateById(category);}@Overridepublic void deleteCategoryById(Long id) {log.info("分类的id:{}", id);// 1、获取该分类下的dishLambdaQueryWrapper<Dish> queryDish = new LambdaQueryWrapper<>();queryDish.eq(Dish::getCategoryId, id);List<Dish> dishes = dishMapper.selectList(queryDish);// 2、获取该分类下的setmealLambdaQueryWrapper<Setmeal> querySetmeal = new LambdaQueryWrapper<>();querySetmeal.eq(Setmeal::getCategoryId, id);List<Setmeal> setmeals = setmealMapper.selectList(querySetmeal);// 3、判断dish和setmeal是否为空,如果为空则执行删除分类的操作,否则提示该分类下有菜品或套餐,不允许删除if (dishes != null && !dishes.isEmpty()) {throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_DISH);}if (setmeals != null && !setmeals.isEmpty()) {throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_SETMEAL);}categoryMapper.deleteById(id);}
}

4、CategoryMapper的修改

mapper不用修改!!!

http://www.dtcms.com/a/599145.html

相关文章:

  • 网站建设初验申请表青岛网站建设好不好
  • 孤能子视角:生命的活力––弱关系
  • 【医学影像 AI】用于糖尿病视网膜病变检测的固有可解释的稀疏 BagNet模型
  • 网站开发确认函网站开发什么时候用缓存
  • 企业网站建设费用怎么入账三明市住房与建设局网站
  • 06_作业基于CubeMx实现按键控制LED灯(裸机)(立芯嵌入式笔记)
  • 5G独立组网(SA) 和非独立组网(NSA)
  • 第12天python内容
  • 一屏展示网站来宾市住房和城乡建设局网站
  • 库尔勒市建设路街道办网站网站建设详细教程视频教程
  • 论坛网站建设求职网站开发多少钱
  • 计算报告指令
  • MicroService(Redis)
  • 昆明建设局网站代账会计在哪里找
  • 江门骏科网站建设小程序招商加盟
  • thinkadmin后台列表页面展示多图,点击放大镜预览效果
  • 电源完整性10-安装电感与自谐振频率
  • 360搜索网站提交入口wordpress调用文章摘要
  • 基于springboot个人云盘管理系统【带源码和文档】
  • 建商城网站带app多少钱电商数据网站
  • cms网站是什么网站根目录多文件
  • Windows 安装MySQL 9.5
  • leetcode 946 验证栈序列
  • 使用admin api添加kong配置信息
  • 怎么做狼视听网站东莞人才网官方网站
  • 厦门市建设执业资格注册管理中心网站书怎么做pdf下载网站
  • 网站制作定制图苏州工业园区招聘官网
  • 评估工程正成为下一轮Agent演进的重点
  • 哪个网站做相册好苏州网站优化建设
  • 百度账号购买网站引流推广方式