From c65e4860f84c5dfca94a269d88ad9cd1f9b66068 Mon Sep 17 00:00:00 2001 From: zvv <508748680@qq.com> Date: Thu, 2 Apr 2026 16:18:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E4=BB=A3=E7=A0=81=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/ShoppingCartController.java | 35 ++++++++ .../com/sky/mapper/ShoppingCartMapper.java | 36 ++++++++ .../com/sky/service/ShoppingCartService.java | 14 ++++ .../service/impl/ShoppingCartServiceImpl.java | 84 +++++++++++++++++++ .../resources/mapper/ShoppingCartMapper.xml | 24 ++++++ 5 files changed, 193 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/ShoppingCartServiceImpl.java create mode 100644 sky-server/src/main/resources/mapper/ShoppingCartMapper.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..48dc3ab --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java @@ -0,0 +1,35 @@ +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.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 +@Slf4j +@RequestMapping("/user/shoppingCart") +@Api(tags = "C端购物车相关接口") +public class ShoppingCartController { + + @Autowired + private ShoppingCartService shoppingCartService; + + + @PostMapping("/add") + @ApiOperation("添加购物车") + public Result add(@RequestBody 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..3442e7e --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java @@ -0,0 +1,36 @@ +package com.sky.mapper; + + +import com.sky.dto.ShoppingCartDTO; +import com.sky.entity.ShoppingCart; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +@Mapper +public interface ShoppingCartMapper { + + + /** + * 动态条件查询 + * @param shoppingCart + * @return + */ + List list(ShoppingCart shoppingCart); + + + @Update("update shopping_cart set number = #{number} where id = #{id}") + void updateNumberById(ShoppingCart shoppingCart); + + + /** + * 插入购物车数据 + * @param shoppingCart + */ + @Insert("insert into shopping_cart (name, image, user_id, dish_id, setmeal_id, dish_flavor, amount, create_time, number) " + + + "values (#{name}, #{image}, #{userId}, #{dishId}, #{setmealId}, #{dishFlavor}, #{amount}, #{createTime}, #{number})") + 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..6c3c2a5 --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/ShoppingCartService.java @@ -0,0 +1,14 @@ +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/ShoppingCartServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImpl.java new file mode 100644 index 0000000..890457c --- /dev/null +++ b/sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImpl.java @@ -0,0 +1,84 @@ +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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + + +@Service +@Slf4j +public class ShoppingCartServiceImpl implements ShoppingCartService { + + @Autowired + private ShoppingCartMapper shoppingCartMapper; + @Autowired + private DishMapper dishMapper; + @Autowired + private SetmealMapper setmealMapper; + + + /** + * 添加购物车 + * @param shoppingCartDTO + */ + @Override + public void addShoppingCart(ShoppingCartDTO shoppingCartDTO) { + //判断当前加入购物车的商品是否已经存在 + ShoppingCart shoppingCart = new ShoppingCart(); + BeanUtils.copyProperties(shoppingCartDTO,shoppingCart); + + Long userId = BaseContext.getCurrentId(); + shoppingCart.setUserId(userId); + + List list = shoppingCartMapper.list(shoppingCart); + + //如果已经存在 只需要将数量加一 + if (list != null && list.size() > 0) { + 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/ShoppingCartMapper.xml b/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml new file mode 100644 index 0000000..49e7101 --- /dev/null +++ b/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml @@ -0,0 +1,24 @@ + + + + + + +