diff --git a/sky-common/src/main/java/com/sky/utils/AliOssUtil.java b/sky-common/src/main/java/com/sky/utils/AliOssUtil.java index c53114d..ac5b027 100644 --- a/sky-common/src/main/java/com/sky/utils/AliOssUtil.java +++ b/sky-common/src/main/java/com/sky/utils/AliOssUtil.java @@ -4,65 +4,99 @@ import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; +import com.aliyun.oss.common.auth.CredentialsProviderFactory; +import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider; +import com.aliyun.oss.model.PutObjectRequest; +import com.aliyun.oss.model.PutObjectResult; +import com.sky.properties.AliOssProperties; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.UUID; @Data @AllArgsConstructor @Slf4j +@Component public class AliOssUtil { + @Autowired + private AliOssProperties aliOssProperties; - private String endpoint; - private String accessKeyId; - private String accessKeySecret; - private String bucketName; +// private String endpoint; +// private String accessKeyId; +// private String accessKeySecret; +// private String bucketName; +// +// /** +// * 文件上传 +// * +// * @param bytes +// * @param objectName +// * @return +// */ +// public String upload(byte[] bytes, String objectName) { +// +// // 创建OSSClient实例。 +// OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); +// +// try { +// // 创建PutObject请求。 +// ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes)); +// } catch (OSSException oe) { +// System.out.println("Caught an OSSException, which means your request made it to OSS, " +// + "but was rejected with an error response for some reason."); +// System.out.println("Error Message:" + oe.getErrorMessage()); +// System.out.println("Error Code:" + oe.getErrorCode()); +// System.out.println("Request ID:" + oe.getRequestId()); +// System.out.println("Host ID:" + oe.getHostId()); +// } catch (ClientException ce) { +// System.out.println("Caught an ClientException, which means the client encountered " +// + "a serious internal problem while trying to communicate with OSS, " +// + "such as not being able to access the network."); +// System.out.println("Error Message:" + ce.getMessage()); +// } finally { +// if (ossClient != null) { +// ossClient.shutdown(); +// } +// } +// +// //文件访问路径规则 https://BucketName.Endpoint/ObjectName +// StringBuilder stringBuilder = new StringBuilder("https://"); +// stringBuilder +// .append(bucketName) +// .append(".") +// .append(endpoint) +// .append("/") +// .append(objectName); +// +// log.info("文件上传到:{}", stringBuilder.toString()); +// +// return stringBuilder.toString(); +// } + public String upload(MultipartFile file) throws IOException, com.aliyuncs.exceptions.ClientException { + InputStream inputStream = file.getInputStream(); + // 避免文件覆盖 + String originalFilename = file.getOriginalFilename(); + String extname = originalFilename.substring(originalFilename.lastIndexOf("."));//文件扩展名 + String fileName = UUID.randomUUID().toString() + extname; - /** - * 文件上传 - * - * @param bytes - * @param objectName - * @return - */ - public String upload(byte[] bytes, String objectName) { + //上传文件到 OSS + EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); //从环境变量中获取 + OSS ossClient = new OSSClientBuilder().build(aliOssProperties.getEndpoint(), credentialsProvider); + PutObjectRequest putObjectRequest = new PutObjectRequest(aliOssProperties.getBucketName(), fileName, inputStream); + PutObjectResult result = ossClient.putObject(putObjectRequest); - // 创建OSSClient实例。 - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - - try { - // 创建PutObject请求。 - ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes)); - } catch (OSSException oe) { - System.out.println("Caught an OSSException, which means your request made it to OSS, " - + "but was rejected with an error response for some reason."); - System.out.println("Error Message:" + oe.getErrorMessage()); - System.out.println("Error Code:" + oe.getErrorCode()); - System.out.println("Request ID:" + oe.getRequestId()); - System.out.println("Host ID:" + oe.getHostId()); - } catch (ClientException ce) { - System.out.println("Caught an ClientException, which means the client encountered " - + "a serious internal problem while trying to communicate with OSS, " - + "such as not being able to access the network."); - System.out.println("Error Message:" + ce.getMessage()); - } finally { - if (ossClient != null) { - ossClient.shutdown(); - } - } - - //文件访问路径规则 https://BucketName.Endpoint/ObjectName - StringBuilder stringBuilder = new StringBuilder("https://"); - stringBuilder - .append(bucketName) - .append(".") - .append(endpoint) - .append("/") - .append(objectName); - - log.info("文件上传到:{}", stringBuilder.toString()); - - return stringBuilder.toString(); + //文件访问路径 + String url = aliOssProperties.getEndpoint().split("//")[0] + "//" + aliOssProperties.getBucketName() + "." + aliOssProperties.getEndpoint().split("//")[1] + "/" + fileName; + // 关闭ossClient + ossClient.shutdown(); + return url;// 把上传到oss的路径返回 } } diff --git a/sky-server/src/main/java/com/sky/annotation/AutoFill.java b/sky-server/src/main/java/com/sky/annotation/AutoFill.java new file mode 100644 index 0000000..7199b5a --- /dev/null +++ b/sky-server/src/main/java/com/sky/annotation/AutoFill.java @@ -0,0 +1,18 @@ +package com.sky.annotation; + +import com.sky.enumeration.OperationType; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 自定义注解,用于标识某个方法需要进行功能字段自动填充处理。 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AutoFill { + //update insert + OperationType value(); +} diff --git a/sky-server/src/main/java/com/sky/aspect/AutoFillAspect.java b/sky-server/src/main/java/com/sky/aspect/AutoFillAspect.java new file mode 100644 index 0000000..7e581df --- /dev/null +++ b/sky-server/src/main/java/com/sky/aspect/AutoFillAspect.java @@ -0,0 +1,67 @@ +package com.sky.aspect; + +import com.sky.annotation.AutoFill; +import com.sky.constant.AutoFillConstant; +import com.sky.context.BaseContext; +import com.sky.enumeration.OperationType; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.time.LocalDateTime; + +/** + * 自定义切面,实现公共字段自动填充 + */ +@Aspect +@Component +@Slf4j +public class AutoFillAspect { + @Pointcut("execution(* com.sky.mapper.*.*(..)) && @annotation(com.sky.annotation.AutoFill)") + public void autoFillPointCut(){} + /** + * 前置通知 + */ + @Before("autoFillPointCut()") + public void autoFill(JoinPoint joinPoint) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + log.info("开始进行公共字段自动填充..."); + //获取数据库操作类型:update/insert + MethodSignature signature=(MethodSignature)joinPoint.getSignature(); + AutoFill autoFill=signature.getMethod().getAnnotation(AutoFill.class); + OperationType operationType=autoFill.value(); // 获得数据库操作类型 + //获取实体对象 + Object[] args=joinPoint.getArgs(); + if(args==null || args.length==0) + return; + Object entity=args[0]; //规定第一个参数一定是实体对象 employee category... + //准备赋值的数据 + LocalDateTime now=LocalDateTime.now(); + Long currentId= BaseContext.getCurrentId(); + //根据不同的操作类型,为对应的属性赋值 + if(operationType==OperationType.INSERT){ + Method setCreateTime= entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_TIME,LocalDateTime.class); + Method setCreateUser=entity.getClass().getDeclaredMethod(AutoFillConstant.SET_CREATE_USER,Long.class); + Method setUpdateTime=entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME,LocalDateTime.class); + Method setUpdateUser=entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER,Long.class); + setCreateTime.invoke(entity,now); + setCreateUser.invoke(entity,currentId); + setUpdateTime.invoke(entity,now); + setUpdateUser.invoke(entity,currentId); + + }else{ + Method setUpdateTime = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_TIME, LocalDateTime.class); + Method setUpdateUser = entity.getClass().getDeclaredMethod(AutoFillConstant.SET_UPDATE_USER, Long.class); + //通过反射为对象属性赋值 + setUpdateTime.invoke(entity,now); + setUpdateUser.invoke(entity,currentId); + } + log.info(signature.getName()); + } +} diff --git a/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java index a4a9d5f..90660c8 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java @@ -23,13 +23,13 @@ public class CategoryController { * 新增菜品分类 */ @PostMapping - @ApiOperation("新增菜品分类") + @ApiOperation("新增分类") public Result addCategory(CategoryDTO categoryDTO){ categoryService.addCategory(categoryDTO); return Result.success(); } @GetMapping("/page") - @ApiOperation("菜品分类分页查询") + @ApiOperation("分类分页查询") public Result list(CategoryPageQueryDTO categoryPageQueryDTO){ PageResult pageResult=categoryService.list(categoryPageQueryDTO); return Result.success(pageResult); diff --git a/sky-server/src/main/java/com/sky/controller/admin/CommonController.java b/sky-server/src/main/java/com/sky/controller/admin/CommonController.java new file mode 100644 index 0000000..343728e --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/admin/CommonController.java @@ -0,0 +1,32 @@ +package com.sky.controller.admin; + +import com.aliyuncs.exceptions.ClientException; +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; + +@RestController +@RequestMapping("/admin/common") +@Api(tags = "通用接口") +@Slf4j + +public class CommonController { + @Autowired + private AliOssUtil aliOssUtil; + @PostMapping("/upload") + @ApiOperation("文件上传") + public Result upload(MultipartFile file) throws IOException, ClientException { + log.info("文件上传:{}",file); + String url=aliOssUtil.upload(file); + return Result.success(url); + } +} diff --git a/sky-server/src/main/java/com/sky/controller/admin/DishController.java b/sky-server/src/main/java/com/sky/controller/admin/DishController.java new file mode 100644 index 0000000..dcaef20 --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/admin/DishController.java @@ -0,0 +1,54 @@ +package com.sky.controller.admin; + +import com.sky.dto.DishDTO; +import com.sky.dto.DishPageQueryDTO; +import com.sky.entity.Dish; +import com.sky.result.PageResult; +import com.sky.result.Result; +import com.sky.service.DishService; +import com.sky.vo.DishVO; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/admin/dish") +@Slf4j +public class DishController { + @Autowired + private DishService dishService; + @PostMapping + @ApiOperation("新增菜品") + public Result addDish(@RequestBody DishDTO dishDTO){ + log.info("新增菜品"); + System.out.println("dishDTO:"+dishDTO); + dishService.addDish(dishDTO); + return Result.success(); + } + @GetMapping("/page") + @ApiOperation("菜品分类查询") + public Result page(DishPageQueryDTO dishPageQueryDTO){ + PageResult pageResult=dishService.pageQuery(dishPageQueryDTO); + return Result.success(pageResult); + } + @DeleteMapping + @ApiOperation("删除菜品") + public Result deleteDish(Long[] ids){ + log.info("批量删除菜品"); + dishService.deleteBatch(ids); + return Result.success(); + } + @GetMapping("/{id}") + @ApiOperation("根据id查询菜品") + public Result queryByIdWithFlavor(@PathVariable Long id){ + DishVO dishVO=dishService.queryByIdWithFlavor(id); + return Result.success(dishVO); + } + @PutMapping + @ApiOperation("更新菜品") + public Result update(@RequestBody DishDTO dishDTO){ + dishService.update(dishDTO); + return Result.success(); + } +} diff --git a/sky-server/src/main/java/com/sky/mapper/CategoryMapper.java b/sky-server/src/main/java/com/sky/mapper/CategoryMapper.java index 74680f9..ae4d45c 100644 --- a/sky-server/src/main/java/com/sky/mapper/CategoryMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/CategoryMapper.java @@ -1,8 +1,10 @@ package com.sky.mapper; +import com.sky.annotation.AutoFill; import com.sky.dto.CategoryDTO; import com.sky.dto.CategoryPageQueryDTO; import com.sky.entity.Category; +import com.sky.enumeration.OperationType; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; @@ -15,11 +17,12 @@ public interface CategoryMapper { @Insert("insert into category (type,name,sort,status,create_time,update_time,create_user,update_user)" + "values" + "(#{type},#{name},#{sort},#{status},#{createTime},#{updateTime},#{createUser},#{updateUser})") + @AutoFill(OperationType.INSERT) void addCategory(Category category); List list(CategoryPageQueryDTO categoryPageQueryDTO); @Delete("delete from category where id=#{id}") void deleteById(Integer id); - + @AutoFill(OperationType.UPDATE) void update(Category category); @Select("select * from category where type=#{type}") List listByType(Integer type); diff --git a/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java b/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java new file mode 100644 index 0000000..e7d39fe --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java @@ -0,0 +1,19 @@ +package com.sky.mapper; + +import com.sky.entity.DishFlavor; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface DishFlavorMapper { + //insert into dish_flavor(xx,xx,xx) values (xx,xx,xx),(xx,xx,xx) 批量添加 + void insertBatch(List flavorList); + @Delete("delete from dish_flavor where dish_id=#{id}") + void deleteByDishId(Long id); + @Select("select * from dish_flavor where dish_id=#{id}") + List queryByDishId(Long id); + +} diff --git a/sky-server/src/main/java/com/sky/mapper/DishMapper.java b/sky-server/src/main/java/com/sky/mapper/DishMapper.java new file mode 100644 index 0000000..22e42ff --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -0,0 +1,26 @@ +package com.sky.mapper; + +import com.sky.annotation.AutoFill; +import com.sky.dto.DishPageQueryDTO; +import com.sky.entity.Dish; +import com.sky.enumeration.OperationType; +import com.sky.vo.DishVO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface DishMapper { + @AutoFill(OperationType.INSERT) + void insert(Dish dish); + + List list(DishPageQueryDTO dishPageQueryDTO); + @Select("select * from dish where id=#{id}") + Dish queryById(Long id); + @Delete("delete from dish where id=#{id}") + void deleteById(Long id); + @AutoFill(OperationType.UPDATE) + void update(Dish dish); +} diff --git a/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java b/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java index c99a095..d4cdf14 100644 --- a/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java @@ -1,8 +1,10 @@ package com.sky.mapper; +import com.sky.annotation.AutoFill; import com.sky.dto.EmployeePageQueryDTO; import com.sky.dto.StartOrStopDTO; import com.sky.entity.Employee; +import com.sky.enumeration.OperationType; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -28,6 +30,7 @@ public interface EmployeeMapper { @Insert("insert into employee (name, username, password, phone, sex, id_number, create_time, update_time, create_user, update_user,status) " + "values " + "(#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status})") + @AutoFill(OperationType.INSERT) void save(Employee employee); /** @@ -37,6 +40,6 @@ public interface EmployeeMapper { List list(EmployeePageQueryDTO employeePageQueryDTO); @Select("select * from employee where id=#{id};") Employee queryById(Integer id); - + @AutoFill(OperationType.UPDATE) void update(Employee employee); } diff --git a/sky-server/src/main/java/com/sky/mapper/Setmeal_dishMapper.java b/sky-server/src/main/java/com/sky/mapper/Setmeal_dishMapper.java new file mode 100644 index 0000000..76884a1 --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/Setmeal_dishMapper.java @@ -0,0 +1,11 @@ +package com.sky.mapper; + +import com.sky.entity.SetmealDish; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +@Mapper +public interface Setmeal_dishMapper { + @Select("select * from setmeal_dish where dish_id=#{id}") + SetmealDish queryByDishId(Long id); +} diff --git a/sky-server/src/main/java/com/sky/service/DishService.java b/sky-server/src/main/java/com/sky/service/DishService.java new file mode 100644 index 0000000..bf3b8a1 --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -0,0 +1,18 @@ +package com.sky.service; + +import com.sky.dto.DishDTO; +import com.sky.dto.DishPageQueryDTO; +import com.sky.result.PageResult; +import com.sky.vo.DishVO; + +public interface DishService { + void addDish(DishDTO dishDTO); + + PageResult pageQuery(DishPageQueryDTO dishPageQueryDTO); + + void deleteBatch(Long[] ids); + + DishVO queryByIdWithFlavor(Long id); + + void update(DishDTO dishDTO); +} diff --git a/sky-server/src/main/java/com/sky/service/impl/CategoryServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/CategoryServiceImpl.java index 8c594a3..47c009f 100644 --- a/sky-server/src/main/java/com/sky/service/impl/CategoryServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/CategoryServiceImpl.java @@ -26,10 +26,10 @@ public class CategoryServiceImpl implements CategoryService { public void addCategory(CategoryDTO categoryDTO) { Category category=new Category(); BeanUtils.copyProperties(categoryDTO,category); - category.setCreateTime(LocalDateTime.now()); - category.setUpdateTime(LocalDateTime.now()); - category.setCreateUser(BaseContext.getCurrentId()); - category.setUpdateUser(BaseContext.getCurrentId()); +// category.setCreateTime(LocalDateTime.now()); +// category.setUpdateTime(LocalDateTime.now()); +// category.setCreateUser(BaseContext.getCurrentId()); +// category.setUpdateUser(BaseContext.getCurrentId()); category.setStatus(StatusConstant.DISABLE); categoryMapper.addCategory(category); } @@ -52,8 +52,8 @@ public class CategoryServiceImpl implements CategoryService { public void update(CategoryDTO categoryDTO) { Category category=new Category(); BeanUtils.copyProperties(categoryDTO,category); - category.setUpdateTime(LocalDateTime.now()); - category.setUpdateUser(BaseContext.getCurrentId()); +// category.setUpdateTime(LocalDateTime.now()); +// category.setUpdateUser(BaseContext.getCurrentId()); categoryMapper.update(category); } @@ -62,8 +62,8 @@ public class CategoryServiceImpl implements CategoryService { Category category=new Category(); category.setStatus(status); category.setId(id); - category.setUpdateTime(LocalDateTime.now()); - category.setUpdateUser(BaseContext.getCurrentId()); +// category.setUpdateTime(LocalDateTime.now()); +// category.setUpdateUser(BaseContext.getCurrentId()); categoryMapper.update(category); } diff --git a/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java new file mode 100644 index 0000000..3117279 --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java @@ -0,0 +1,100 @@ +package com.sky.service.impl; + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.sky.constant.MessageConstant; +import com.sky.constant.StatusConstant; +import com.sky.dto.DishDTO; +import com.sky.dto.DishPageQueryDTO; +import com.sky.entity.Dish; +import com.sky.entity.DishFlavor; +import com.sky.entity.SetmealDish; +import com.sky.exception.DeletionNotAllowedException; +import com.sky.mapper.DishFlavorMapper; +import com.sky.mapper.DishMapper; +import com.sky.mapper.Setmeal_dishMapper; +import com.sky.result.PageResult; +import com.sky.service.DishService; +import com.sky.vo.DishVO; +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.List; + +@Service +public class DishServiceImpl implements DishService { + @Autowired + private DishMapper dishMapper; + @Autowired + private DishFlavorMapper dishFlavorMapper; + @Autowired + private Setmeal_dishMapper setmeal_dishMapper; + @Override + public void addDish(DishDTO dishDTO) { + Dish dish=new Dish(); + BeanUtils.copyProperties(dishDTO,dish); + dishMapper.insert(dish); + Long dishId=dish.getId(); + List flavorList=dishDTO.getFlavors(); + for(DishFlavor flavor:flavorList){ + flavor.setDishId(dishId); + } + dishFlavorMapper.insertBatch(flavorList); + } + + @Override + public PageResult pageQuery(DishPageQueryDTO dishPageQueryDTO) { + PageHelper.startPage(dishPageQueryDTO.getPage(),dishPageQueryDTO.getPageSize()); + List dishVOList=dishMapper.list(dishPageQueryDTO); + Page p= (Page) dishVOList; + PageResult pageResult=new PageResult(p.getTotal(),p.getResult()); + return pageResult; + } + + @Override + @Transactional + public void deleteBatch(Long[] ids) { + for(Long id:ids){ + Dish dish=dishMapper.queryById(id); + if(dish.getStatus()== StatusConstant.ENABLE) + throw new DeletionNotAllowedException(MessageConstant.DISH_ON_SALE); + else{ + SetmealDish setmealDish=setmeal_dishMapper.queryByDishId(id); + if(setmealDish!=null) + throw new DeletionNotAllowedException(MessageConstant.DISH_BE_RELATED_BY_SETMEAL); + else { + dishMapper.deleteById(id); + dishFlavorMapper.deleteByDishId(id); + } + } + } + } + + @Override + public DishVO queryByIdWithFlavor(Long id) { + Dish dish=dishMapper.queryById(id); + DishVO dishVO=new DishVO(); + BeanUtils.copyProperties(dish,dishVO); + List dishFlavors=dishFlavorMapper.queryByDishId(id); + dishVO.setFlavors(dishFlavors); + return dishVO; + } + + @Override + public void update(DishDTO dishDTO) { + Dish dish=new Dish(); + BeanUtils.copyProperties(dishDTO,dish); + dishMapper.update(dish); + dishFlavorMapper.deleteByDishId(dishDTO.getId()); //先删再添加口味,不要在原来的上面修改!原来可能2种口味,现在3种,也无法修改! + List flavors = dishDTO.getFlavors(); + if (flavors != null && flavors.size() > 0) { + flavors.forEach(dishFlavor -> { + dishFlavor.setDishId(dishDTO.getId()); + }); + //向口味表插入n条数据 + dishFlavorMapper.insertBatch(flavors); + } + } +} diff --git a/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java index a36b7e8..20cf820 100644 --- a/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java @@ -72,10 +72,10 @@ public class EmployeeServiceImpl implements EmployeeService { Employee employee = new Employee(); //对象属性拷贝 BeanUtils.copyProperties(employeeDTO, employee); - employee.setCreateTime(LocalDateTime.now()); - employee.setUpdateTime(LocalDateTime.now()); - employee.setUpdateUser(BaseContext.getCurrentId()); - employee.setCreateUser(BaseContext.getCurrentId()); +// employee.setCreateTime(LocalDateTime.now()); +// employee.setUpdateTime(LocalDateTime.now()); +// employee.setUpdateUser(BaseContext.getCurrentId()); +// employee.setCreateUser(BaseContext.getCurrentId()); String encodedPassword=bCryptPasswordEncoder.encode(PasswordConstant.DEFAULT_PASSWORD); employee.setPassword(encodedPassword); employee.setStatus(StatusConstant.ENABLE); @@ -108,8 +108,8 @@ public class EmployeeServiceImpl implements EmployeeService { Employee employee = new Employee(); BeanUtils.copyProperties(employeeDTO, employee); - employee.setUpdateTime(LocalDateTime.now()); - employee.setUpdateUser(BaseContext.getCurrentId()); +// employee.setUpdateTime(LocalDateTime.now()); +// employee.setUpdateUser(BaseContext.getCurrentId()); employeeMapper.update(employee); } diff --git a/sky-server/src/main/resources/application-dev.yml b/sky-server/src/main/resources/application-dev.yml index dd9dca6..41fb2b2 100644 --- a/sky-server/src/main/resources/application-dev.yml +++ b/sky-server/src/main/resources/application-dev.yml @@ -6,3 +6,9 @@ sky: database: sky_take_out username: root password: 123456 + + alioss: + access-key-id: LTAI5tR43XPATPy2NwTSiTqY + access-key-secret: AJPJSYc5sdwiZoj8RWzsXtjKR3W8f0 + endpoint: https://oss-cn-hangzhou.aliyuncs.com + bucket-name: zyjavaweb diff --git a/sky-server/src/main/resources/application.yml b/sky-server/src/main/resources/application.yml index 24df577..30cf104 100644 --- a/sky-server/src/main/resources/application.yml +++ b/sky-server/src/main/resources/application.yml @@ -37,3 +37,12 @@ sky: admin-ttl: 7200000 # 设置前端传递过来的令牌名称 admin-token-name: token + + alioss: + endpoint: {sky.alioss.endpoint} + bucket-name: {sky.alioss.bucket-name} + access-key-id: {sky.alioss.access-key-id} + access-key-secret: {sky.alioss.access-key-secret} + + + diff --git a/sky-server/src/main/resources/mapper/DishFlavorMapper.xml b/sky-server/src/main/resources/mapper/DishFlavorMapper.xml new file mode 100644 index 0000000..0b690aa --- /dev/null +++ b/sky-server/src/main/resources/mapper/DishFlavorMapper.xml @@ -0,0 +1,11 @@ + + + + + insert into dish_flavor (dish_id, name, value) VALUES + + (#{df.dishId},#{df.name},#{df.value}) + + + \ No newline at end of file diff --git a/sky-server/src/main/resources/mapper/DishMapper.xml b/sky-server/src/main/resources/mapper/DishMapper.xml new file mode 100644 index 0000000..2263909 --- /dev/null +++ b/sky-server/src/main/resources/mapper/DishMapper.xml @@ -0,0 +1,38 @@ + + + + + insert into dish (name, category_id, price, image, description, create_time, update_time, create_user,update_user, status) + values (#{name}, #{categoryId}, #{price}, #{image}, #{description}, #{createTime}, #{updateTime}, #{createUser}, #{updateUser}, #{status}) + + + + update dish + + name=#{name}, + category_id=#{categoryId}, + price=#{price}, + image=#{image}, + description=#{description}, + status = #{status}, + update_time = #{updateTime}, + update_user = #{updateUser}, + + where id=#{id} + + \ No newline at end of file