golang xorm Model 模型文件模板

* Record.go

package models

import (
	"fmt"
	"github.com/go-xorm/xorm"
	"time"
)

// 用户首次登录
type FirstLoginRecord struct {
	Id int64 `xorm:"not null pk autoincr INT(11)"`
	UserID int64 `json:"userid" xorm:"int(11) not null 'userid'"`
	IP   string `json:"logonip" xorm:"varchar(45) not null 'logonip'"`
	CreatedAt time.Time `json:"logontime" xorm:"timestamp not null 'logontime'"`
	UpdatedAt time.Time `json:"logofftime" xorm:"timestamp not null 'logofftime'"`
	Source int `json:"source" xorm:"tinyint(3) not null"`
	IsCharged int `json:"ischargeaccount" xorm:"tinyint(3) unsigned not null 'ischargeaccount'"`
}

func (*FirstLoginRecord) TableName() string {
	return "W_UserFirstLogonRec"
}

func (*FirstLoginRecord) DB() *xorm.Engine {
	return DbDefault()
}

func (t *FirstLoginRecord) Save() error {
	var err error
	var engine = t.DB()
	if t.Id == 0 {
		t.Id, err = engine.Insert(t)
		return err
	}
	var rowsAffected int64
	rowsAffected, err = engine.Id(t.Id).Update(t)
	fmt.Printf("@table: %s: %d rows affected", t.TableName(), rowsAffected)
	return err
}

// 用户id唯一约束
func (this *FirstLoginRecord) AddDistinct() error {
	var err error
	var engine = this.DB()
	var has bool
	var ent = FirstLoginRecord{UserID: this.UserID }
	has, err = engine.Get(&ent)
	if has {
		return nil
	}
	this.Id, err = engine.Insert(this)
	return err
}


http://www.xorm.io/docs/

 

你可能感兴趣的:(golang,golang,xorm)