您的位置:首页 > 娱乐 > 明星 > 网页设计与制作教程第六版_京山网站开发_百度文库官网登录入口_长沙seo网络推广

网页设计与制作教程第六版_京山网站开发_百度文库官网登录入口_长沙seo网络推广

2024/10/5 22:21:47 来源:https://blog.csdn.net/qq_73340809/article/details/142217903  浏览:    关键词:网页设计与制作教程第六版_京山网站开发_百度文库官网登录入口_长沙seo网络推广
网页设计与制作教程第六版_京山网站开发_百度文库官网登录入口_长沙seo网络推广

文章目录

  • 二.新增菜品
    • 1.图片上传
    • 2.具体新增菜品

二.新增菜品

1.图片上传

这里采用了阿里云oss对象存储服务

  1. application.yml
  alioss:endpoint: ${sky.alioss.endpoint}access-key-id: ${sky.alioss.access-key-id}access-key-secret: ${sky.alioss.access-key-secret}bucket-name: ${sky.alioss.bucket-name}
  1. OssConfiguration 用来初始化,具体的配置文件在common中properties中
package com.sky.config;import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 阿里云OSS配置*/
@Configuration
@Slf4j
public class OssConfiguration {@Bean@ConditionalOnMissingBean//当容器里没有指定的Bean的情况下创建该对象public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {log.info("初始化阿里云OSS配置");return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());}
}
  1. CommonController.java
package com.sky.controller.admin;import com.sky.constant.MessageConstant;
import com.sky.result.Result;
import com.sky.utils.AliOssUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.UUID;@Api(tags = "通用接口")
@RestController
@RequestMapping("/admin/common")
@Slf4j
public class CommonController {@Autowiredprivate AliOssUtil aliOssUtil;/*** 文件上传** @param file* @return*/@PostMapping("/upload")@ApiOperation("文件上传")public Result<String> upload(MultipartFile file) {log.info("文件上传:{}", file);try {String originalFilename = file.getOriginalFilename();//截取文件后缀String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));String objectName = UUID.randomUUID().toString() + suffix;String url = aliOssUtil.upload(file.getBytes(), objectName);return Result.success(url);} catch (IOException e) {log.error("文件上传失败: {}", e.getMessage(), e);}return Result.error(MessageConstant.UPLOAD_FAILED);}
}

2.具体新增菜品

  1. DishController
package com.sky.controller.admin;import com.sky.dto.DishDTO;
import com.sky.result.Result;
import com.sky.service.DishService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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;/*** 菜品管理*/
@RestController
@RequestMapping("/admin/dish")
@Slf4j
@Api(tags = "菜品管理")
public class DishController {@Autowiredprivate DishService dishService;/*** 新增菜品*/@PostMapping@ApiOperation("新增菜品")public Result save(@RequestBody DishDTO dishDTO) {log.info("新增菜品:{}", dishDTO);dishService.saveWithFlavor(dishDTO);return Result.success();}
}
  1. DishService
public interface DishService {/*** 新增菜品和口味*/void saveWithFlavor(DishDTO dishDTO);
}
  1. DishServiceImpl
package com.sky.service.impl;import com.baomidou.mybatisplus.core.batch.MybatisBatch;
import com.sky.dto.DishDTO;
import com.sky.entity.Dish;
import com.sky.entity.DishFlavor;
import com.sky.mapper.DishFlavorMapper;
import com.sky.mapper.DishMapper;
import com.sky.service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.Arrays;
import java.util.List;@Service
@Slf4j
public class DishServiceImpl implements DishService {@Autowiredprivate DishMapper dishMapper;@Autowiredprivate SqlSessionFactory sqlSessionFactory;/*** 新增菜品和口味*/@Override@Transactionalpublic void saveWithFlavor(DishDTO dishDTO) {//向菜品表插入一条数据Dish dish = new Dish();BeanUtils.copyProperties(dishDTO, dish);dishMapper.insert(dish);dishMapper.selectById(dish.getId()); // 获取插入后的主键值//获取菜品idLong dishId = dish.getId();//向口味表插入多条数据List<DishFlavor> flavors = dishDTO.getFlavors();if (flavors != null && !flavors.isEmpty()) {// 设置 dishIdflavors.forEach(flavor -> flavor.setDishId(dishId));// 批量插入MybatisBatch<DishFlavor> mybatisBatch = new MybatisBatch<>(sqlSessionFactory, flavors);MybatisBatch.Method<DishFlavor> method = new MybatisBatch.Method<>(DishFlavorMapper.class);mybatisBatch.execute(method.insert());}}
}
  1. DishMapper
@Mapper
public interface DishMapper extends BaseMapper<Dish> {
}
  1. DishFlavorMapper
@Mapper
public interface DishFlavorMapper extends BaseMapper<DishFlavor> {}
  1. 注意需要在实体类中添加主键自增策略,也可以配置主键全局自增,如果还是默认的雪花算法,需要把数据库重建
# mybatis-plus配置
mybatis-plus:configuration:# 驼峰命名map-underscore-to-camel-case: true# 日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: auto

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com