init
This commit is contained in:
@@ -1,12 +1,25 @@
|
||||
package com.yupi.springbootinit.controller;
|
||||
|
||||
import com.yupi.springbootinit.common.BaseResponse;
|
||||
import com.yupi.springbootinit.common.DeleteRequest;
|
||||
import com.yupi.springbootinit.common.ErrorCode;
|
||||
import com.yupi.springbootinit.common.ResultUtils;
|
||||
import com.yupi.springbootinit.exception.BusinessException;
|
||||
import com.yupi.springbootinit.exception.ThrowUtils;
|
||||
import com.yupi.springbootinit.manager.CosManager;
|
||||
import com.yupi.springbootinit.model.dto.dish.DishAddRequest;
|
||||
import com.yupi.springbootinit.model.dto.dish.DishRandomRequest;
|
||||
import com.yupi.springbootinit.model.dto.dish.DishUpdataRequest;
|
||||
import com.yupi.springbootinit.model.entity.Dish;
|
||||
import com.yupi.springbootinit.service.DishService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/dish")
|
||||
@@ -18,4 +31,92 @@ public class DishController {
|
||||
@Resource
|
||||
private CosManager cosManager;
|
||||
|
||||
}
|
||||
@PostMapping("/add")
|
||||
public BaseResponse<Long> add(@RequestBody DishAddRequest dishAddRequest, HttpServletRequest request) {
|
||||
if (dishAddRequest == null) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
validateDishType(dishAddRequest.getDishType());
|
||||
Dish dish = new Dish();
|
||||
BeanUtils.copyProperties(dishAddRequest, dish);
|
||||
// 设置创建时间和更新时间为当前时间
|
||||
dish.setCreateTime(new Date());
|
||||
dish.setUpdateTime(new Date());
|
||||
Boolean result = dishService.save(dish);
|
||||
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
|
||||
return ResultUtils.success(dish.getId());
|
||||
}
|
||||
|
||||
// 添加查询所有数据的方法
|
||||
@GetMapping("/list")
|
||||
public BaseResponse<List<Dish>> list() {
|
||||
List<Dish> dishList = dishService.list();
|
||||
return ResultUtils.success(dishList);
|
||||
}
|
||||
|
||||
// 添加删除数据的方法
|
||||
@PostMapping("/delete")
|
||||
public BaseResponse<Boolean> delete(@RequestBody DeleteRequest deleteRequest, HttpServletRequest request) {
|
||||
if (deleteRequest == null || deleteRequest.getId() <= 0) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
boolean result = dishService.removeById(deleteRequest.getId());
|
||||
return ResultUtils.success(result);
|
||||
}
|
||||
|
||||
//更改菜品数据方法
|
||||
@PostMapping("/update")
|
||||
public BaseResponse<Boolean> update(@RequestBody DishUpdataRequest dishUpdataRequest, HttpServletRequest request) {
|
||||
if (dishUpdataRequest == null || dishUpdataRequest.getId() <= 0) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||
}
|
||||
Dish oldDish = dishService.getById(dishUpdataRequest.getId());
|
||||
if (oldDish == null) {
|
||||
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);
|
||||
}
|
||||
// 仅更新非空字段,包括空字符串和空格
|
||||
if (dishUpdataRequest.getDishName() != null && !dishUpdataRequest.getDishName().trim().isEmpty()) {
|
||||
oldDish.setDishName(dishUpdataRequest.getDishName());
|
||||
}
|
||||
if (dishUpdataRequest.getDishType() != null && !dishUpdataRequest.getDishType().trim().isEmpty()) {
|
||||
validateDishType(dishUpdataRequest.getDishType());
|
||||
oldDish.setDishType(dishUpdataRequest.getDishType());
|
||||
}
|
||||
if (dishUpdataRequest.getDishPrice() != null && !dishUpdataRequest.getDishPrice().trim().isEmpty()) {
|
||||
oldDish.setDishPrice(dishUpdataRequest.getDishPrice());
|
||||
}
|
||||
if (dishUpdataRequest.getDishIngredients() != null && !dishUpdataRequest.getDishIngredients().trim().isEmpty()) {
|
||||
oldDish.setDishIngredients(dishUpdataRequest.getDishIngredients());
|
||||
}
|
||||
if (dishUpdataRequest.getDishImage() != null && !dishUpdataRequest.getDishImage().trim().isEmpty()) {
|
||||
oldDish.setDishImage(dishUpdataRequest.getDishImage());
|
||||
}
|
||||
oldDish.setUpdateTime(new Date());
|
||||
Boolean result = dishService.updateById(oldDish);
|
||||
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
|
||||
return ResultUtils.success(result);
|
||||
}
|
||||
|
||||
// 新增方法:验证菜品类型
|
||||
private void validateDishType(String dishType) {
|
||||
if (!dishType.equals(Dish.DISH_TYPE_HOT_NO_OIL) &&
|
||||
!dishType.equals(Dish.DISH_TYPE_HOT_WITH_OIL) &&
|
||||
!dishType.equals(Dish.DISH_TYPE_VEGETARIAN) &&
|
||||
!dishType.equals(Dish.DISH_TYPE_COLD) &&
|
||||
!dishType.equals(Dish.DISH_TYPE_SOUP)) {
|
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "Invalid dish type");
|
||||
}
|
||||
}
|
||||
|
||||
//按已经定好的权重比例随机挑选菜品
|
||||
@GetMapping("/random")
|
||||
public BaseResponse<java.awt.List> randomDish(Integer num){
|
||||
return ResultUtils.success(dishService.randomDish(num));
|
||||
}
|
||||
|
||||
//按菜品分类的权重比例随机抽选菜品
|
||||
@GetMapping("/randomByWeight")
|
||||
public BaseResponse<java.awt.List> randomDishByWeight(DishRandomRequest dishRandomRequest){
|
||||
return ResultUtils.success(dishService.randomDishByWeight(dishRandomRequest));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.yupi.springbootinit.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.yupi.springbootinit.model.entity.Dish;
|
||||
|
||||
public interface DishMapper extends BaseMapper<Dish> {
|
||||
}
|
||||
@@ -2,28 +2,34 @@ package com.yupi.springbootinit.model.dto.dish;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DishAddRequest implements Serializable {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
/**
|
||||
* 菜品名称
|
||||
*/
|
||||
private String dishName;
|
||||
|
||||
/**
|
||||
* 菜品类型
|
||||
*/
|
||||
private String dishType;
|
||||
|
||||
/**
|
||||
* 菜品价格
|
||||
*/
|
||||
private String dishPrice;
|
||||
|
||||
/**
|
||||
* 菜品食材
|
||||
* 菜品成分
|
||||
*/
|
||||
private String dishIngredients;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
/**
|
||||
* 菜品图片
|
||||
*/
|
||||
private String dishImage;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yupi.springbootinit.model.dto.dish;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DishRandomRequest implements Serializable {
|
||||
@NotNull
|
||||
private Integer dishCount; // 添加菜品数量字段
|
||||
@NotNull
|
||||
private String DISH_TYPE_HOT_NO_OIL_Weight;
|
||||
@NotNull
|
||||
private String DISH_TYPE_HOT_WITH_OIL_Weight;
|
||||
@NotNull
|
||||
private String DISH_TYPE_VEGETARIAN_Weight;
|
||||
@NotNull
|
||||
private String DISH_TYPE_COLD_Weight;
|
||||
@NotNull
|
||||
private String DISH_TYPE_SOUP_Weight;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.yupi.springbootinit.model.dto.dish;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DishUpdataRequest implements Serializable {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
/**
|
||||
* 菜品名称
|
||||
*/
|
||||
private String dishName;
|
||||
/**
|
||||
* 菜品类型
|
||||
*/
|
||||
private String dishType;
|
||||
/**
|
||||
* 菜品价格
|
||||
*/
|
||||
private String dishPrice;
|
||||
/**
|
||||
* 菜品成分
|
||||
*/
|
||||
private String dishIngredients;
|
||||
/**
|
||||
* 菜品图片
|
||||
*/
|
||||
private String dishImage;
|
||||
}
|
||||
@@ -52,4 +52,11 @@ public class Dish {
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
// 定义菜品类型的常量
|
||||
public static final String DISH_TYPE_HOT_NO_OIL = "1";
|
||||
public static final String DISH_TYPE_HOT_WITH_OIL = "2";
|
||||
public static final String DISH_TYPE_VEGETARIAN = "3";
|
||||
public static final String DISH_TYPE_COLD = "4";
|
||||
public static final String DISH_TYPE_SOUP = "5";
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
package com.yupi.springbootinit.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.yupi.springbootinit.model.dto.dish.DishRandomRequest;
|
||||
import com.yupi.springbootinit.model.entity.Dish;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public interface DishService extends IService<Dish> {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
package com.yupi.springbootinit.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.yupi.springbootinit.mapper.DishMapper;
|
||||
import com.yupi.springbootinit.model.dto.dish.DishRandomRequest;
|
||||
import com.yupi.springbootinit.model.entity.Dish;
|
||||
import com.yupi.springbootinit.service.DishService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Service
|
||||
public class DishServiceImpl {
|
||||
}
|
||||
public class DishServiceImpl extends ServiceImpl<DishMapper, Dish> implements DishService {
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user