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

实现登录功能
  • 用户登录后判断帐号和密码是否正确,其中帐号可以是用户名、电话、邮箱.
  • 服务器端判断后返回EgoResult结构体对应的JSON数据,其中Status=200表示成功,成功后页面跳转到/index,Status只要不为200都表示登录失败,页面给出提示框告诉用户登录失败
  • 用户输入账号和密码,点击,向服务端发送请求
  • 服务器接收到登录请求
  • 查询数据库表,根据结果设置EgoResult Status值,并以JSON响应给客户端
  • 客户端接收JSON数据后判断Status是否为200
  • 是,则登录成功,否则失败

src/user下创建TbUser.go 实体

package user//对应数据库中用户表
type TbUser struct {//属性首字母大写:1. 要转换为json   2. 可能出现跨包访问Id int64Username stringPassword stringPhone stringEmail stringCreated stringUpdated string
}
package user//对应数据库中用户表
type TbUser struct {//属性首字母大写:1. 要转换为json   2. 可能出现跨包访问Id int64Username stringPassword stringPhone stringEmail stringCreated stringUpdated string
}
  • 在user下新建TbUserDao.go文件,编写数据访问代码
//根据用户名和密码查询,如果返回值为nil表示查询失败,否则成功
func SelByUnPwdDao(un, pwd string) *TbUser{sql := "select * from tb_user where username=? and password=? or email=? and password=? or phone=? and password=?"rows,err:=commons.Dql(sql, un, pwd, un, pwd, un, pwd)if err!=nil{fmt.Println(err)return nil}if rows.Next(){user:=new(TbUser)rows.Scan(&user.Id,&user.Username,&user.Password,&user.Phone,&user.Email,&user.Created,&user.Updated)commons.CloseConn()return user}return nil
}
  • 在user下新建TbUserService.go 编写业务逻辑代码
func LoginService(un,pwd string) (er commons.EgoResult){u:=SelByUnPwdDao(un,pwd)if u!=nil{er.Status=200}else{er.Status=400}return
}
  • 在user下新建TbUserController.go编写控制器代码
//所有user模块的handler
func UserHandler() {http.HandleFunc("/login", loginController)
}//登录
func loginController(w http.ResponseWriter, r *http.Request) {username := r.FormValue("username")password := r.FormValue("password")er := LoginService(username, password)//把结构体转换为json数据b, _ := json.Marshal(er)//设置响应内容为jsonw.Header().Set("Content-Type", "application/json;charset=utf-8")w.Write(b)
}
  • 在main.go中引用UserHandler()让user模块所有控制器生效
func main() {s := http.Server{Addr: ":80"}http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))http.HandleFunc("/", welcome)//用户相关user.UserHandler()s.ListenAndServe()
}

Golang实战项目-B2C电商平台(2)相关推荐

  1. Golang实战项目-B2C电商平台项目(8)

    Golang实战项目-B2C电商平台项目(8) 商品描述新增 商品描述表(tb_item_desc)和商品表(tb_item)具有主外键关系,商品的主键也是商品描述的主键,使用工具函数生成的主键也当作 ...

  2. 【项目精选】基于Spring Boot的综合性B2C电商平台--迷你天猫商城

    迷你天猫商城 点击下载源码 介绍 迷你天猫商城是一个基于Spring Boot的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确 ...

  3. 【图解版】B2C电商平台解决方案

    Xmind下载地址 功能架构+技术架构 关键词,B2C,电商平台,解决方案,架构图 展开图 完全展开图

  4. JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql)

    JAVA毕设项目社区电商平台系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...

  5. 怎么做好B2C电商平台的粉丝深度与精细化运营?

    电商模式的不断发展,电商模式变的越来越多,B2C就是其中一种,可以说是比较主流的电商模式.那么怎么做好B2C电商平台的粉丝深度与精细化运营?下面是易族智汇javashop为您编辑整理的,欢迎阅读,仅供 ...

  6. b2c电商平台建设不能忽略了这些

    电子商务的发展带动了一批又一批传统行业的变革,在很大程度上,电子商务使企业可以用小的成本进入全球化市场,让中小企业有可能拥有和大企业一样的信息资源,提升企业的竞争力.近期,小编发现, "b2 ...

  7. vue实战项目:电商管理系统实现步骤笔记(一)

    vue实战项目 视频地址以及项目文件 一.项目概述 1.1电商项目基本业务概述 1.2电商后台管理系统的功能 1.3电商后台管理系统的开发模式(前后端分离) 1.4电商后台管理系统的技术选型 1.4. ...

  8. 20-Vue实战项目:电商管理系统(Element-UI)总结

    20-Vue实战项目:电商管理系统(Element-UI)总结 结果如下: 这算是我自己跟着视频做的第一个比较完整的可以看的项目了,用时18天,但这视频的总时间是20个小时,自己还是比较的低效率.不多 ...

  9. 软件测试实战项目【电商、银行、商城、金融、医药、电商】

    最近,不少读者托我找一个能实际练手的测试项目.开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难. 这是博主收集了很久才弄到的,希望可以帮助到你. 由于 ...

  10. 如何对一个B2C电商平台数据建模-3-订单

    综述 假定为一个B2C的电商公司 对于一般的零售或者生产公司来说,订单/采购单收入和成本的最大来源.本章主要讨论如何建立一个通用的销售订单和采购单模型 原文见:数据建模3-订单 逻辑模型 订单相关业务 ...

最新文章

  1. vba定义全局变量并赋值_利用VBA代码如何打开任意程序
  2. 关于Java开发需要注意的十二点流程
  3. 免费CSDN积分获取
  4. linux变utf8为sjis命令,【通译】PHP中 文字编码变换时 使用SJIS-win而非SJIS,使用eucJP-win而非EUC-JP...
  5. php修改头像接口,php如何修改头像?
  6. Cadence OrCAD17.2禁止start page启动设置方法
  7. Scratch(三十八):八大行星
  8. 来自一个曾经200斤现在140斤程序员的减肥成功经验(包含个人认为相对安全的饮食法推荐)
  9. 视频教程-深入浅出 Zabbix 4.0(基于 zabbix 4.2)-Linux
  10. Sublime Text的使用代码块安装的模块
  11. Windows下的SSL 应用
  12. Spring Boot 项目 - API 文档搜索引擎
  13. key_t键和ftok函数
  14. python sklearn的训练集测试集根据标签的比例来切分数据集
  15. (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法
  16. Toad for Oracle工具的使用(一)
  17. 飞天云动,站在下一个商业时代的门口
  18. 今年上半年,通信行业发生了哪些事?
  19. 如何克隆服务器系统盘,双硬盘轻松克隆MAC OS X系统全攻略
  20. 美团点评携手巴黎欧莱雅沙龙专属发起“城市新青年”计划

热门文章

  1. 云红包SDK:金融魔方云红包SDK助力摄影大赛玩出新亮点
  2. 印度18年首发一箭31星,包括遥感卫星Cartosat
  3. java 房间管理_Java 集合 之 List 酒店房间管理实例
  4. ARM64 ubuntu20.04根文件系统制作
  5. Quick-Cocos2d-x初学者游戏教程(2) ——【Quick内部的代码结构及相应的原理】
  6. Nginx配置限制IP访问
  7. android模拟器架构,《Hello,World公开课》Android模拟器架构演进
  8. 爬虫——图书馆抢座,Python果然无所不能!
  9. 事务进程ID与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品 问题及想法
  10. TortoiseSVN下载教程和汉化教程