Golang实战项目-B2C电商平台项目
Posted 旧时星空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang实战项目-B2C电商平台项目相关的知识,希望对你有一定的参考价值。
Golang实战项目-B2C电商平台项目(8)
商品描述新增
- 商品描述表(tb_item_desc)和商品表(tb_item)具有主外键关系,商品的主键也是商品描述的主键,使用工具函数生成的主键也当作商品描述表的主键
- 商品描述中信息来源于页面中KindEditor的富文本编辑框,里面带有html代码直接保存就可以
- 在/item文件夹下新建desc文件夹,并在desc文件夹下新建TbItemDesc.go编写实体
ackage desc
//商品描述
type TbItemDesc struct {
ItemId int
ItemDesc string
Created string
Updated string
}
在/item/desc下新建TbItemDescDao.go
package desc
import (
"commons"
"fmt"
)
//新增描述
func insertDescDao(t TbItemDesc ) int{
count,err:=commons.Dml("insert into tb_item_desc values(?,?,?,?)",t.ItemId,t.ItemDesc,t.Created,t.Updated)
if err!=nil{
fmt.Println(err)
return -1
}
return int(count)
}
在/item/desc下新建TbItemDescService.go,并把新增暴露给其他package
package desc
//新增
func Insert(t TbItemDesc) int{
return insertDescDao(t)
}
在/item/TbItemDao.go中添加删除函数
//根据id删除
func delById(id int) int{
count,err:=commons.Dml("delete from tb_item where id=?",id)
if err!=nil{
fmt.Println(err)
return -1
}
return int(count)
}
修改/item/TbItemService.go中新增商品业务代码
//商品新增
func insetService(f url.Values) (e commons.EgoResult){
var t TbItem
cid,_:=strconv.Atoi(f["Cid"][0])
t.Cid =cid
t.Title = f["Title"][0]
t.SellPoint = f["SellPoint"][0]
price,_:=strconv.Atoi(f["Price"][0])
t.Price = price
num,_:=strconv.Atoi(f["Num"][0])
t.Num=num
t.Image = f["Image"][0]
t.Status = 1
date:=time.Now().Format("2006-01-02 15:04:05")
t.Created =date
t.Updated = date
id:=commons.GenId()
t.Id = id
//商品表新增执行
count :=insertItemDao(t)
if count>0{
//商品描述新增
var tbItemDesc desc.TbItemDesc
tbItemDesc.ItemId = id
tbItemDesc.Created = date
tbItemDesc.Updated = date
tbItemDesc.ItemDesc = f["Desc"][0]
countDesc:=desc.Insert(tbItemDesc)
if countDesc>0{
e.Status = 200
}else{
//删除商品中数据
delById(id)
e.Status = 400
}
}
return
商品修改页面显示信息
- 点击"查询商品"页面中编辑按钮弹出修改页面
- 要求只能选择一行进行修改
- 页面显示的数据是服务端根据客户端传递过来的商品id进行查询,查询时除了查询商品表(tb_item)以外还需要查询商品描述表(tb_item_desc)和商品类目表(tb_item_cat)把这些数据返回json
- 客户端要求商品类目名称(CategoryName)和描述(Desc)
在/item/TbItem.go中添加
//给修改页面使用
type TbItemDescChild struct {
TbItem
CategoryName string
Desc string
}
在/item/TbItemDao.go中添加
//根据主键查询内容
func selByIdDao(id int) *TbItem{
rows,err:= commons.Dql("select * from tb_item where id=?",id)
if err!=nil{
fmt.Println(err)
return nil
}
if rows.Next(){
t := new (TbItem)
var s sql.NullString
rows.Scan(&t.Id, &t.Title, &t.SellPoint, &t.Price, &t.Num, &s, &t.Image, &t.Cid, &t.Status, &t.Created, &t.Updated)
t.Barcode = s.String
return t
}
return nil
}
//根据主键查询内容
func selByIdDao(id int) *TbItem{
rows,err:= commons.Dql("select * from tb_item where id=?",id)
if err!=nil{
fmt.Println(err)
return nil
}
if rows.Next(){
t := new (TbItem)
var s sql.NullString
rows.Scan(&t.Id, &t.Title, &t.SellPoint, &t.Price, &t.Num, &s, &t.Image, &t.Cid, &t.Status, &t.Created, &t.Updated)
t.Barcode = s.String
return t
}
return nil
}
-
在/item/desc/TbItemDescDao.go中添加
//根据主键查询 func selByIdDao(id int) *TbItemDesc{ r,err:=commons.Dql("select * from tb_item_desc where item_id=?",id) if err!=nil{ fmt.Println(err) return nil } if r.Next(){ t := new(TbItemDesc) r.Scan(&t.ItemId,&t.ItemDesc,&t.Created,&t.Updated) return t } return nil }
//根据主键查询 func selByIdDao(id int) *TbItemDesc{ r,err:=commons.Dql("select * from tb_item_desc where item_id=?",id) if err!=nil{ fmt.Println(err) return nil } if r.Next(){ t := new(TbItemDesc) r.Scan(&t.ItemId,&t.ItemDesc,&t.Created,&t.Updated) return t } return nil }
- 在/item/desc/TbItemDescService.go中添加
func SelByIdService(id int) * TbItemDesc{ return selByIdDao(id) }
在/item/TbItemService.go中添加
//修改页面显示信息 func showItemDescCatService(id int) TbItemDescChild{ item := selByIdDao(id) var c TbItemDescChild c.Id = item.Id c.Updated = item.Updated c.Created = item.Created c.Barcode = item.Barcode c.Cid = item.Cid c.Title = item.Title c.SellPoint = item.SellPoint c.Price = item.Price c.Image = item.Image c.Status = item.Status c.Num = item.Num //商品类目 c.CategoryName = cat.ShowCatByIdService(c.Cid).Name //商品描述 c.Desc = desc.SelByIdService(c.Id).ItemDesc return c }
在/item/TbItemController.go中添加
//显示修改页面信息 func showItemDescCatController(w http.ResponseWriter, r *http.Request){ id,_:= strconv.Atoi(r.FormValue("id")) c:=showItemDescCatService(id) b,_:=json.Marshal(c) w.Header().Set(commons.HEADER_CONTENT_TYPE,commons.JSON_HEADER) w.Write(b) } func ItemHandler() { commons.Router.HandleFunc("/showItem", showItemController) commons.Router.HandleFunc("/item/delete", delByIdsController) commons.Router.HandleFunc("/item/instock", instockController) commons.Router.HandleFunc("/item/offstock", offstockController) commons.Router.HandleFunc("/item/imageupload", imagesUploadController) commons.Router.HandleFunc("/item/add", insertControllew) commons.Router.HandleFunc("/item/showItemById", showItemDescCatController) //商品修改页面信息显示 }
以上是关于Golang实战项目-B2C电商平台项目的主要内容,如果未能解决你的问题,请参考以下文章