如果有DeletedAt *time.Time sql:"index",其实是软删除 删除记录 删除记录时,请确保主键字段有值,GORM 会通过主键去删除记录,如果主键为空,GORM 会删除该 model 的所有记录。 // 删除现有记录 db....
go
golang gin 框架实现 oauth2
1. 获取依赖包 go get github.com/gin-gonic/gin go get gopkg.in/oauth2.v3 go get github.com/google/uuid 2. 项目结构和源码 项目地址 3. 主要文件说明 main.go package main import ( "...
Golang导出并下载excel封装
封装了两个方法,数据源为map和struct(map数据源表头和数据需要自己排序) // ExportExcelByMap 导出excel 数据源为[]map func ExportExcelByMap(c *gin.Context, titleList []string, data []map[string]inter...
golang反射自定义tag
golang reflect包实现了反射。动态的获得程序运行时对象的结构和信息。 reflect 包中提供了两个基础的关于反射的函数来获取上述的接口和结构体: func TypeOf(i interface{}) Type func ValueOf(i inter...
golang字符串操作
字符串操作 package main import ( "fmt" "strings" ) func main() { str := "hello world" //contains 是否包含指定字符串 fmt.Println(strings.Contains(str, "hello")) ...
Golang实现定时任务
Golang实现定时任务 package main import ( "fmt" "github.com/robfig/cron/v3" ) func main() { // 每天凌晨0点执行一次:0 0 0 * * ? // 每隔3秒执行一次:*/3 * * * * * // spec := "*/...
go接口返回空数组
go语言nil返回接口时是null,前端同事要求返回[]空数组,代码片段如下: res := g.Map{ "list": menus, "statusOptions": statusOptions, "typeOptions": typeOptions, "fields"...
base64 的四种编码方式
事情的起因是这样的: 在做 siber 项目的时候,有接口使用 []byte 类型数据接收文件流。 // proto 定义 bytes file_data = 1; 但是 siber 是统一使用 json 格式进行的 request body 定义,不能直接传输...
使用Golang 实现websocket进阶封装
package garbage import ( "errors" "log" "net/http" "sync" "time" "github.com/gorilla/websocket" ) const ( // 允许等待的写入时间 writeWait = 10 * t...
Go语言实现websocket服务器
websocket应用场景: 1、即时通信。比如QQ,微信这些。 2、站内消息推送,比如打开qq时会提示xx用户已上线之类在app或者网站内部的消息。 3、实时数据获取。比如地理位置,用户是否在线等需要实时获取的...