苍穹外卖-Day04

1.文件上传

1.需求分析与设计

path:/admin/common/upload

method:POST

2.代码开发

在yml文件中配置阿里云

复制代码
alioss:
  endpoint: 
  access-key-id: 
  access-key-secret: 
  bucket-name: 

创建一个配置类

复制代码
@Configuration
@Slf4j
public class OssConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传工具类:{}", aliOssProperties);
     return new AliOssUtil(aliOssProperties.getEndpoint(),
             aliOssProperties.getAccessKeyId(),
             aliOssProperties.getAccessKeySecret(),
             aliOssProperties.getBucketName());
    }
}

在CommonController中注入阿里云工具类

复制代码
@Autowired
private AliOssUtil aliOssUtil;
复制代码
String originalFilename = file.getOriginalFilename();
//截取原始文件名的后缀
String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
String objectName = UUID.randomUUID().toString() + extension;
//文件上传upload
String filePath = aliOssUtil.upload(file.getBytes(), objectName);

return Result.success(filePath);

2.新增菜品

1.需求分析与设计

path:/admin/dish

method:POST

2.代码开发

将请求参数封装在DTO中,在Service层中,将DTO对象转为Dish对象

复制代码
Dish dish = new Dish();
BeanUtils.copyProperties(dishDTO,dish);

xml文件中执行插入菜品操作时,得到id

复制代码
useGeneratedKeys="true" keyProperty="id"
复制代码
Long dishId = dish.getId();

后执行口味的插入,不为空,遍历口味进行菜品id的赋值

复制代码
List<DishFlavor> flavors = dishDTO.getFlavors();
if(flavors != null && flavors.size() > 0){
  flavors.forEach(dishFlavor -> {
      dishFlavor.setDishId(dishId);
  });
    dishFlavorMapper.insertBatch(flavors);

3.菜品分页查询

1.需求分析与设计

path:/admin/dish/page

method:GET

响应的数据

2.代码开发

4.删除菜品

1.需求分析与设计

path:/admin/dish

method:DELETE

2.代码开发

5.修改菜品

1.需求分析与设计

先根据Id查询菜品用于页面回显

path:/admin/dish/{id}

method:GET

再修改

path:/admin/dish

method:PUT

响应的数据

2.代码开发

相关推荐
学计算机的计算基3 分钟前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana27 分钟前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
万亿少女的梦16826 分钟前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
咩咩啃树皮9 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚9 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白11 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司11 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地12 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415913 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风15 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope