zhangjidong hace 2 días
padre
commit
2672b0dabe
Se han modificado 2 ficheros con 154 adiciones y 1 borrados
  1. 1 1
      go.mod
  2. 153 0
      models/aice_users.go

+ 1 - 1
go.mod

@@ -1,6 +1,6 @@
 module think-go
 
-go 1.26
+go 1.25
 
 require github.com/beego/beego/v2 v2.1.0
 

+ 153 - 0
models/aice_users.go

@@ -0,0 +1,153 @@
+package models
+
+import (
+	"errors"
+	"fmt"
+	"reflect"
+	"strings"
+
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type AiceUsers struct {
+	Id       int    `orm:"column(userid);pk"`
+	Email    string `orm:"column(email);size(255);null"`
+	Token    string `orm:"column(token);size(255);null"`
+	Username string `orm:"column(username);size(255);null"`
+	Address  string `orm:"column(address);size(255);null"`
+}
+
+func (t *AiceUsers) TableName() string {
+	return "aice_users"
+}
+
+func init() {
+	orm.RegisterModel(new(AiceUsers))
+}
+
+// AddAiceUsers insert a new AiceUsers into database and returns
+// last inserted Id on success.
+func AddAiceUsers(m *AiceUsers) (id int64, err error) {
+	o := orm.NewOrm()
+	id, err = o.Insert(m)
+	return
+}
+
+// GetAiceUsersById retrieves AiceUsers by Id. Returns error if
+// Id doesn't exist
+func GetAiceUsersById(id int) (v *AiceUsers, err error) {
+	o := orm.NewOrm()
+	v = &AiceUsers{Id: id}
+	if err = o.Read(v); err == nil {
+		return v, nil
+	}
+	return nil, err
+}
+
+// GetAllAiceUsers retrieves all AiceUsers matches certain condition. Returns empty list if
+// no records exist
+func GetAllAiceUsers(query map[string]string, fields []string, sortby []string, order []string,
+	offset int64, limit int64) (ml []interface{}, err error) {
+	o := orm.NewOrm()
+	qs := o.QueryTable(new(AiceUsers))
+	// query k=v
+	for k, v := range query {
+		// rewrite dot-notation to Object__Attribute
+		k = strings.Replace(k, ".", "__", -1)
+		if strings.Contains(k, "isnull") {
+			qs = qs.Filter(k, (v == "true" || v == "1"))
+		} else {
+			qs = qs.Filter(k, v)
+		}
+	}
+	// order by:
+	var sortFields []string
+	if len(sortby) != 0 {
+		if len(sortby) == len(order) {
+			// 1) for each sort field, there is an associated order
+			for i, v := range sortby {
+				orderby := ""
+				if order[i] == "desc" {
+					orderby = "-" + v
+				} else if order[i] == "asc" {
+					orderby = v
+				} else {
+					return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
+				}
+				sortFields = append(sortFields, orderby)
+			}
+			qs = qs.OrderBy(sortFields...)
+		} else if len(sortby) != len(order) && len(order) == 1 {
+			// 2) there is exactly one order, all the sorted fields will be sorted by this order
+			for _, v := range sortby {
+				orderby := ""
+				if order[0] == "desc" {
+					orderby = "-" + v
+				} else if order[0] == "asc" {
+					orderby = v
+				} else {
+					return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
+				}
+				sortFields = append(sortFields, orderby)
+			}
+		} else if len(sortby) != len(order) && len(order) != 1 {
+			return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
+		}
+	} else {
+		if len(order) != 0 {
+			return nil, errors.New("Error: unused 'order' fields")
+		}
+	}
+
+	var l []AiceUsers
+	qs = qs.OrderBy(sortFields...)
+	if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
+		if len(fields) == 0 {
+			for _, v := range l {
+				ml = append(ml, v)
+			}
+		} else {
+			// trim unused fields
+			for _, v := range l {
+				m := make(map[string]interface{})
+				val := reflect.ValueOf(v)
+				for _, fname := range fields {
+					m[fname] = val.FieldByName(fname).Interface()
+				}
+				ml = append(ml, m)
+			}
+		}
+		return ml, nil
+	}
+	return nil, err
+}
+
+// UpdateAiceUsers updates AiceUsers by Id and returns error if
+// the record to be updated doesn't exist
+func UpdateAiceUsersById(m *AiceUsers) (err error) {
+	o := orm.NewOrm()
+	v := AiceUsers{Id: m.Id}
+	// ascertain id exists in the database
+	if err = o.Read(&v); err == nil {
+		var num int64
+		if num, err = o.Update(m); err == nil {
+			fmt.Println("Number of records updated in database:", num)
+		}
+	}
+	return
+}
+
+// DeleteAiceUsers deletes AiceUsers by Id and returns error if
+// the record to be deleted doesn't exist
+func DeleteAiceUsers(id int) (err error) {
+	o := orm.NewOrm()
+	v := AiceUsers{Id: id}
+	// ascertain id exists in the database
+	if err = o.Read(&v); err == nil {
+		var num int64
+		if num, err = o.Delete(&AiceUsers{Id: id}); err == nil {
+			fmt.Println("Number of records deleted in database:", num)
+		}
+	}
+	return
+}