From f680ec4ec8dfc1920033f6e55e1678b92b122d28 Mon Sep 17 00:00:00 2001 From: muhua <1498117283@qq.com> Date: Fri, 12 Jul 2024 16:58:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DishController.java | 33 ++++++++++++++ .../controller/ShopController.java | 42 ++++++++++++++++++ .../controller/ShoppingCartController.java | 43 +++++++++++++++++++ .../takeawaysystemserver/entity/Dish.java | 8 ++++ .../entity/DishFlavor.java | 4 +- .../takeawaysystemserver/entity/Order.java | 4 +- .../takeawaysystemserver/entity/Shop.java | 4 +- .../mapper/ShopMapper.java | 19 ++++++++ .../model/dto/ShoppingCart.java | 24 ----------- .../model/dto/ShoppingCartItem.java | 29 ------------- .../service/DishService.java | 9 ++++ .../service/ShopService.java | 17 +++++++- .../service/impl/DishServiceImpl.java | 9 ++++ .../service/impl/ShopServiceImpl.java | 23 +++++++++- .../service/impl/UserServiceImpl.java | 2 +- src/main/resources/mapper/ShopMapper.xml | 7 +++ 16 files changed, 215 insertions(+), 62 deletions(-) create mode 100644 src/main/java/com/example/takeawaysystemserver/controller/DishController.java create mode 100644 src/main/java/com/example/takeawaysystemserver/controller/ShopController.java create mode 100644 src/main/java/com/example/takeawaysystemserver/controller/ShoppingCartController.java delete mode 100644 src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java delete mode 100644 src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java diff --git a/src/main/java/com/example/takeawaysystemserver/controller/DishController.java b/src/main/java/com/example/takeawaysystemserver/controller/DishController.java new file mode 100644 index 0000000..9acd177 --- /dev/null +++ b/src/main/java/com/example/takeawaysystemserver/controller/DishController.java @@ -0,0 +1,33 @@ +package com.example.takeawaysystemserver.controller; + +import com.example.takeawaysystemserver.entity.Dish; +import com.example.takeawaysystemserver.service.DishService; +import com.example.takeawaysystemserver.util.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author Ethereal + * @date 2024/7/12 + * @description + */ +@RestController +@Api(tags = "菜品模块") +@RequestMapping("dish") +public class DishController { + + @Resource + private DishService dishService; + + @GetMapping("get-dish-info") + @ApiOperation(value = "获取菜品信息") + public R> getDishes(){ + return dishService.getDishes(); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/takeawaysystemserver/controller/ShopController.java b/src/main/java/com/example/takeawaysystemserver/controller/ShopController.java new file mode 100644 index 0000000..43a4755 --- /dev/null +++ b/src/main/java/com/example/takeawaysystemserver/controller/ShopController.java @@ -0,0 +1,42 @@ +package com.example.takeawaysystemserver.controller; + +import com.example.takeawaysystemserver.entity.Dish; +import com.example.takeawaysystemserver.entity.Shop; +import com.example.takeawaysystemserver.service.ShopService; +import com.example.takeawaysystemserver.util.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author Ethereal + * @date 2024/7/12 + * @description + */ +@RestController +@RequestMapping("shop") +@Api(tags = "商家模块") +public class ShopController { + + @Resource + private ShopService shopService; + + + @GetMapping("get-all-shop") + @ApiOperation(value = "获取所有商家的菜品信息") + public R> getAllShop(){ + return shopService.getAllShop(); + } + + @GetMapping("get-shop-dishes") + @ApiOperation(value = "获取某个商家的所有菜品信息(包括口味)") + public R> getAllDishes(@RequestParam("id") Integer id){ + return shopService.getShopDishes(id); + } +} diff --git a/src/main/java/com/example/takeawaysystemserver/controller/ShoppingCartController.java b/src/main/java/com/example/takeawaysystemserver/controller/ShoppingCartController.java new file mode 100644 index 0000000..52f574d --- /dev/null +++ b/src/main/java/com/example/takeawaysystemserver/controller/ShoppingCartController.java @@ -0,0 +1,43 @@ +package com.example.takeawaysystemserver.controller; + +import com.example.takeawaysystemserver.entity.ShoppingCart; +import com.example.takeawaysystemserver.service.ShoppingCartService; +import com.example.takeawaysystemserver.util.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author Ethereal + * @date 2024/7/12 + * @description + */ +@RestController +@RequestMapping("shopping-cart") +@Api(tags = "购物车") +public class ShoppingCartController { + + @Resource + private ShoppingCartService shoppingCartService; + + @PostMapping("add-shopping-cart") + @ApiOperation(value = "添加到购物车") + public R add(@RequestHeader String token, @RequestBody ShoppingCart shoppingCart){ + return shoppingCartService.addShoppingCart(token, shoppingCart); + } + + @GetMapping("search-carts") + @ApiOperation(value = "查询购物车") + public R> getLists(@RequestHeader String token){ + return shoppingCartService.getShoppingCarts(token); + } + + @PostMapping("delete-shopping-cart") + @ApiOperation(value = "删除购物车选项") + public R delete(@RequestHeader String token, @RequestBody ShoppingCart shoppingCart){ + return shoppingCartService.deleteShoppingCart(token, shoppingCart); + } +} diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Dish.java b/src/main/java/com/example/takeawaysystemserver/entity/Dish.java index 73441f5..26cc2f4 100644 --- a/src/main/java/com/example/takeawaysystemserver/entity/Dish.java +++ b/src/main/java/com/example/takeawaysystemserver/entity/Dish.java @@ -1,9 +1,11 @@ package com.example.takeawaysystemserver.entity; import java.io.Serializable; +import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import jakarta.annotation.Nullable; import lombok.Data; /** @@ -48,6 +50,12 @@ public class Dish implements Serializable { */ private String image; + /** + * 菜品口味 + */ + @Nullable + private List dishFlavors; + private static final long serialVersionUID = 1L; @Override diff --git a/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java b/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java index 5b05664..f4b504c 100644 --- a/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java +++ b/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java @@ -36,12 +36,12 @@ public class DishFlavor implements Serializable { /** * 创建时间 */ - private Long createTime; + private Integer createTime; /** * 更新时间 */ - private Long updateTime; + private Integer updateTime; /** * 是否删除(1删除,0未删除) diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Order.java b/src/main/java/com/example/takeawaysystemserver/entity/Order.java index 81de9f2..9bb3895 100644 --- a/src/main/java/com/example/takeawaysystemserver/entity/Order.java +++ b/src/main/java/com/example/takeawaysystemserver/entity/Order.java @@ -46,12 +46,12 @@ public class Order implements Serializable { /** * 创建时间 */ - private Long createTime; + private Integer createTime; /** * 更新时间 */ - private Long updateTime; + private Integer updateTime; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Shop.java b/src/main/java/com/example/takeawaysystemserver/entity/Shop.java index 793ad5a..a142122 100644 --- a/src/main/java/com/example/takeawaysystemserver/entity/Shop.java +++ b/src/main/java/com/example/takeawaysystemserver/entity/Shop.java @@ -42,12 +42,12 @@ public class Shop implements Serializable { /** * 开业时间 */ - private String openTime; + private Integer openTime; /** * 休息时间 */ - private String closeTime; + private Integer closeTime; /** * 店铺地址 diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java index 51bef79..49459e8 100644 --- a/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java +++ b/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java @@ -1,8 +1,13 @@ package com.example.takeawaysystemserver.mapper; +import com.example.takeawaysystemserver.entity.Dish; +import com.example.takeawaysystemserver.entity.DishFlavor; import com.example.takeawaysystemserver.entity.Shop; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author qiushengyu @@ -13,6 +18,20 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ShopMapper extends BaseMapper { + + /** + * 获取某个店铺的所有菜品 + * @param id 店铺ID + * @return 菜品列表 + */ + List getShopDishes(@Param("id") Integer id); + + /** + * 获取菜品的口味 + * @param id 菜品ID + * @return 菜品口味 + */ + List flavors(@Param("id") Integer id); } diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java deleted file mode 100644 index cf3b929..0000000 --- a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.takeawaysystemserver.model.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author spyn - * @date 2024/7/10 - * @description - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ShoppingCart { - // 不需要用户ID,用户信息从token中获取 - private Integer shopId; - /** - * 订单子项 - */ - private ShoppingCartItem[] dishes; - // 用户地址,用户可能会修改地址,故以该字段为准 - private String address; -} diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java deleted file mode 100644 index d5f54fa..0000000 --- a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.example.takeawaysystemserver.model.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Map; - -/** - * @author spyn - * @date 2024/7/10 - * @description - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ShoppingCartItem { - private Integer dishId; - /** - * 份数 - */ - private Integer count; - /** - * 子选项 - * [key: 类型,如“辣度选择”] : [value: 子选项,如"微辣"] - * 注意这里value是String,而不是String[],和Dish中的subOptions不同 - */ - private Map subOptions; -} diff --git a/src/main/java/com/example/takeawaysystemserver/service/DishService.java b/src/main/java/com/example/takeawaysystemserver/service/DishService.java index 8dff3e3..32f3d27 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/DishService.java +++ b/src/main/java/com/example/takeawaysystemserver/service/DishService.java @@ -2,6 +2,9 @@ package com.example.takeawaysystemserver.service; import com.example.takeawaysystemserver.entity.Dish; import com.baomidou.mybatisplus.extension.service.IService; +import com.example.takeawaysystemserver.util.R; + +import java.util.List; /** * @author qiushengyu @@ -10,4 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface DishService extends IService { + /** + * 获取菜品信息 + * @return 所有菜品信息 + */ + R> getDishes(); + } diff --git a/src/main/java/com/example/takeawaysystemserver/service/ShopService.java b/src/main/java/com/example/takeawaysystemserver/service/ShopService.java index cc2be89..68b011b 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/ShopService.java +++ b/src/main/java/com/example/takeawaysystemserver/service/ShopService.java @@ -1,7 +1,11 @@ package com.example.takeawaysystemserver.service; -import com.example.takeawaysystemserver.entity.Shop; import com.baomidou.mybatisplus.extension.service.IService; +import com.example.takeawaysystemserver.entity.Dish; +import com.example.takeawaysystemserver.entity.Shop; +import com.example.takeawaysystemserver.util.R; + +import java.util.List; /** * @author qiushengyu @@ -9,5 +13,16 @@ import com.baomidou.mybatisplus.extension.service.IService; * @createDate 2024-07-11 17:13:56 */ public interface ShopService extends IService { + /** + * 获取所有商家信息 + * @return 所有商家的list + */ + R> getAllShop(); + /** + * 获取商家的菜品信息 + * @param id 商家id + * @return 菜品信息 + */ + R> getShopDishes(Integer id); } diff --git a/src/main/java/com/example/takeawaysystemserver/service/impl/DishServiceImpl.java b/src/main/java/com/example/takeawaysystemserver/service/impl/DishServiceImpl.java index f28234b..82a6bcb 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/impl/DishServiceImpl.java +++ b/src/main/java/com/example/takeawaysystemserver/service/impl/DishServiceImpl.java @@ -1,11 +1,15 @@ package com.example.takeawaysystemserver.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.takeawaysystemserver.entity.Dish; import com.example.takeawaysystemserver.service.DishService; import com.example.takeawaysystemserver.mapper.DishMapper; +import com.example.takeawaysystemserver.util.R; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author qiushengyu * @description 针对表【dish】的数据库操作Service实现 @@ -15,6 +19,11 @@ import org.springframework.stereotype.Service; public class DishServiceImpl extends ServiceImpl implements DishService{ + @Override + public R> getDishes() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + return R.ok(list(wrapper)); + } } diff --git a/src/main/java/com/example/takeawaysystemserver/service/impl/ShopServiceImpl.java b/src/main/java/com/example/takeawaysystemserver/service/impl/ShopServiceImpl.java index 31a52c3..0a61a7c 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/impl/ShopServiceImpl.java +++ b/src/main/java/com/example/takeawaysystemserver/service/impl/ShopServiceImpl.java @@ -1,11 +1,17 @@ package com.example.takeawaysystemserver.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.example.takeawaysystemserver.entity.Dish; +import com.example.takeawaysystemserver.entity.DishFlavor; import com.example.takeawaysystemserver.entity.Shop; -import com.example.takeawaysystemserver.service.ShopService; import com.example.takeawaysystemserver.mapper.ShopMapper; +import com.example.takeawaysystemserver.service.ShopService; +import com.example.takeawaysystemserver.util.R; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author qiushengyu * @description 针对表【shop】的数据库操作Service实现 @@ -15,6 +21,21 @@ import org.springframework.stereotype.Service; public class ShopServiceImpl extends ServiceImpl implements ShopService{ + @Override + public R> getAllShop() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + return R.ok(list(wrapper)); + } + + @Override + public R> getShopDishes(Integer id) { + List dishes = baseMapper.getShopDishes(id); + for (Dish dish: dishes) { + List dishFlavors = baseMapper.flavors(dish.getId()); + dish.setDishFlavors(dishFlavors); + } + return R.ok(dishes); + } } diff --git a/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java b/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java index 78f00f1..6b5f05c 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java +++ b/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java @@ -132,7 +132,7 @@ public class UserServiceImpl extends ServiceImpl return Objects.nonNull(user); } - private String getUserId(String token){ + public String getUserId(String token){ Map map = JwtUtil.getPayload(token); return map.get("id").toString().replaceAll("\"", ""); } diff --git a/src/main/resources/mapper/ShopMapper.xml b/src/main/resources/mapper/ShopMapper.xml index 61c4927..74fed7d 100644 --- a/src/main/resources/mapper/ShopMapper.xml +++ b/src/main/resources/mapper/ShopMapper.xml @@ -21,4 +21,11 @@ sell_count,status,open_time, close_time,address,image + + select * from dish_flavor where dish_id = #{id} + + +