分类管理模块功能开发
This commit is contained in:
parent
e7d6f8bd2f
commit
2892a48608
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
|
@ -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 Long
|
||||||
|
* @return Integer
|
||||||
|
*/
|
||||||
|
@Select("select count(id) from dish where category_id = #{categoryId}")
|
||||||
|
Integer countByCategoryId(Long categoryId);
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.sky.mapper.CategoryMapper">
|
||||||
|
|
||||||
|
<select id="pageQuery" resultType="com.sky.entity.Category">
|
||||||
|
select * from category
|
||||||
|
<where>
|
||||||
|
<if test="name != null and name != ''">
|
||||||
|
and name like concat('%',#{name},'%')
|
||||||
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
and type = #{type}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by sort asc , create_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="update" parameterType="Category">
|
||||||
|
update category
|
||||||
|
<set>
|
||||||
|
<if test="type != null">
|
||||||
|
type = #{type},
|
||||||
|
</if>
|
||||||
|
<if test="name != null">
|
||||||
|
name = #{name},
|
||||||
|
</if>
|
||||||
|
<if test="sort != null">
|
||||||
|
sort = #{sort},
|
||||||
|
</if>
|
||||||
|
<if test="status != null">
|
||||||
|
status = #{status},
|
||||||
|
</if>
|
||||||
|
<if test="updateTime != null">
|
||||||
|
update_time = #{updateTime},
|
||||||
|
</if>
|
||||||
|
<if test="updateUser != null">
|
||||||
|
update_user = #{updateUser}
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<select id="list" resultType="Category">
|
||||||
|
select * from category
|
||||||
|
where status = 1
|
||||||
|
<if test="type != null">
|
||||||
|
and type = #{type}
|
||||||
|
</if>
|
||||||
|
order by sort asc,create_time desc
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue