1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package upcrm
- import (
- "time"
- "go-common/app/admin/main/up/model/upcrmmodel"
- "go-common/library/log"
- "github.com/jinzhu/gorm"
- )
- const (
- upstatshistory = "up_stats_history"
- //ISO8601DATE only date format
- ISO8601DATE = "2006-01-02"
- )
- //GetUpStatLastDate get last update date from db
- func (d *Dao) GetUpStatLastDate(date time.Time) (lastday time.Time, err error) {
- var lasthistory upcrmmodel.UpStatsHistory
- err = d.crmdb.Table(upstatshistory).Select("generate_date").Order("generate_date desc").Limit(1).Find(&lasthistory).Error
- if err != nil {
- log.Error("get last date fail for up stat history, err=%+v", err)
- return
- }
- lastday = lasthistory.GenerateDate.Time()
- return
- }
- //QueryYesterday query yesterday db
- func (d *Dao) QueryYesterday(date time.Time) (res []*upcrmmodel.UpStatsHistory, err error) {
- err = d.crmdb.Table(upstatshistory).Where("generate_date = ? AND type in ( ?, ?, ? )", date.Format(ISO8601DATE), upcrmmodel.ActivityType, upcrmmodel.IncrType, upcrmmodel.TotalType).Find(&res).Error
- if err == gorm.ErrRecordNotFound {
- err = nil
- return
- }
- if err != nil {
- return nil, err
- }
- return
- }
- //QueryTrend query db
- func (d *Dao) QueryTrend(statType int, currentDate time.Time, days int) (res []*upcrmmodel.UpStatsHistory, err error) {
- // 这种type有3种子类型,需要加起来
- if statType == upcrmmodel.ActivityType {
- days *= 3
- }
- err = d.crmdb.Table(upstatshistory).Where("type = ? AND generate_date <=?", statType, currentDate.Format(ISO8601DATE)).Order("generate_date desc").Limit(days).Find(&res).Error
- if err == gorm.ErrRecordNotFound {
- err = nil
- return
- }
- if err != nil {
- return nil, err
- }
- return
- }
- //QueryDetail query db
- func (d *Dao) QueryDetail(startDate time.Time, endDate time.Time) (res []*upcrmmodel.UpStatsHistory, err error) {
- err = d.crmdb.Table(upstatshistory).Where("generate_date BETWEEN ? AND ?", startDate.Format(ISO8601DATE), endDate.Format(ISO8601DATE)).Order("generate_date Desc").Find(&res).Error
- if err == gorm.ErrRecordNotFound {
- err = nil
- return
- }
- if err != nil {
- return nil, err
- }
- return
- }
|