1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package models
- import (
- "encoding/json"
- "strconv"
- "time"
- "github.com/astaxie/beego"
- "github.com/astaxie/beego/orm"
- )
- type UserLog struct {
- Id int
- Name string `orm:"index"`
- Time int64
- Operate string
- Data string `orm:type(text)`
- }
- func init() {
- orm.RegisterModel(new(UserLog))
- }
- func (c *UserLog) TableName() string {
- return "tb_log"
- }
- func SaveLog(name string, operate string, v interface{}) (int64, error) {
- buff, _ := json.Marshal(v)
- l := &UserLog{
- Name: name,
- Operate: operate,
- Time: time.Now().Unix(),
- Data: string(buff),
- }
- o := orm.NewOrm()
- return o.Insert(l)
- }
- func QueryLog(name string, begin_ts int64, end_ts int64, operate string, count int) []*UserLog {
- var logs []*UserLog
- sql := "SELECT * from tb_log"
- where := ""
- if name != "" {
- if where == "" {
- where = " name = '" + name + "'"
- } else {
- where += " and name = '" + name + "'"
- }
- }
- if begin_ts != 0 {
- if where == "" {
- where = " time >= " + strconv.Itoa(int(begin_ts))
- } else {
- where += " and time >= " + strconv.Itoa(int(begin_ts))
- }
- }
- if end_ts != 0 {
- if where == "" {
- where = " time <= " + strconv.Itoa(int(end_ts))
- } else {
- where += " and time <= " + strconv.Itoa(int(end_ts))
- }
- }
- if operate != "" {
- if where == "" {
- where = " operate = '" + operate + "'"
- } else {
- where += " and operate = '" + operate + "'"
- }
- }
- if where != "" {
- sql += " where " + where
- }
- sql += " order by time desc"
- if count > 0 {
- sql += " limit " + strconv.Itoa(count)
- }
- o := orm.NewOrm()
- _, err := o.Raw(sql).QueryRows(&logs)
- if err != nil {
- beego.Info(sql)
- beego.Warn("query log error, info: ", err.Error())
- }
- return logs
- }
|