苍穹外卖--分类管理代码导入
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
package com.sky.controller.admin;
|
||||
|
||||
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.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分类管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/admin/category")
|
||||
@Api(tags = "分类相关接口")
|
||||
@Slf4j
|
||||
public class CategoryController {
|
||||
|
||||
@Autowired
|
||||
private CategoryService categoryService;
|
||||
|
||||
/**
|
||||
* 新增分类
|
||||
* @param categoryDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping
|
||||
@ApiOperation("新增分类")
|
||||
public Result<String> save(@RequestBody CategoryDTO categoryDTO){
|
||||
log.info("新增分类:{}", categoryDTO);
|
||||
categoryService.save(categoryDTO);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类分页查询
|
||||
* @param categoryPageQueryDTO
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@ApiOperation("分类分页查询")
|
||||
public Result<PageResult> page(CategoryPageQueryDTO categoryPageQueryDTO){
|
||||
log.info("分页查询:{}", categoryPageQueryDTO);
|
||||
PageResult pageResult = categoryService.pageQuery(categoryPageQueryDTO);
|
||||
return Result.success(pageResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分类
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping
|
||||
@ApiOperation("删除分类")
|
||||
public Result<String> deleteById(Long id){
|
||||
log.info("删除分类:{}", id);
|
||||
categoryService.deleteById(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分类
|
||||
* @param categoryDTO
|
||||
* @return
|
||||
*/
|
||||
@PutMapping
|
||||
@ApiOperation("修改分类")
|
||||
public Result<String> update(@RequestBody CategoryDTO categoryDTO){
|
||||
categoryService.update(categoryDTO);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用、禁用分类
|
||||
* @param status
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/status/{status}")
|
||||
@ApiOperation("启用禁用分类")
|
||||
public Result<String> startOrStop(@PathVariable("status") Integer status, Long id){
|
||||
categoryService.startOrStop(status,id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据类型查询分类
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("根据类型查询分类")
|
||||
public Result<List<Category>> list(Integer type){
|
||||
List<Category> list = categoryService.list(type);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
50
sky-server/src/main/java/com/sky/mapper/CategoryMapper.java
Normal file
50
sky-server/src/main/java/com/sky/mapper/CategoryMapper.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package com.sky.mapper;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.sky.enumeration.OperationType;
|
||||
import com.sky.dto.CategoryPageQueryDTO;
|
||||
import com.sky.entity.Category;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface CategoryMapper {
|
||||
|
||||
/**
|
||||
* 插入数据
|
||||
* @param category
|
||||
*/
|
||||
@Insert("insert into category(type, name, sort, status, create_time, update_time, create_user, update_user)" +
|
||||
" VALUES" +
|
||||
" (#{type}, #{name}, #{sort}, #{status}, #{createTime}, #{updateTime}, #{createUser}, #{updateUser})")
|
||||
void insert(Category category);
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param categoryPageQueryDTO
|
||||
* @return
|
||||
*/
|
||||
Page<Category> pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);
|
||||
|
||||
/**
|
||||
* 根据id删除分类
|
||||
* @param id
|
||||
*/
|
||||
@Delete("delete from category where id = #{id}")
|
||||
void deleteById(Long id);
|
||||
|
||||
/**
|
||||
* 根据id修改分类
|
||||
* @param category
|
||||
*/
|
||||
void update(Category category);
|
||||
|
||||
/**
|
||||
* 根据类型查询分类
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
List<Category> list(Integer type);
|
||||
}
|
||||
17
sky-server/src/main/java/com/sky/mapper/DishMapper.java
Normal file
17
sky-server/src/main/java/com/sky/mapper/DishMapper.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.sky.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
@Mapper
|
||||
public interface DishMapper {
|
||||
|
||||
/**
|
||||
* 根据分类id查询菜品数量
|
||||
* @param categoryId
|
||||
* @return
|
||||
*/
|
||||
@Select("select count(id) from dish where category_id = #{categoryId}")
|
||||
Integer countByCategoryId(Long categoryId);
|
||||
|
||||
}
|
||||
17
sky-server/src/main/java/com/sky/mapper/SetmealMapper.java
Normal file
17
sky-server/src/main/java/com/sky/mapper/SetmealMapper.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.sky.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
@Mapper
|
||||
public interface SetmealMapper {
|
||||
|
||||
/**
|
||||
* 根据分类id查询套餐的数量
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Select("select count(id) from setmeal where category_id = #{categoryId}")
|
||||
Integer countByCategoryId(Long id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.sky.service;
|
||||
|
||||
import com.sky.dto.CategoryDTO;
|
||||
import com.sky.dto.CategoryPageQueryDTO;
|
||||
import com.sky.entity.Category;
|
||||
import com.sky.result.PageResult;
|
||||
import java.util.List;
|
||||
|
||||
public interface CategoryService {
|
||||
|
||||
/**
|
||||
* 新增分类
|
||||
* @param categoryDTO
|
||||
*/
|
||||
void save(CategoryDTO categoryDTO);
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param categoryPageQueryDTO
|
||||
* @return
|
||||
*/
|
||||
PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);
|
||||
|
||||
/**
|
||||
* 根据id删除分类
|
||||
* @param id
|
||||
*/
|
||||
void deleteById(Long id);
|
||||
|
||||
/**
|
||||
* 修改分类
|
||||
* @param categoryDTO
|
||||
*/
|
||||
void update(CategoryDTO categoryDTO);
|
||||
|
||||
/**
|
||||
* 启用、禁用分类
|
||||
* @param status
|
||||
* @param id
|
||||
*/
|
||||
void startOrStop(Integer status, Long id);
|
||||
|
||||
/**
|
||||
* 根据类型查询分类
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
List<Category> list(Integer type);
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.sky.service.impl;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.sky.constant.MessageConstant;
|
||||
import com.sky.constant.StatusConstant;
|
||||
import com.sky.context.BaseContext;
|
||||
import com.sky.dto.CategoryDTO;
|
||||
import com.sky.dto.CategoryPageQueryDTO;
|
||||
import com.sky.entity.Category;
|
||||
import com.sky.exception.DeletionNotAllowedException;
|
||||
import com.sky.mapper.CategoryMapper;
|
||||
import com.sky.mapper.DishMapper;
|
||||
import com.sky.mapper.SetmealMapper;
|
||||
import com.sky.result.PageResult;
|
||||
import com.sky.service.CategoryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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 {
|
||||
|
||||
@Autowired
|
||||
private CategoryMapper categoryMapper;
|
||||
@Autowired
|
||||
private DishMapper dishMapper;
|
||||
@Autowired
|
||||
private SetmealMapper setmealMapper;
|
||||
|
||||
/**
|
||||
* 新增分类
|
||||
* @param categoryDTO
|
||||
*/
|
||||
public void save(CategoryDTO categoryDTO) {
|
||||
Category category = new Category();
|
||||
//属性拷贝
|
||||
BeanUtils.copyProperties(categoryDTO, category);
|
||||
|
||||
//分类状态默认为禁用状态0
|
||||
category.setStatus(StatusConstant.DISABLE);
|
||||
|
||||
//设置创建时间、修改时间、创建人、修改人
|
||||
category.setCreateTime(LocalDateTime.now());
|
||||
category.setUpdateTime(LocalDateTime.now());
|
||||
category.setCreateUser(BaseContext.getCurrentId());
|
||||
category.setUpdateUser(BaseContext.getCurrentId());
|
||||
|
||||
categoryMapper.insert(category);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param categoryPageQueryDTO
|
||||
* @return
|
||||
*/
|
||||
public PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO) {
|
||||
PageHelper.startPage(categoryPageQueryDTO.getPage(),categoryPageQueryDTO.getPageSize());
|
||||
//下一条sql进行分页,自动加入limit关键字分页
|
||||
Page<Category> page = categoryMapper.pageQuery(categoryPageQueryDTO);
|
||||
return new PageResult(page.getTotal(), page.getResult());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除分类
|
||||
* @param id
|
||||
*/
|
||||
public void deleteById(Long id) {
|
||||
//查询当前分类是否关联了菜品,如果关联了就抛出业务异常
|
||||
Integer count = dishMapper.countByCategoryId(id);
|
||||
if(count > 0){
|
||||
//当前分类下有菜品,不能删除
|
||||
throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_DISH);
|
||||
}
|
||||
|
||||
//查询当前分类是否关联了套餐,如果关联了就抛出业务异常
|
||||
count = setmealMapper.countByCategoryId(id);
|
||||
if(count > 0){
|
||||
//当前分类下有菜品,不能删除
|
||||
throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_SETMEAL);
|
||||
}
|
||||
|
||||
//删除分类数据
|
||||
categoryMapper.deleteById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分类
|
||||
* @param categoryDTO
|
||||
*/
|
||||
public void update(CategoryDTO categoryDTO) {
|
||||
Category category = new Category();
|
||||
BeanUtils.copyProperties(categoryDTO,category);
|
||||
|
||||
//设置修改时间、修改人
|
||||
category.setUpdateTime(LocalDateTime.now());
|
||||
category.setUpdateUser(BaseContext.getCurrentId());
|
||||
|
||||
categoryMapper.update(category);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用、禁用分类
|
||||
* @param status
|
||||
* @param id
|
||||
*/
|
||||
public void startOrStop(Integer status, Long id) {
|
||||
Category category = Category.builder()
|
||||
.id(id)
|
||||
.status(status)
|
||||
.updateTime(LocalDateTime.now())
|
||||
.updateUser(BaseContext.getCurrentId())
|
||||
.build();
|
||||
categoryMapper.update(category);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据类型查询分类
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
public List<Category> list(Integer type) {
|
||||
return categoryMapper.list(type);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user