chance_type.go 3.5 KB
package models

import (
	"fmt"
	"time"

	"github.com/astaxie/beego/orm"
)

type ChanceType struct {
	Id        int       `orm:"column(id);auto"`
	Name      string    `orm:"column(name);size(50)" description:"机会类型名称"`
	Icon      string    `orm:"column(icon);size(500);null" description:"图标地址"`
	Code      string    `orm:"column(code);size(50)" description:"编码"`
	CompanyId int       `orm:"column(company_id)" description:"表company.id 公司编号"`
	SortNum   int       `orm:"column(sort_num);null" description:"序号 公司下的序号"`
	CreateAt  time.Time `orm:"column(create_at);type(timestamp);null" description:"创建时间 "`
	UpdateAt  time.Time `orm:"column(update_at);type(timestamp);null" description:"更新时间 "`
}

func (t *ChanceType) TableName() string {
	return "chance_type"
}

func init() {
	orm.RegisterModel(new(ChanceType))
}

// AddChanceType insert a new ChanceType into database and returns
// last inserted Id on success.
func AddChanceType(m *ChanceType) (id int64, err error) {
	o := orm.NewOrm()
	id, err = o.Insert(m)
	return
}

// GetChanceTypeById retrieves ChanceType by Id. Returns error if
// Id doesn't exist
func GetChanceTypeById(id int) (v *ChanceType, err error) {
	o := orm.NewOrm()
	v = &ChanceType{Id: id}
	if err = o.Read(v); err == nil {
		return v, nil
	}
	return nil, err
}

// UpdateChanceType updates ChanceType by Id and returns error if
// the record to be updated doesn't exist
func UpdateChanceTypeById(m *ChanceType) (err error) {
	o := orm.NewOrm()
	v := ChanceType{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
}

// DeleteChanceType deletes ChanceType by Id and returns error if
// the record to be deleted doesn't exist
func DeleteChanceType(id int) (err error) {
	o := orm.NewOrm()
	v := ChanceType{Id: id}
	// ascertain id exists in the database
	if err = o.Read(&v); err == nil {
		var num int64
		if num, err = o.Delete(&ChanceType{Id: id}); err == nil {
			fmt.Println("Number of records deleted in database:", num)
		}
	}
	return
}

func GetChanceTypeByCompany(companyId int) (v []*ChanceType, err error) {
	o := orm.NewOrm()
	sql := "select * from chance_type where company_id=? order by sort_num"
	if _, err = o.Raw(sql, companyId).QueryRows(&v); err == nil {
		return
	}
	return
}

func GetChanceTypeByCode(companyId int64, code string) (v *ChanceType, err error) {
	o := orm.NewOrm()
	sql := "select * from chance_type where binary code=? and company_id=?"
	if err = o.Raw(sql, code, companyId).QueryRow(&v); err == nil {
		return
	}
	return
}

func GetChanceTypeByName(companyId int64, name string) (v *ChanceType, err error) {
	o := orm.NewOrm()
	sql := "select * from chance_type where binary name=? and company_id=?"
	if err = o.Raw(sql, name, companyId).QueryRow(&v); err == nil {
		return
	}
	return
}

//获取一级分类最大序号
func GetChanceTypeMaxSort(companyId int64) (v *ChanceType, err error) {
	o := orm.NewOrm()
	sql := "select max(sort_num) sort_num from chance_type where company_id=?"
	if err = o.Raw(sql, companyId).QueryRow(&v); err == nil {
		return
	}
	return
}

// GetChanceTypeById retrieves ChanceType by Id. Returns error if
// Id doesn't exist
func GetChanceTypeByIds(ids []int) (data []ChanceType, err error) {
	data = []ChanceType{}
	if len(ids) == 0 {
		return data, nil
	}
	o := orm.NewOrm()
	_, err = o.QueryTable(&ChanceType{}).
		Filter("id__in", ids).
		All(&data)
	return data, err
}