From 2ffc04318fcb2b8b4dd17f4decdb58be7a111c15 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Tue, 9 Jan 2024 16:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E5=85=A5=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/ShoppingCartController.java | 37 ++++++++++ .../com/sky/mapper/ShoppingCartMapper.java | 31 ++++++++ .../com/sky/service/ShoppingCartService.java | 12 ++++ .../impl/ShoppingCartServiceImplImpl.java | 72 +++++++++++++++++++ .../main/resources/mapper/ShoppingCart.xml | 38 ++++++++++ 5 files changed, 190 insertions(+) create mode 100644 sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java create mode 100644 sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java create mode 100644 sky-server/src/main/java/com/sky/service/ShoppingCartService.java create mode 100644 sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImplImpl.java create mode 100644 sky-server/src/main/resources/mapper/ShoppingCart.xml diff --git a/sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java b/sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java new file mode 100644 index 0000000..b3b2265 --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java @@ -0,0 +1,37 @@ +package com.sky.controller.user; + +import com.sky.dto.ShoppingCartDTO; +import com.sky.result.Result; +import com.sky.service.ShoppingCartService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/user/shopping") +@Slf4j +@Api(tags = "C端购物车相关接口") +public class ShoppingCartController { + @Resource + private ShoppingCartService shoppingCartService; + + + /** + * 添加购物车 + * + * @param shoppingCartDTO ShoppingCartDTO + * @return Result + */ + @ApiOperation("添加购物车") + @PostMapping("add") + public Result add(ShoppingCartDTO shoppingCartDTO) { + log.info("添加购物车:{}", shoppingCartDTO); + shoppingCartService.addShoppingCart(shoppingCartDTO); + return Result.success(); + } +} diff --git a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java new file mode 100644 index 0000000..26df724 --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java @@ -0,0 +1,31 @@ +package com.sky.mapper; + +import com.sky.entity.ShoppingCart; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ShoppingCartMapper { + /** + * 添加购物车 + * + * @param shoppingCart ShoppingCart + * @return List + */ + List list(ShoppingCart shoppingCart); + + /** + * 如果已经存在,只需要将数量+1即可-修改商品数量 + * + * @param shoppingCart ShoppingCart + */ + void updateNumberById(ShoppingCart shoppingCart); + + /** + * 插入购物车数据 + * + * @param shoppingCart ShoppingCart + */ + void insert(ShoppingCart shoppingCart); +} diff --git a/sky-server/src/main/java/com/sky/service/ShoppingCartService.java b/sky-server/src/main/java/com/sky/service/ShoppingCartService.java new file mode 100644 index 0000000..197d913 --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/ShoppingCartService.java @@ -0,0 +1,12 @@ +package com.sky.service; + +import com.sky.dto.ShoppingCartDTO; + +public interface ShoppingCartService { + /** + * 添加购物车 + * + * @param shoppingCartDTO 购物车参数 + */ + void addShoppingCart(ShoppingCartDTO shoppingCartDTO); +} diff --git a/sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImplImpl.java b/sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImplImpl.java new file mode 100644 index 0000000..cfc5349 --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImplImpl.java @@ -0,0 +1,72 @@ +package com.sky.service.impl; + +import com.sky.context.BaseContext; +import com.sky.dto.ShoppingCartDTO; +import com.sky.entity.Dish; +import com.sky.entity.Setmeal; +import com.sky.entity.ShoppingCart; +import com.sky.mapper.DishMapper; +import com.sky.mapper.SetmealMapper; +import com.sky.mapper.ShoppingCartMapper; +import com.sky.service.ShoppingCartService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +@Service +@Slf4j +public class ShoppingCartServiceImplImpl implements ShoppingCartService { + @Resource + private ShoppingCartMapper shoppingCartMapper; + @Resource + private DishMapper dishMapper; + @Resource + private SetmealMapper setmealMapper; + + /** + * 添加购物车 + * + * @param shoppingCartDTO 购物车参数 + */ + @Override + public void addShoppingCart(ShoppingCartDTO shoppingCartDTO) { + ShoppingCart shoppingCart = new ShoppingCart(); + BeanUtils.copyProperties(shoppingCartDTO, shoppingCart); + // 获取当前id + Long userId = BaseContext.getCurrentId(); + shoppingCart.setUserId(userId); + // 判断当前插入的购物车商品是否存在 + List list = shoppingCartMapper.list(shoppingCart); + // 如果已经存在,只需要将数量+1即可 + if (list != null && !list.isEmpty()) { + ShoppingCart cart = list.get(0); + cart.setNumber(cart.getNumber() + 1); + shoppingCartMapper.updateNumberById(cart); + } else { + // 如果不存在。需要新建插入购物车数量 + Long dishId = shoppingCartDTO.getDishId(); + // 判断本次添加的是菜品还是套餐 + if (dishId != null) { + // 本次添加的到购物车是菜品 + Dish dish = dishMapper.getById(dishId); + shoppingCart.setName(dish.getName()); + shoppingCart.setImage(dish.getImage()); + shoppingCart.setAmount(dish.getPrice()); + } else { + // 本次添加的是套餐 + Long setmealId = shoppingCartDTO.getSetmealId(); + Setmeal setmeal = setmealMapper.getById(setmealId); + shoppingCart.setName(setmeal.getName()); + shoppingCart.setImage(setmeal.getImage()); + shoppingCart.setAmount(setmeal.getPrice()); + } + shoppingCart.setNumber(1); + shoppingCart.setCreateTime(LocalDateTime.now()); + shoppingCartMapper.insert(shoppingCart); + } + } +} diff --git a/sky-server/src/main/resources/mapper/ShoppingCart.xml b/sky-server/src/main/resources/mapper/ShoppingCart.xml new file mode 100644 index 0000000..6ccddab --- /dev/null +++ b/sky-server/src/main/resources/mapper/ShoppingCart.xml @@ -0,0 +1,38 @@ + + + + + + insert into shopping_cart (name, image, user_id, dish_id, setmeal_id, dish_flavor, number, amount, + create_time) + values (#{name}, #{image}, #{userId}, #{dishId}, #{setmealId}, #{dishFlavor}, #{number}, #{amount}, + #{createTime}); + + + + + update shopping_cart + set number = #{number} + where id = #{id}; + + + + +