修改购物车中的商品

第1关:修改购物车中的商品

任务描述

本关任务:实现购物车中商品的修改功能。

相关知识

为了完成本关任务,你需要掌握:

  1. 修改购物车中的商品;
  2. 功能实现。
修改购物车中的商品

购物车页面如下图:

用户可在购物车页面对想要购买的商品进行数量的修改,如在右边商品列表中点击 “-”号,对应的商品数量减一,如果商品数量为 “0”,那么就删除该商品列表;点击 “+” 号那么对应商品的数量就加一。

功能实现
  1. dao 层代码对购物车表商品数量修改:
     
      
    1. package com.www.dao;
    2. import com.www.entity.ShoppingCart;
    3. import org.apache.ibatis.annotations.Delete;
    4. import org.apache.ibatis.annotations.Select;
    5. import org.apache.ibatis.annotations.Update;
    6. import org.springframework.stereotype.Repository;
    7. @Repository
    8. public interface ShoppingCartDao {
    9. //修改数据库中的商品数量
    10. @Update("update shoppingcart set num=#{num} where user_id=#{user_id} and product_id=#{product_id}")
    11. int updateShoppingCart(int user_id,int product_id,int num);
    12. //删除数据库中的商品
    13. @Delete("delete from shoppingcart where user_id=#{user_id} and product_id=#{product_id}")
    14. int deleteShoppingCart(int user_id,int product_id);
    15. }
  2. service 层代码判断前端参数并调用 dao 层方法: service 接口:
     
      
    1. package com.www.service;
    2. import com.www.entity.ShoppingCart;
    3. import org.springframework.stereotype.Component;
    4. @Component
    5. public interface ShoppingCartService {
    6. //定义修改购物车商品 service 接口
    7. boolean updateShoppingCart(int user_id,int product_id,int num);
    8. //定义删除购物车商品 service 接口
    9. boolean deleteShoppingCart(Integer user_id,Integer product_id);
    10. }
    impl 实现类:
     
      
    1. package com.www.service.impl;
    2. import com.www.dao.ShoppingCartDao;
    3. import com.www.entity.ShoppingCart;
    4. import com.www.service.ShoppingCartService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Service;
    7. @Service("shoppingCartService")
    8. public class ShoppingCartServiceImpl implements ShoppingCartService {
    9. @Autowired
    10. private ShoppingCartDao shoppingCartDao;
    11. @Override
    12. public boolean updateShoppingCart(int user_id, int product_id, int num) {
    13. //row 是执行条数
    14. int row=shoppingCartDao.updateShoppingCart(user_id,product_id,num);
    15. //row 为1,就是执行成功了,就返回 true ,否则返回 false
    16. if (row==1){
    17. return true;
    18. }else {
    19. return false;
    20. }
    21. }
    22. @Override
    23. public boolean deleteShoppingCart(Integer user_id, Integer product_id) {
    24. //row 是执行条数
    25. int row=shoppingCartDao.deleteShoppingCart(user_id,product_id);
    26. //row 为1,就是执行成功了,就返回 true ,否则返回 false
    27. if (row==1){
    28. return true;
    29. }else {
    30. return false;
    31. }
    32. }
    33. }
  3. controller 层判断执行结果:
     
      
    1. package com.www.controller;
    2. import com.www.entity.ShoppingCart;
    3. import com.www.service.ShoppingCartService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.RequestBody;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.RestController;
    8. import java.util.HashMap;
    9. import java.util.Map;
    10. @RestController
    11. @RequestMapping(value = "/shoppingCart")
    12. public class ShoppingCartController {
    13. @Autowired
    14. private ShoppingCartService shoppingCartService;
    15. @RequestMapping("/updateShoppingCart")
    16. public Map updateShoppingCart(@RequestBody Map<String,Integer> paramMap){
    17. HashMap<String, String> map = new HashMap<>();
    18. //获取参数
    19. int user_id = paramMap.get("user_id");
    20. int product_id = paramMap.get("product_id");
    21. int num = paramMap.get("num");
    22. //如果 num 修改为0,就是删除该商品
    23. if (num==0){
    24. boolean is=shoppingCartService.deleteShoppingCart(user_id,product_id);
    25. //判断是否删除成功
    26. if (is){
    27. map.put("msg","商品已删除");
    28. }else {
    29. map.put("msg","商品删除失败");
    30. }
    31. return map;
    32. }
    33. //num 不为0,就是修改商品
    34. boolean is=shoppingCartService.updateShoppingCart(user_id,product_id,num);
    35. //判断是否修改成功
    36. if (is){
    37. map.put("msg","修改购物车数量成功");
    38. }else {
    39. map.put("msg","修改购物车数量失败");
    40. }
    41. return map;
    42. }
    43. }
  4. 数据库结构如下: 购物车表:
    字段名称类型备注
    idint(11)NOT NULL AUTO_INCREMENT'购物车id'
    user_idint(11)NOT NULL'用户id'
    product_idint(11)NOT NULL'商品id'
    numint(11)NOT NULL'商品数量'

    编程要求

    在 ShoppingCartDao.java、ShoppingCartService.java、ShoppingCartServiceImpl.java、ShoppingCartController.java 文件里 Begin-End 处根据提示补充代码。

测试说明

平台会对你编写的代码进行测试:发送请求检验返回的结果集是否正确。

测试输入:

 
  1. {
  2. "user_id":1018,
  3. "product_id":1,
  4. "num":1
  5. }

预期输出: 修改购物车数量成功


开始你的任务吧,祝你成功!

ShoppingCartDao.java
package com.www.dao;

import com.www.entity.ShoppingCart;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;



@Repository
public interface ShoppingCartDao {
    //修改数据库中的商品数量
    /******************************Begin******************************/
     @Update("update shoppingcart set num=#{num} where user_id=#{user_id} and product_id=#{product_id}")  
 int updateShoppingCart(int user_id,int product_id,int num);
    /******************************End******************************/
    //删除数据库中的商品
    /******************************Begin******************************/
    @Delete("delete from shoppingcart where user_id=#{user_id} and product_id=#{product_id}")  
     int deleteShoppingCart(int user_id,int product_id);
    /******************************End******************************/
}
ShoppingCartService.java
package com.www.service;

import com.www.entity.ShoppingCart;
import org.springframework.stereotype.Component;


@Component
public interface ShoppingCartService {
    //定义修改购物车商品 service 接口
    /******************************Begin******************************/
     boolean updateShoppingCart(int user_id,int product_id,int num);  
    /******************************End******************************/
    //定义删除购物车商品 service 接口
    /******************************Begin******************************/
     boolean deleteShoppingCart(Integer user_id,Integer product_id);
    /******************************End******************************/

}
ShoppingCartServiceImpl.java
package com.www.service.impl;


import com.www.dao.ShoppingCartDao;
import com.www.entity.ShoppingCart;
import com.www.service.ShoppingCartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service("shoppingCartService")
public class ShoppingCartServiceImpl implements ShoppingCartService {

    @Autowired
    private ShoppingCartDao shoppingCartDao;
    /*调用 dao 层修改购物车商品数量方法*/
    /******************************Begin******************************/
    @Override
    public boolean updateShoppingCart(int user_id, int product_id, int num) {
        //row 是执行条数
        int row;
        //row 为1,就是执行成功了,就返回 true ,否则返回 false
        row=shoppingCartDao.updateShoppingCart(user_id,product_id,num);  
        //row 为1,就是执行成功了,就返回 true ,否则返回 false  
        if (row==1){  
            return true;  
        }else {  
            return false;  
        } 
    }
    /******************************End******************************/

    /*调用 dao 层删除购物车商品方法*/
    /******************************Begin******************************/
    @Override
    public boolean deleteShoppingCart(Integer user_id, Integer product_id) {
        //row 是执行条数
        int row;
        //row 为1,就是执行成功了,就返回 true ,否则返回 false
        row=shoppingCartDao.deleteShoppingCart(user_id,product_id);  
     //row 为1,就是执行成功了,就返回 true ,否则返回 false  
     if (row==1){  
         return true;  
     }else {  
         return false;  
     }  
    }
    /******************************End******************************/
}
ShoppingCartController.java
package com.www.controller;

import com.www.entity.ShoppingCart;
import com.www.service.ShoppingCartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;


@RestController
@RequestMapping(value = "/shoppingCart")
public class ShoppingCartController {

    @Autowired
    private ShoppingCartService shoppingCartService;

    /*判断商品数量 num ,如果 num 大于 0 就修改商品数量为 num ,否则就删除该商品*/
    /***********************************Begin***********************************/
    @RequestMapping("/updateShoppingCart")
    public Map updateShoppingCart(@RequestBody Map<String,Integer> paramMap){
        HashMap<String, String> map = new HashMap<>();
        //获取参数
        int user_id = paramMap.get("user_id");  
     int product_id = paramMap.get("product_id");  
     int num = paramMap.get("num");  
     //如果 num 修改为0,就是删除该商品  
     if (num==0){  
         boolean is=shoppingCartService.deleteShoppingCart(user_id,product_id);  
         //判断是否删除成功  
         if (is){  
             map.put("msg","商品已删除");  
         }else {  
             map.put("msg","商品删除失败");  
         }  
         return map;  
     }  
     //num 不为0,就是修改商品  
     boolean is=shoppingCartService.updateShoppingCart(user_id,product_id,num);  
     //判断是否修改成功  
     if (is){  
         map.put("msg","修改购物车数量成功");  
     }else {  
         map.put("msg","修改购物车数量失败");  
     }  
     return map;  
      
    }
    /***********************************End***********************************/
}
ShoppingCart.java
package com.www.entity;

import lombok.Data;

import java.io.Serializable;


@Data
public class ShoppingCart implements Serializable {

    private int id;
    private int user_id;
    private int product_id;
    private int num;

}
Product.java
package com.www.entity;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;


@Data
public class Product implements Serializable {

    private int product_id;
    private String product_name;
    private int category_id;
    private String product_title;
    private String product_intro;
    private String product_picture;
    private BigDecimal product_price;   //原价
    private BigDecimal product_selling_price;    //售价
    private int product_num;
    private int product_sales;
    private int status;
}

加油哦,同学们!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用例名称:顾客注册与登陆 参与者:顾客、系统管理员 前置条件:系统正常运行 后置条件:顾客成功注册与登陆 主要流程: 1. 顾客进入系统,选择注册账号。 2. 系统提示顾客输入账号信息,包括用户名、邮箱、密码等。 3. 顾客输入完账号信息后,系统进行验证,验证通过后,顾客成功注册账号。 4. 顾客进入系统,输入账号信息,然后选择登陆。 5. 系统对账号信息进行验证,验证通过后,顾客成功登陆系统。 用例名称:添加商品购物车 参与者:顾客、系统管理员 前置条件:顾客已经登陆到系统,并且系统已经存在商品 后置条件:商品成功添加到购物车 主要流程: 1. 顾客浏览系统商品,选择要购买的商品。 2. 顾客点击“加入购物车”按钮,将商品添加到购物车。 3. 系统提示顾客商品成功添加到购物车。 用例名称:修改购物车商品 参与者:顾客、系统管理员 前置条件:顾客已经登陆到系统,并且购物车已经有商品 后置条件:购物车商品成功修改 主要流程: 1. 顾客进入购物车页面,查看购物车商品。 2. 顾客选择要修改商品,点击“修改”按钮。 3. 系统提示顾客修改商品的详细信息,包括数量、颜色、尺码等。 4. 顾客输入完商品信息后,点击“确认修改”按钮。 5. 系统提示顾客修改成功。 用例名称:结账 参与者:顾客、系统管理员 前置条件:顾客已经登陆到系统,并且购物车已经有商品 后置条件:购物车商品成功结账 主要流程: 1. 顾客进入购物车页面,查看购物车商品。 2. 顾客点击“结账”按钮,进入结账页面。 3. 顾客根据自己的需求选择结账方式,包括支付宝、微信、银行卡等。 4. 系统提示顾客输入相关信息,如付款金额、付款密码等。 5. 顾客输入完信息后,点击“确认付款”按钮。 6. 系统提示顾客付款成功,并且将购物车商品从系统删除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值