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.
![So implementieren Sie neue Gerichte und Paging-Abfragen in Java](https://img.php.cn/upload/article/000/000/164/168455940985235.png)
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!