欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

电商项目(十九)购物车服务(未登录状态下)

程序员文章站 2022-04-14 23:17:47
...

1.创建frontend_cart模块

添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>bz_parent</artifactId>
        <groupId>com.bjsxt</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>frontend_cart</artifactId>
    <dependencies>
        <!--pojo-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--utils-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--Spring Boot Web Starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Spring Cloud Eureka Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--Spring Cloud OpenFeign Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--Spring Cloud Config Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <!--Spring Cloud AMQP: (RabbitMQ) Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
        <!--Logback-->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

添加配置文件

电商项目(十九)购物车服务(未登录状态下)

创建启动类

电商项目(十九)购物车服务(未登录状态下)

2. 购物车设计

用户未登录状态下

保存到客户端浏览器的Cookie中

用户已登录状态下

保存到服务器的redis中

用户未登录的状态下将商品添加到购物车中

在frontend_cart模块中,新建CartController,新增方法:将商品加入购物车,方法的返回值:Result,方法的参数:Long itemId,String userId,@RequestParam(defaultValue = “1”)Integer num,HttpServletRequest req,HttpServletResponse resp。
在用户未登录的时候,通过判断userId来判断用户是否登录,若为空,

在业务层中,CookieCatServiceImpl(用户未登录状态下的购物车)。
第一,先获取临时购物车Map<String,CartItem> cart = getCart(request);(在工具类的模块创建一个类CartItem存放信息);
电商项目(十九)购物车服务(未登录状态下)
定义一个方法,获取购物车
电商项目(十九)购物车服务(未登录状态下)
临时购物车的key:cart_cookie_name:CART_COOKIE_NAME

第二,查询商品;
创建feign的接口,新增方法接口。
定义一个方法:根据商品ID查询商品
电商项目(十九)购物车服务(未登录状态下)

第三,向购物车中添加商品;
定义方法:向购物车添加商品
电商项目(十九)购物车服务(未登录状态下)
第四,将购物车通过cookie写回给客户端浏览器
定义方法:将购物车的信息通过cookie返回客户端
电商项目(十九)购物车服务(未登录状态下)

查看购物车(未登录状态下)

在frontend_cart模块中,在CartController中新增方法:查看购物车,返回值Result,参数:String userId,HttpServletRequest req,HttpServletResponse resp。
在用户未登录的时候,通过判断userId来判断用户是否登录,若为空,调用方法。

在业务层中实现查看购物车的方法。
电商项目(十九)购物车服务(未登录状态下)

用户未登录的状态下修改购物车中商品的数量

在frontend_cart模块中,在CartController中新增方法:修改购物车商品的数量,返回值:Result,参数:Long itemId,String userId,Integer num,HttpServletRequest req,HttpServletResponse resp。
在用户未登录的时候,通过判断userId来判断用户是否登录,若为空,调用方法。
在业务层中实现修改购物车商品的数量:
电商项目(十九)购物车服务(未登录状态下)

用户未登录的状态下删除购物车中的商品

在frontend_cart模块中,在CartController中新增方法:修改购物车商品的数量,返回值:Result,参数:Long itemId,String userId,Integer num,HttpServletRequest req,HttpServletResponse resp。
在用户未登录的时候,通过判断userId来判断用户是否登录,若为空,调用方法。
在业务层实现用户未登录时删除购物车中的商品的方法
电商项目(十九)购物车服务(未登录状态下)

相关标签: 电商