Skip to content

Instantly share code, notes, and snippets.

@tkc
Created August 11, 2016 15:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tkc/404eadaece205d68e98d31c80700a874 to your computer and use it in GitHub Desktop.
Save tkc/404eadaece205d68e98d31c80700a874 to your computer and use it in GitHub Desktop.
package userModel
import (
"time"
"github.com/tkc/go-echo-server-sandbox/db"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
Id int64
Name string
Age int
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time
}
var users [] User
func (u *User) GetName() string {
return u.Name
}
func (u *User) Migrate() {
db := db.Connect()
db.DropTableIfExists(&User{})
db.AutoMigrate(&User{})
}
func (u *User) All() []User {
db := db.Connect()
db.AutoMigrate(&User{})
db.Order("id desc,name, age").Find(&users)
return users
}
func (u *User) Create(name string, age int) User {
db := db.Connect()
user := User{Name: name, Age:age}
db.Create(&user)
return user
}
func (u *User) UpdateName(id int64, name string) User {
db := db.Connect()
user := User{Id:id}
db.Model(&user).Update("name", name)
return user
}
func (u *User) Fetch(id int64) User {
db := db.Connect()
user := User{Id:id}
db.First(&user)
return user
}
func (u *User) FetchByName(name string) []User {
db := db.Connect()
db.Where("name = ?", name).First(&users)
return users
}
func (u *User) FetchByLikeName(name string) []User {
db := db.Connect()
db.Where("name LIKE ?", "%" + name + "% ").Find(&users)
return users
}
func (u *User) FetchByNameAndAge(name string, age int) []User {
db := db.Connect()
db.Where(&User{Name: name, Age: age}).First(&users)
return users
}
func (u *User) MapByName(name string) []User {
db := db.Connect()
db.Where(map[string]interface{}{"name": "test"}).Find(&users)
return users
}
func (u *User) Delete(id int64) {
db := db.Connect()
user := User{Id:id}
db.Delete(&user)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment