diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/controller/DishController.java b/renren-admin/src/main/java/io/renren/modules/takeout/controller/DishController.java index 2d5eb15..0fc8b9e 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/controller/DishController.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/controller/DishController.java @@ -1,5 +1,6 @@ package io.renren.modules.takeout.controller; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import io.renren.common.annotation.LogOperation; import io.renren.common.constant.Constant; import io.renren.common.page.PageData; @@ -11,9 +12,13 @@ import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.UpdateGroup; import io.renren.modules.front.bean.Category; +import io.renren.modules.front.bean.DishFlavor; import io.renren.modules.front.service.CategoryService; import io.renren.modules.takeout.dto.DishDTO; +import io.renren.modules.takeout.dto.DishFlavorDTO; +import io.renren.modules.takeout.entity.DishEntity; import io.renren.modules.takeout.excel.DishExcel; +import io.renren.modules.takeout.service.DishFlavorService; import io.renren.modules.takeout.service.DishService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -26,8 +31,8 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** @@ -42,6 +47,10 @@ import java.util.Map; public class DishController { @Autowired private DishService dishService; + @Autowired + private DishFlavorService dishFlavorService; + @Autowired + private io.renren.modules.front.service.DishFlavorService dishFlavorServiceFront; @Autowired private CategoryService categoryService; @@ -49,6 +58,36 @@ public class DishController { @Autowired private RedisTemplate redisTemplate; + @PutMapping("updateStatus") + public Result updateStatus(@RequestParam Map params){ + String type = params.get("0"); + if (type == null){ + //此时只有单个菜品的停售/起售,直接取反 + Long dishId = Long.valueOf(params.get("1")); + Integer oldStatus = dishService.get(dishId).getStatus(); + + DishEntity dish = new DishEntity(); + dish.setId(dishId); + dish.setStatus(oldStatus == 1 ? 0 : 1); + dishService.updateById(dish); + } else { + Integer status = Integer.parseInt(type); + params.remove("0"); + + List ids = params.values().stream().map(id -> { + DishEntity dish = new DishEntity(); + dish.setId(Long.valueOf(id)); + dish.setStatus(status); + return dish; + }).collect(Collectors.toList()); + dishService.updateBatchById(ids); + } + //清除所有的菜品缓存数据 + redisTemplate.delete("dish_*"); + + return new Result(); + } + @GetMapping("list") public Result> list(@RequestParam Map params){ List list = dishService.list(params); @@ -82,6 +121,12 @@ public class DishController { public Result get(@PathVariable("id") Long id){ DishDTO data = dishService.get(id); + //封装口味信息 + Map param = new HashMap<>(); + param.put("dish_id", data.getId()); + List flavorDTOList = dishFlavorService.list(param); + data.setFlavors(flavorDTOList); + return new Result().ok(data); } @@ -94,6 +139,14 @@ public class DishController { ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); dishService.save(dto); + //保存口味信息 + List flavors = dto.getFlavors(); + for (DishFlavorDTO flavor : flavors) { + flavor.setId(null); + flavor.setDishId(dto.getId()); + dishFlavorService.save(flavor); + } + //清除当前分类下的菜品信息 redisTemplate.delete("dish_" + dto.getCategoryId() + "_1"); @@ -109,6 +162,19 @@ public class DishController { ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); dishService.update(dto); + //清除原有口味信息 + LambdaUpdateWrapper luw = new LambdaUpdateWrapper<>(); + luw.eq(DishFlavor::getDishId, dto.getId()); + dishFlavorServiceFront.remove(luw); + + //保存新口味信息 + List flavors = dto.getFlavors(); + for (DishFlavorDTO flavor : flavors) { + flavor.setId(null); + flavor.setDishId(dto.getId()); + dishFlavorService.save(flavor); + } + //清除当前分类下的菜品信息 redisTemplate.delete("dish_" + dto.getCategoryId() + "_1"); @@ -124,6 +190,13 @@ public class DishController { AssertUtils.isArrayEmpty(ids, "id"); dishService.delete(ids); + //清除每个菜品的所有口味信息 + for (Long id : ids) { + LambdaUpdateWrapper luw = new LambdaUpdateWrapper<>(); + luw.eq(DishFlavor::getDishId, id); + dishFlavorServiceFront.remove(luw); + } + //清除所有的菜品缓存数据 redisTemplate.delete("dish_*"); diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishDTO.java b/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishDTO.java index a6d00fe..d79bcee 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishDTO.java @@ -1,12 +1,18 @@ package io.renren.modules.takeout.dto; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.renren.modules.front.bean.DishFlavor; +import io.renren.modules.takeout.entity.DishFlavorEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * 菜品管理 @@ -50,19 +56,25 @@ public class DishDTO implements Serializable { private Integer sort; @ApiModelProperty(value = "创建人") + @TableField(fill = FieldFill.INSERT) private Long creator; @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) private Date createDate; @ApiModelProperty(value = "修改人") + @TableField(fill = FieldFill.INSERT_UPDATE) private Long updater; @ApiModelProperty(value = "更新时间") + @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateDate; @ApiModelProperty(value = "是否删除") private Integer isDeleted; + //口味的集合 + private List flavors = new ArrayList<>(); } \ No newline at end of file diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishFlavorDTO.java b/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishFlavorDTO.java index e8e221f..e65390a 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishFlavorDTO.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/dto/DishFlavorDTO.java @@ -1,5 +1,7 @@ package io.renren.modules.takeout.dto; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -32,15 +34,19 @@ public class DishFlavorDTO implements Serializable { private String value; @ApiModelProperty(value = "创建人") + @TableField(fill = FieldFill.INSERT) private Long creator; @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) private Date createDate; @ApiModelProperty(value = "修改人") + @TableField(fill = FieldFill.INSERT_UPDATE) private Long updater; @ApiModelProperty(value = "更新时间") + @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateDate; @ApiModelProperty(value = "是否删除") diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishEntity.java b/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishEntity.java index 1163bf9..d2c2051 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishEntity.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishEntity.java @@ -1,5 +1,7 @@ package io.renren.modules.takeout.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -55,19 +57,23 @@ public class DishEntity { /** * 创建人 */ - private Long creator; + @TableField(fill = FieldFill.INSERT) + private Long creator; /** * 创建时间 */ - private Date createDate; + @TableField(fill = FieldFill.INSERT) + private Date createDate; /** * 修改人 */ - private Long updater; + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long updater; /** * 更新时间 */ - private Date updateDate; + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateDate; /** * 是否删除 */ diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishFlavorEntity.java b/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishFlavorEntity.java index 7289a76..c8b593e 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishFlavorEntity.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/entity/DishFlavorEntity.java @@ -1,5 +1,7 @@ package io.renren.modules.takeout.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -34,19 +36,23 @@ public class DishFlavorEntity { /** * 创建人 */ - private Long creator; + @TableField(fill = FieldFill.INSERT) + private Long creator; /** * 创建时间 */ - private Date createDate; + @TableField(fill = FieldFill.INSERT) + private Date createDate; /** * 修改人 */ - private Long updater; + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long updater; /** * 更新时间 */ - private Date updateDate; + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateDate; /** * 是否删除 */ diff --git a/renren-admin/src/main/java/io/renren/modules/takeout/service/impl/DishFlavorServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/takeout/service/impl/DishFlavorServiceImpl.java index b9b3f8d..0ea2e20 100644 --- a/renren-admin/src/main/java/io/renren/modules/takeout/service/impl/DishFlavorServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/takeout/service/impl/DishFlavorServiceImpl.java @@ -23,9 +23,11 @@ public class DishFlavorServiceImpl extends CrudServiceImpl getWrapper(Map params){ String id = (String)params.get("id"); + Long dishId = (Long) params.get("dish_id"); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), "id", id); + wrapper.eq(dishId != null, "dish_id", dishId); return wrapper; }