商城項目之實戰-購物車模塊


實現效果圖

用戶添加多個訂單信息,多個訂單選擇立即購買生成訂單,關鍵點多選按鈕傳遞選中的多個值到后台

1.實體類

/**
 * 購物車類
 */
public class ShoppingCart {
    private int id;//購物車編號',
    private int uId;// '用戶編號',
    private int cId;// 點卡編號',
    private String cName;// '點卡名稱',數據庫不存在此列
    private String titleImg;// '點卡圖標',數據庫不存在此列
    private int number;// '庫存數量',,數據庫不存在此列
    private Double iniPrice;//原價格',,數據庫不存在此列
    private Double price;// 售價',,數據庫不存在此列
    private int gid;// 游戲編號',
    private String    gName;//'游戲名稱',',數據庫不存在此列
    private int num;// 購買數量',
    private Double totalPrice;// 金額統計'


2.js代碼


js定義一個類
/**
 * 對象函數
 * @param cid
 * @param gid
 * @param price
 * @param gName
 * @param cName
 * @param byNum
 * @constructor
 */
function Cards(id,cId,gid,price,gName,cName,num) {
    this.id=id;
    this.cId=cId;
    this.gid=gid;
    this.price=price;
    this.gName=gName;
    this.cName=cName;
    this.num=num;
}

//創建一個數組存貯對象
var cards=new Array();

 

/**
 * 選擇購物車的商品提交訂單
 */
$("#payment").click(function() {
    var blackName = document.getElementsByName("cartCheckBox");
    var $total=$("#shopping").find("tr[id]");
    var k = 0;
    var serialArray="";
    for (var i = 0; i < blackName.length; i++) {
        if (blackName[i].checked == true) {
            k = k + 1;
            var obj=$total.eq(i+1);//前面多了一個id定位+1
            var card=new Cards(obj.children(".id").val(),obj.children(".cId").val(),obj.children(".gid").val(),obj.children(".price").val(),obj.children(".gName").val(),obj.children(".cName").val(),obj.children(".cart_td_6").children(".byNum").val());
            cards[k-1]=card;//數組下標從0開始
        }
    }
    if (k == 0) {
        changeDLGContent("請選擇商品后再提交!");
        openYesOrNoDLG();
        return;
    }
    var jsonsa=JSON.stringify(cards);//將一個JavaScript值(對象或者數組)轉換為一個 JSON字符串
    $.ajax({
        type: "POST",//請求類型
        url: path+"/toPaymentother",//請求的url
        data: jsonsa,//請求參數
        dataType: "json",//ajax接口(請求url)返回的數據類型
        success: function (data) {//data:返回數據(json對象)
            if (data>0) {
                window.location.href=path+"/toPaymentOnly";
            }else {
                changeDLGContent("添加訂單失敗!");
                openYesOrNoDLG();
            }
        },
        error: function (data) {//當訪問時候,404,500 等非200的錯誤狀態碼
            changeDLGContent("添加訂單失敗!");
            openYesOrNoDLG();
        }
    });

 

3.springMVC后台接收
import cn.jbit.biz.*;
import cn.jbit.entity.*;
import cn.jbit.util.Calculation;
import cn.jbit.util.Pages;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * 購物車跳轉到提交訂單頁面
 * @return
 */
@ResponseBody
@RequestMapping(value = "/toPaymentother")
public String toPaymentother(HttpServletRequest request) throws IOException{
    String jsonStr = IOUtils.toString(request.getInputStream(),"UTF-8");
    List<ShoppingCart> cardsListJson = JSON.parseObject(jsonStr, new TypeReference<List<ShoppingCart>>() {});
    System.out.println("JSONTOJAVAOBJ============"+cardsListJson);
    Double totalPir=0.0;
    int ret=0;
    if(cardsListJson.size()>0){
        ret=1;
        for (ShoppingCart c:cardsListJson) {
            c.setTotalPrice(Calculation.getDouble(c.getPrice(),c.getNum()));
            totalPir+=c.getTotalPrice();
        }
        request.getSession().setAttribute("totalPir",totalPir);
        request.getSession().setAttribute("cardsListJson",cardsListJson);
    }
    return JSON.toJSONString(ret);
}
 
4.springboot后台接收,不同項目

js代碼
$.ajax({
    type: "POST",//請求類型
    url: path+"/offer/selectionDevice.html",//請求的url
    data:{SceneQuoteInfos:jsonsa},//請求參數,注意這里多了個SceneQuoteInfos
    dataType: "json",//ajax接口(請求url)返回的數據類型
    success: function (data) {//data:返回數據(json對象)
        if(data.message=="ok") {
            errerInformation(data.data,"javascript:void(0);");
        } else {
            errerInformation(data.data,"javascript:void(0);");
        }
    }
});

 

controller層
@Business
@ResponseBody
@RequestMapping(value = "/selectionDevice.html",method = RequestMethod.POST)
public String toSelectionDevice (@RequestParam("SceneQuoteInfos") String SceneQuoteInfos, HttpServletRequest request)throws IOException {
    List<SceneQuoteInfo> SceneQuoteInfo = JSON.parseObject(SceneQuoteInfos, new TypeReference<List<SceneQuoteInfo>>() {});
    System.out.println("SceneQuoteInfos============"+SceneQuoteInfos);
    return "business/selectionDevice";
}

 

 
 
        


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM