achievement.go 3.5 KB
package models

import (
	"fmt"
	"oppmg/common/log"
	"time"

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

type Achievement struct {
	Id               int64     `orm:"column(id);auto" description:"id 主键"`
	CompanyId        int64     `orm:"column(company_id);null" description:"公司编号 表company.id"`
	DepartmentId     int64     `orm:"column(department_id);null" description:"表department.id 部门id (创建成果指定的部门)"`
	UserCompanyId    int64     `orm:"column(user_company_id)" description:"把握人 表user_company.id  id"`
	ChanceTypeId     int64     `orm:"column(chance_type_id);null" description:"表chance_type.id 机会类型 "`
	AuditTemplateId  int64     `orm:"column(audit_template_id);null" description:"表audit_template.id 所属审批模板编号"`
	SourceContent    string    `orm:"column(source_content);null" description:"成果详情文本"`
	GraspScore       float64   `orm:"column(grasp_score);digits(4);decimals(1)" description:"把握分"`
	UserGraspScore   float64   `orm:"column(user_grasp_score);digits(4);decimals(1)" description:"把握人得分"`
	UpdateAt         time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"`
	CreateAt         time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"`
	ViewTotal        int       `orm:"column(view_total);null" description:"查看总数"`
	CommentTotal     int       `orm:"column(comment_total);null" description:"评论总数"`
	ZanTotal         int       `orm:"column(zan_total);null" description:"点赞总数"`
	Status           int8      `orm:"column(status);null" description:"机会状态 1:开启 2:关闭 0:删除"`
	Images           string    `orm:"column(images);null" description:"图片 json"`
	GraspScoreRemain float64   `orm:"column(grasp_score_remain);digits(4);decimals(1)" `
}

func (t *Achievement) TableName() string {
	return "achievement"
}

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

//机会状态 1:开启 2:关闭 0:删除
const (
	ACHIEVEMENT_STATUS_DEL int8 = 0 //删除
	ACHIEVEMENT_STATUS_YES int8 = 1 //开启
	ACHIEVEMENT_STATUS_NO  int8 = 2 //关闭
)

// AddAchievement insert a new Achievement into database and returns
// last inserted Id on success.
func AddAchievement(m *Achievement, om ...orm.Ormer) (id int64, err error) {
	var o orm.Ormer
	if len(om) > 0 {
		o = om[0]
	} else {
		o = orm.NewOrm()
	}
	id, err = o.Insert(m)
	return
}

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

// UpdateAchievement updates Achievement by Id and returns error if
// the record to be updated doesn't exist
func UpdateAchievementById(m *Achievement, cols []string, om ...orm.Ormer) (err error) {
	var o orm.Ormer
	if len(om) > 0 {
		o = om[0]
	} else {
		o = orm.NewOrm()
	}
	m.UpdateAt = time.Now()
	if len(cols) > 0 {
		cols = append(cols, "UpdateAt")
	}
	var num int64
	if num, err = o.Update(m, cols...); err == nil {
		log.Info("Number of records updated in database:%d", num)
	}

	return
}

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