Giter Site home page Giter Site logo

cocainecong / gin-mall Goto Github PK

View Code? Open in Web Editor NEW
438.0 438.0 126.0 60.13 MB

基于 gin+gorm+redis+mysql 读写分离的电子商城,包括 JWT 鉴权,CORS跨域,AES 对称加密,引入ELK体系方便日志查看,jaeger进行trace查看,skywalking进行检测,使用docker容器化部署

Go 98.54% Dockerfile 0.29% Makefile 1.17%
aes-encryption cors docker docker-compose elasticsearch elk gin go golang gorm jaeger jwt kibana mysql redis skywalking

gin-mall's Introduction

gin-mall's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gin-mall's Issues

我看了下里面关于事务的操作好像有点问题

    据我所知,事务是基于数据库连接的。代码里面在支付订单的逻辑里面,使用 tx := orderDao.Begin()开启了一个事务,接下来的sql应该都使用返回的这个tx去做,这样才能回滚或者提交。但是代码里面使用了这样的语句去更新用户余额 err = userDao.UpdateUserById(uId, user),按我的理解这样的操作会从连接池里面取其他空闲连接去做更新,是没有在上面开启的那个事务中的,我看gorm官方文档交事务的时候也说的是要使用tx去做。
   像代码里那样写真的有效么(我觉得无效,也可能是我的理解错误),或者说作者你是java或是其他语言学的go,其他语言可以这样写,我只是想求证一下自己的疑问。

单例

为什么service内的对象都采用单例模式,这样都用一个实例并发安全吗?多个请求过来都操作同一个实例吗

编译出错

windows系统

runtime/metrics

2023/10/13 11:21:28 open operator\common.go: file does not exist

github.com/apache/skywalking-go/agent/reporter

2023/10/13 11:21:49 open reporter\api.go: file does not exist
make: *** [Makefile:42: build] Error 1
显示找不到这两个文件

数据库读写操作主从配置都是一个数据库是不是有问题哇?

pathRead := strings.Join([]string{conf.DbUser, ":", conf.DbPassWord, "@tcp(", conf.DbHost, ":", conf.DbPort, ")/", conf.DbName, "?charset=utf8&parseTime=true"}, "")
pathWrite := strings.Join([]string{conf.DbUser, ":", conf.DbPassWord, "@tcp(", conf.DbHost, ":", conf.DbPort, ")/", conf.DbName, "?charset=utf8&parseTime=true"}, "")

repository/db/dao/init.go中的InitMySQL

Error处理部分的疑问

你好,我最近在学习gin-mall,我想问一下v3版本中错误的处理(个人有点没看懂),不是很明白在已经有RespError的情况下还要再创建一个ErrorResponse(),我不明白其中的validator,ValidtionErrors,*json.UnmarshalTypeError的处理的作用。之前个人写项目的时候都是直接respError+c.json绑定在一起发送,所以想要问一下这么设计的原因,谢谢

Dependency package error

go mod tidy
go: downloading github.com/elastic/go-elasticsearch v0.0.0
go: github.com/CocaineCong/gin-mall/repository/es imports
github.com/CocaineCong/eslogrus imports
github.com/elastic/go-elasticsearch: reading github.com/elastic/go-elasticsearch/go.mod at revision v0.0.0: unknown revision v0.0.0

Gorm

请问一下设置dao层对性能会更好
我现在是直接定义一个全局的var Db *gorm.DB
然后到service中再实例化

func (u *WebUserService) Login(param models.WebUserLoginParam) uint64 {
	var user models.User
	global.Db.Where("username = ? and password = ?", param.Username, param.Password).First(&user)
	return user.Id
}

Token

I get some problem with the token confirmation when I need to login. PLZ any solution !
"msg": "Token鉴权失败"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.