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

相关推荐
未若君雅裁1 小时前
Spring Boot 自动配置原理与常用注解
java·spring boot·后端
Klong.k2 小时前
如何避免Bean的线程安全问题
java·开发语言
basketball6162 小时前
C++ 单例模式完全指南:从饿汉式到现代 C++ 的最佳实践
java·c++·单例模式
iiiiyu2 小时前
集合进阶(Map集合)
java·大数据·开发语言·数据结构·编程语言
小江的记录本2 小时前
【Java基础】核心关键字:final、static、volatile、synchronized、transient(附《思维导图》+《面试高频考点清单》)
java·前端·数据结构·后端·ai·面试·ai编程
tongluowan0072 小时前
Java 内存模型(JMM)- 内存屏障
java·内存模型·内存屏障
月落归舟2 小时前
并发编程之volatile深度解析(二)
java·开发语言·volatile
me8322 小时前
【AI】踩坑LangChain4j集成千问模型:版本适配问题完整解决历程
java·spring·阿里云·ai
来恩10033 小时前
Java Web三大作用域对象
java·开发语言·前端