1 Star 0 Fork 0

叶明志 / golang练习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
cartHandler.go 2.06 KB
一键复制 编辑 原始数据 按行查看 历史
package controller
import (
"GolangLearnPractice1/bookstore2/dao"
"GolangLearnPractice1/bookstore2/model"
"html/template"
"net/http"
"strconv"
)
//AddBook2Cart 把图书添加到购物车中
func AddBook2Cart(w http.ResponseWriter, r *http.Request) {
flag, session := dao.IsLogin(r)
if flag {
//用户已经登录
//查看该图书(购物项)是否已经在用户的购物车中
bookID := r.PostFormValue("bookId")
ibookID, _ := strconv.ParseInt(bookID, 10, 64)
book, _ := dao.GetBookByID(bookID)
//得到该购物车中图书
cart, _ := dao.GetCartByUserID(session.UserID)
for _, v := range cart.CartItems {
if v.Book.BookID == ibookID {
//该图书已经在购物车中,找到购物项,增加图书数量即可
v.Count++
v.Amount = v.Amount + v.Book.Price
dao.AddBook2CartItem(v)
w.Write([]byte("您刚刚将《" + book.Title + "》加入了购物车"))
return
}
}
//该图书尚未在购物车中,需添加到购物车中
cartItem := &model.CartItem{
CartID: cart.CartID,
Book: book,
Count: 1,
Amount: book.Price,
}
dao.AddCartItem(cartItem)
//
w.Write([]byte("您刚刚将《" + book.Title + "》加入了购物车"))
return
}
//用户尚未登录
w.Write([]byte("请先登录!"))
return
}
//GetCartInfo 得到购物车信息
func GetCartInfo(w http.ResponseWriter, r *http.Request) {
_, session := dao.IsLogin(r)
cart, _ := dao.GetCartByUserID(session.UserID)
if dao.CartIsNULL(cart.CartID) {
//用户购物车为空,转到购物车空页面
// GetPagesByPrice(w, r)
// return
}
//用户购物车不为空,显示购物车信息
t := template.Must(template.ParseFiles("view/pages/cart/cart.html"))
t.Execute(w, cart)
}
//DeleteCart 删除购物车
func DeleteCart(w http.ResponseWriter, r *http.Request) {
_, session := dao.IsLogin(r)
dao.DeleteCart(session.UserID)
cart, _ := dao.GetCartByUserID(session.UserID)
//用户购物车为空,转到购物车空页面
// GetPagesByPrice(w, r)
t := template.Must(template.ParseFiles("view/pages/cart/cart.html"))
t.Execute(w, cart)
}
Go
1
https://gitee.com/yemingzhi/GolangLearnPractice1.git
git@gitee.com:yemingzhi/GolangLearnPractice1.git
yemingzhi
GolangLearnPractice1
golang练习
2bf136849dce

搜索帮助

53164aa7 5694891 3bd8fe86 5694891