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

分类操作-01.新增分类

一.新增分类

对员工操作完成后,我们要进行分类操作。分类就是对菜品进行集中管理,将菜品进行分类。分类总大类分为两类,一类是菜品分类,另一类是套餐分类。对于分类,我们定义实体类Category.class。DTO类CategoryDTO.class。

Category.class

package com.sky.entity;

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;

    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;
}

CategoryDTO.class 

package com.sky.dto;

import lombok.Data;

import java.io.Serializable;

@Data
public class CategoryDTO implements Serializable {

    //主键
    private Long id;

    //类型 1 菜品分类 2 套餐分类
    private Integer type;

    //分类名称
    private String name;

    //排序
    private Integer sort;

}

二.接口文档 

针对接口文档我们开发新增分类功能,使用post请求。传递过来的参数以JSON格式被封装在employeeDTO对象中。不用给前端返回数据。

三.controller层

package com.sky.controller.admin;

import com.sky.dto.CategoryDTO;
import com.sky.entity.Category;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import com.sky.service.impl.CategoryServiceImpl;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 分类管理
 */

@RestController
@Api(tags = "分类相关接口")
@RequestMapping("/admin/category")
@Slf4j
public class CategoryController {

    @Autowired
    private CategoryService categoryService;

    /**
     * 新增分类
     * @param categoryDTO
     * @return
     */
    @PostMapping
    @ApiOperation("新增分类")
    public Result save(@RequestBody CategoryDTO categoryDTO){
        log.info("新增分类:{}",categoryDTO);
        categoryService.save(categoryDTO);
        return Result.success();
    }


}

四.service层

接口

package com.sky.service;

import com.sky.dto.CategoryDTO;

public interface CategoryService {

    /**
     * 新增分类
     * @param categoryDTO
     */
    void save(CategoryDTO categoryDTO);
}

实现类

package com.sky.service.impl;

import com.sky.context.BaseContext;
import com.sky.dto.CategoryDTO;
import com.sky.entity.Category;
import com.sky.mapper.CategoryMapper;
import com.sky.service.CategoryService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;

@Service
public class CategoryServiceImpl implements CategoryService {

    @Autowired
    private CategoryMapper categoryMapper;


    /**
     * 新增分类
     * @param categoryDTO
     */
    @Override
    public void save(CategoryDTO categoryDTO) {
        Category category = new Category();
        BeanUtils.copyProperties(category,categoryDTO);
        
        category.setStatus(StatusConstant.DISABLE);
        category.setCreateTime(LocalDateTime.now());
        category.setUpdateTime(LocalDateTime.now());
        category.setCreateUser(BaseContext.getCurrentId());
        category.setUpdateUser(BaseContext.getCurrentId());
        categoryMapper.insert(category);
    }
}

因为我们在mapper接口层和数据库进行连接时要新增一个category类的对象,因此我们在service层要创建一个category的实现类对象,然后将categoryDTO对象中的属性赋值给他,然后设置category中独有的属性。这其中status表示启用或者禁用该分类,我们要注意这里我们默认将其设置为0,这是因为我们当前的分类中还没有添加菜品,因此先不展示给用户。这里的setUpdateUser仍然使用ThreadLocal来获取。

五.mapper层

package com.sky.mapper;

import com.sky.entity.Category;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;


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

前后端联调 

可以看到数据已加入

 

相关文章:

  • canal集群部署
  • 求出e的值(信息学奥赛一本通-1092)
  • ctfshow做题笔记—栈溢出—pwn69~pwn72
  • HybridCLR Generate All 报错UnityLinker.exe
  • Ubuntu-配置apt国内源
  • SpringBoot 实现接口数据脱敏
  • 【自学笔记】MoonBit语言基础知识点总览-持续更新
  • GOF设计模式在 Spring 框架中的核心应用分析
  • golang算法快慢指针
  • 19个判定学术写作内容有AI生成痕迹的例子
  • (Lauterbach调试器学习笔记)一、首次连接TriCore开发板调试
  • AutoGen学习笔记系列(十三)Advanced - Logging
  • 第75期 Doxygen是干嘛的,Windows版本,如何安装,学习
  • 函数题 01-复杂度3 二分查找【PAT】
  • 市盈率研究
  • Spring Boot集成EasyExcel
  • Python使用入门(二)
  • 侯捷 C++ 课程学习笔记:C++ 新标准11/14
  • 力扣练习之确定两个字符串是否接近
  • 【net2】mii,mdio,ncsi,bond,vlan,dns,ipv6
  • 去年上海全市博物馆接待观众约4087万人次,同比增31.9%
  • 15年全程免费,内蒙古准格尔旗实现幼儿园到高中0学费
  • 浙江美术馆馆长人民日报撰文:打开更辽阔的审美场域
  • 新疆多地市民拍到不明飞行物:几秒内加速消失,气象部门回应
  • 雅安市纪委监委回应黄杨钿甜耳环事件:相关政府部门正在处理
  • 网易有道一季度净利润同比增长247%:有能力在今年实现更强劲的利润增长