1. Neu hinzugefügte Gerichte
1.1 Bedarfsanalyse
Das Hintergrundsystem kann klassifiziert verwalten Informationen, klassifizieren Sie Gerichte in Kategorien und stellen Sie Mahlzeiten in Kategorien ein. Wenn wir Gerichte im Backend-System hinzufügen, müssen wir eine Gerichtskategorie auswählen.
Wenn wir im Backend-System ein Menü hinzufügen, müssen wir eine Menükategorie auswählen. Die entsprechenden Gerichte und Menüs werden entsprechend der Gerichtskategorie und dem Menü angezeigt Kategorie.
Fügen Sie gleichzeitig die Gerichtskategorie bzw. die Paketkategorie auf der Kategorieverwaltungsseite des Backend-Systems hinzu:
#🎜🎜 #Gerichtskategorie hinzufügen#🎜 🎜#
Paketkategorie hinzufügen
Datenmodell:
#🎜 🎜#Beinhaltet eine Tabelle Kategorietabelle:
Die der Tabelle entsprechende Daten-JavaBean ist Category.java# 🎜🎜#Category.java# 🎜🎜#
package com.itheima.reggie.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 分类
*/
@Data
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;
//创建时间
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
//创建人
@TableField(fill = FieldFill.INSERT)
private Long createUser;
//修改人
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
//是否删除
private Integer isDeleted;
}
Der spezifische Rahmen bezieht sich auf die vorherige Konstruktion der Employee-Entität.
1.2 Codeentwicklung
Die für die Klassifizierung neuer Gerichte und Pakete angeforderte Dienstadresse ist dieselbe wie die übermittelte JSON-Datenstruktur. Der Server muss nur eine Methode bereitstellen: # 🎜 🎜# # 🎜🎜#URL anfordern
/Kategorie
Daten anfordern
{
"Name" : „Sichuan-Küche“, „Typ“: „1“, „Sortierung“: „1“} |
|
#🎜 🎜#Code
Neuen Code in CategoryController.java schreiben: | package com.itheima.reggie.controller;
import com.itheima.reggie.common.R;
import com.itheima.reggie.entity.Category;
import com.itheima.reggie.service.CategoryService;
import lombok.extern.slf4j.Slf4j;
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;
import javax.annotation.Resource;
/**
* @author jektong
* @date 2022年05月06日 21:47
*/
@RestController
@Slf4j
@RequestMapping("/category")
public class CategoryController {
@Resource
private CategoryService categoryService;
/**
* 新增分类
* @param category
* @return
*/
@PostMapping
public R<String> save(@RequestBody Category category){
log.info("category:{}",category);
categoryService.save(category);
return R.success("新增分类成功");
}
}
2. Paging-Abfrage von Kategorieinformationen |
Paging-Abfrage mit früheren Mitarbeitern Die Informationsabfrage ist die gleiche, gehen Sie direkt zum Code: @GetMapping("/page")
public R<Page> page(int page, int pageSize){
// 分页构造
Page<Category> pageInfo = new Page<Category>(page,pageSize);
// 查询并排序
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper();
queryWrapper.orderByAsc(Category::getSort);
// 分页查询
categoryService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
3. Kategorie löschen |
3.1 Bedarfsanalyse
Auf der Kategorieverwaltungslistenseite können Sie eine bestimmte Kategorie löschen. Bitte beachten Sie, dass eine Kategorie, die mit einem Gericht oder Menü verknüpft ist, nicht gelöscht werden kann.
|
API
Beschreibung
Wert
Anfrage-URL
/category?id=
#🎜 🎜#Sie müssen zwei Entitäten einführen: Dish und Set Meal:
Dish.java: Dish Entity
package com.itheima.reggie.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
菜品
*/
@Data
public class Dish implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
//菜品名称
private String name;
//菜品分类id
private Long categoryId;
//菜品价格
private BigDecimal price;
//商品码
private String code;
//图片
private String image;
//描述信息
private String description;
//0 停售 1 起售
private Integer status;
//顺序
private Integer sort;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(fill = FieldFill.INSERT)
private Long createUser;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
//是否删除
private Integer isDeleted;
}
Setmeal.java:set Meal Entitypackage com.itheima.reggie.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 套餐
*/
@Data
public class Setmeal implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
//分类id
private Long categoryId;
//套餐名称
private String name;
//套餐价格
private BigDecimal price;
//状态 0:停用 1:启用
private Integer status;
//编码
private String code;
//描述信息
private String description;
//图片
private String image;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(fill = FieldFill.INSERT)
private Long createUser;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
//是否删除
private Integer isDeleted;
}
# 🎜🎜# 3.2 Kerncode
CategoryServiceImpl.java | package com.itheima.reggie.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.reggie.common.CustomException;
import com.itheima.reggie.entity.Category;
import com.itheima.reggie.entity.Dish;
import com.itheima.reggie.entity.Setmeal;
import com.itheima.reggie.mapper.CategoryMapper;
import com.itheima.reggie.service.CategoryService;
import com.itheima.reggie.service.DishService;
import com.itheima.reggie.service.SetmealService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author jektong
* @date 2022年05月06日 21:44
*/
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {
@Resource
private DishService dishService;
@Resource
private SetmealService setmealService;
/**
* 根据ID删除分类,分类之前需要判断
* @param id
*/
@Override
public void remove(Long id) {
LambdaQueryWrapper<Dish> dishLambdaQueryWrapper = new LambdaQueryWrapper<>();
// 查询当前分类是否关联了菜品,若关联菜品,抛出异常
dishLambdaQueryWrapper.eq(Dish::getCategoryId,id);
int count = dishService.count(dishLambdaQueryWrapper);
if(count > 0){
// 已经关联菜品,抛出异常
throw new CustomException("当前分类已关联菜品,不可删除");
}
// 查询当前分类是否关联了套餐,若关联菜品,抛出异常
LambdaQueryWrapper<Setmeal> setmealLambdaQueryWrapper = new LambdaQueryWrapper<>();
setmealLambdaQueryWrapper.eq(Setmeal::getCategoryId,id);
int count1 = setmealService.count(setmealLambdaQueryWrapper);
if(count>0){
// 已经关联套餐,抛出异常
throw new CustomException("当前分类已关联套餐,不可删除");
}
// 正常删除分类
super.removeById(id);
}
}
Zur vorherigen benutzerdefinierten Ausnahmeklasse hinzugefügt: | /**
* 异常处理方法
* @param customException
* @return
*/
@ExceptionHandler(CustomException.class)
public R<String> exceptionHandler(CustomException customException){
log.error(customException.getMessage());
return R.error(customException.getMessage());
}
CustomException.java package com.itheima.reggie.common;
/**
* @author jektong
* @date 2022年05月10日 22:26
*/
public class CustomException extends RuntimeException{
public CustomException(String msg){
super(msg);
}
}
#🎜 🎜#4. Ändern Sie die Klassifizierung | Ändern Sie die Klassifizierung einfach entsprechend der Klassifizierungs-ID. Der Code lautet wie folgt: @PutMapping
public R<String> update(@RequestBody Category category){
log.info("修改分类信息{}" + category);
categoryService.updateById(category);
return R.success("分类修改成功");
} |
Das obige ist der detaillierte Inhalt vonSo implementieren Sie neue Gerichte und Paging-Abfragen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!