苍穹外卖-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.代码开发

相关推荐
2501_933923252 分钟前
Spring Bean作用域揭秘:单例、原型、请求与会话的区别
java·后端·spring·java-ee
学编程就要猛19 分钟前
基于Spring AI 的智能聊天机器人
java·spring ai·chat robot
修炼室22 分钟前
Java开发工程师笔试经验贴【高频知识】
java
木井巳34 分钟前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
杨杨杨大侠41 分钟前
知识库已经有了,Java 程序员还要做什么?Spring AI RAG 实战
java·openai·ai编程
伊信1 小时前
Spring AI 基础学习与应用
java·后端
夜郎king1 小时前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
Anastasiozzzz1 小时前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
careathers1 小时前
【数据结构】队列
java·数据结构
步行cgn1 小时前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端