golang实战项目-b2c电商平台项目(代码片段)

旧时星空 旧时星空     2023-01-05     336

关键词:

Golang实战项目-B2C电商平台项目(7)

商品新增

  • 商品新增时需要新增的是两个表的数据tb_item和tb_item_desc表(tb_item_param规格参数暂时不考虑),在本小节中只新增tb_item表中数据,下一小节新增商品描述
  • 新增成功后服务端返回EgoResult对应的json数据
  • 页面接收数据后判断,如果Status为200,清空页面数据.

在TbItemDao.go中编写函数实现对tb_item表的新增

//新增
func insertItemDao(t TbItem) int
	count,err:=commons.Dml("insert into tb_item values(?,?,?,?,?,?,?,?,?,?,?)",t.Id,t.Title,t.SellPoint,t.Price,t.Num,t.Barcode,t.Image,t.Cid,t.Status,t.Created,t.Updated)
	if err!=nil
		return -1
	
	return int(count)

在commons文件夹下新建Commons.go文件,并编写工具函数,实现生成主键


import (
	"time"
	"math/rand"
	"strconv"
)
//生成数据库主键
func GenId() int
	rand.Seed(time.Now().UnixNano())
	id,_:=strconv.Atoi(strconv.Itoa(rand.Intn(10000))+strconv.Itoa(int(time.Now().Unix())))
	return id

在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
		e.Status = 200
	
	return

  • 在TbItemController.go中添加函数实现商品新增,并添加映射
//商品新增
func insertControllew (w http.ResponseWriter, r *http.Request) 
	//需要先进行解析
	r.ParseForm()
	er:=insetService(r.Form)
	b,_:=json.Marshal(er)
	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) //商品新增


golang实战项目-b2c电商平台项目(代码片段)

Golang实战项目-B2C电商平台项目(5)实现商品上架本质是修改tb_item表中status=1之前在完成商品删除时已经在TbItemDao.go中编写了修改status值的函数,直接复用即可根据页面中内容,客户端给服务端发起请求后要求服务器端返回数据已... 查看详情

golang实战项目-b2c电商平台项目(代码片段)

Golang实战项目-B2C电商平台项目(4)多表查询正确显示叶子类目查询完商品信息后可以通过商品信息中Cid做为商品类目表的主键值进行查询页面中最终数据的效果和TbItem只差一个属性所以可以通过组合的形式实现typeTbItemChildstruct TbIt... 查看详情

golang实战项目-b2c电商平台项目(代码片段)

Golang实战项目-B2C电商平台项目(6)商品新增中上传图片商品新增中上传图片使用的是KindEditor的多文件上传组件.文件上传为异步上传方式.可以上传多个文件.当文件上传后要求服务器端返回数据格式如下.应该是map转换为json而不应... 查看详情

golang实战项目-b2c电商平台项目(代码片段)

Golang实战项目-B2C电商平台项目(7)商品新增商品新增时需要新增的是两个表的数据tb_item和tb_item_desc表(tb_item_param规格参数暂时不考虑),在本小节中只新增tb_item表中数据,下一小节新增商品描述新增成功后服务端返回EgoResult对应的json... 查看详情

golang实战项目-b2c电商平台项目(代码片段)

Golang实战项目-B2C电商平台项目(8)商品描述新增商品描述表(tb_item_desc)和商品表(tb_item)具有主外键关系,商品的主键也是商品描述的主键,使用工具函数生成的主键也当作商品描述表的主键商品描述中信息来源于页面中KindEditor的富文... 查看详情

golang实战项目-b2c电商平台(代码片段)

Golang实战项目-B2C电商平台(2)实现登录功能用户登录后判断帐号和密码是否正确,其中帐号可以是用户名、电话、邮箱.服务器端判断后返回EgoResult结构体对应的JSON数据,其中Status=200表示成功,成功后页面跳转到/index,Status只要不为... 查看详情

golang项目实战简明指南(代码片段)

原文地址开发环境搭建golang的开发环境搭建比较简单,由于是编译型语言,写好golang源码后,只需要执行gobuild就能将源码编译成对应平台(本文中默认为linux)上的可执行程序。本文不再赘述如何搭建golang开发环境,只说明下需要... 查看详情

golang项目实战简明指南(代码片段)

开发环境搭建golang的开发环境搭建比较简单,由于是编译型语言,写好golang源码后,只需要执行 gobuild 就能将源码编译成对应平台(本文中默认为linux)上的可执行程序。本文不再赘述如何搭建golang开发环境,只说... 查看详情

9-电商项目实战(代码片段)

1-电商项目分析报告;2-电商项目实战。导包及基础设置importreimportosimportglobimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfrompandasimportSeries,DataFrameimportseabornassnsfromsklearn.linear_modelimportLinearRe 查看详情

reactnative电商项目实战——1.创建项目(代码片段)

ReactNative简称RN是FaceBook发布的跨平台开发框架,它的设计理念是:使用ReactNative开发,既拥有Native的良好人机交互体验,又保留了React开发效率。一、为什么选择ReactNative在ReactNative发布的短短几年之内,已经有... 查看详情

reactnative电商项目实战——开篇(代码片段)

ReactNative简称RN是FaceBook发布的跨平台开发框架,它的设计理念是:使用ReactNative开发,既拥有Native的良好人机交互体验,又保留了React开发效率。RN技术已经非常成熟,我们没什么理由拒绝使用RN搭建一个完整的... 查看详情

[vue项目实战]电商系统项目初始化(代码片段)

电商系统项目概述电商项目基本业务概述电商后台管理系统的功能电商后台管理系统的开发模式(前后端分离)电商后台管理系统的技术选型1.前端项目技术栈2.后端技术栈前端项目初始化123通过`vueui`来初始化项目4.配置element... 查看详情

go实战|电商平台项目结构及配置文件初始化(代码片段)

文章目录1.必备环境与推荐软件1.1必备环境1.2推荐软件2.项目初始化3.配置文件初始化3.1config.ini3.2conf.go3.3main函数1.必备环境与推荐软件1.1必备环境mysqlredisgolang1.2推荐软件golandnavicatrunapi2.项目初始化创建项目创建文件夹项目结构mal... 查看详情

golang入门到项目实战|golang指向数组的指针(代码片段)

定义语法varptr[MAX]*int;表示数据里面的元素的类型是指针类型实例演示packagemainimport"fmt"constMAXint=3funcmain()a:=[]int1,3,5variintvarptr[MAX]*intfmt.Println(ptr)//这个打印出来的是[<nil><nil><nil>]fo 查看详情

java由浅入深开发企业级电商项目大牛实战开发电商后台项目实战视频教程

第1章课程介绍(实战本项目需具备Java,SSM,Linux等基础)本章详细介绍Java服务端课程的内容,然后还介绍下课程安排,最后会讲解一下高大上的架构是如何一步一步从一台服务器演变到高性能、高并发、高可用架构的过程并讲... 查看详情

golang入门到项目实战|golang函数(代码片段)

golang函数简介函数的go语言中的一级公民,我们把所有的功能单元都定义在函数中,可以重复使用。函数包含函数的名称、参数列表和返回值类型,这些构成了函数的签名(signature)。go语言中函数特性go语言... 查看详情

golang入门到项目实战|golang继承(代码片段)

golang本质上没有oop的概念,也没有继承的概念,但是可以通过结构体嵌套实现这个特性。例如packagemainimport"fmt"typeAnimalstructnamestringageintfunc(aAnimal)eat()fmt.Println("eat...")func(aAnimal)sleep()fmt.Println("sleep")typeDogstr... 查看详情

golang入门到项目实战|golang指针(代码片段)

Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无需拷贝数据。类型指针不能进行偏移和运算。Go语言中的指针操作非常简单&#... 查看详情