go-common/app/admin/ep/marthe/dao/mysql_bugly_issue.go
2019-04-22 18:49:16 +08:00

105 lines
3.3 KiB
Go

package dao
import (
"go-common/app/admin/ep/marthe/model"
"go-common/library/ecode"
pkgerr "github.com/pkg/errors"
)
// GetBuglyIssue Get Issue Record.
func (d *Dao) GetBuglyIssue(issueNo, version string) (buglyIssue *model.BuglyIssue, err error) {
buglyIssue = &model.BuglyIssue{}
if err = d.db.Where("issue_no = ? and version = ?", issueNo, version).First(buglyIssue).Error; err != nil {
if err == ecode.NothingFound {
err = nil
} else {
err = pkgerr.WithStack(err)
}
}
return
}
// UpdateBuglyIssue Update Issue Record.
func (d *Dao) UpdateBuglyIssue(buglyIssue *model.BuglyIssue) error {
return pkgerr.WithStack(d.db.Model(&model.BuglyIssue{}).Where("issue_no = ? and version = ?", buglyIssue.IssueNo, buglyIssue.Version).UpdateColumn(map[string]interface{}{
"last_time": buglyIssue.LastTime,
"happen_times": buglyIssue.HappenTimes,
"user_times": buglyIssue.UserTimes,
}).Error)
}
// InsertBuglyIssue Insert Issue Record.
func (d *Dao) InsertBuglyIssue(buglyIssue *model.BuglyIssue) (err error) {
return pkgerr.WithStack(d.db.Model(&model.BuglyIssue{}).Create(buglyIssue).Error)
}
// GetBuglyIssuesByFilterSQL Get Bugly Issues By Filter SQL.
func (d *Dao) GetBuglyIssuesByFilterSQL(issueFilterSQL string) (buglyIssues []*model.BuglyIssue, err error) {
if err = d.db.Raw(issueFilterSQL).Order("id asc").Find(&buglyIssues).Error; err != nil {
if err == ecode.NothingFound {
err = nil
} else {
err = pkgerr.WithStack(err)
}
}
return
}
// UpdateBuglyIssueTapdBugID Update Issue Record Tapd Bug ID.
func (d *Dao) UpdateBuglyIssueTapdBugID(id int64, tapdBugID string) error {
return pkgerr.WithStack(d.db.Model(&model.BuglyIssue{}).Where("id=?", id).Update("tapd_bug_id", tapdBugID).Error)
}
// FindBuglyIssues Find Bugly Issues.
func (d *Dao) FindBuglyIssues(req *model.QueryBuglyIssueRequest) (total int64, buglyIssues []*model.BuglyIssue, err error) {
gDB := d.db.Model(&model.BuglyIssue{})
if req.IssueNo != "" {
gDB = gDB.Where("issue_no = ?", req.IssueNo)
}
if req.Title != "" {
gDB = gDB.Where("title like ?", _wildcards+req.Title+_wildcards)
}
if req.ExceptionMsg != "" {
gDB = gDB.Where("exception_msg like ?", _wildcards+req.ExceptionMsg+_wildcards)
}
if req.KeyStack != "" {
gDB = gDB.Where("key_stack like ?", _wildcards+req.KeyStack+_wildcards)
}
if req.Detail != "" {
gDB = gDB.Where("detail like ?", _wildcards+req.Detail+_wildcards)
}
if req.Tags != "" {
gDB = gDB.Where("tags like ?", _wildcards+req.Tags+_wildcards)
}
if req.Version != "" {
gDB = gDB.Where("version like ?", _wildcards+req.Version+_wildcards)
}
if req.ProjectID != "" {
gDB = gDB.Where("project_id like ?", _wildcards+req.ProjectID+_wildcards)
}
if req.TapdBugID != "" {
gDB = gDB.Where("tapd_bug_id = ?", req.TapdBugID)
}
if err = pkgerr.WithStack(gDB.Count(&total).Error); err != nil {
return
}
err = pkgerr.WithStack(gDB.Order("mtime desc").Offset((req.PageNum - 1) * req.PageSize).Limit(req.PageSize).Find(&buglyIssues).Error)
return
}
// GetBuglyIssuesHasInTapd Get Bugly Issues Has In Tapd.
func (d *Dao) GetBuglyIssuesHasInTapd() (buglyIssues []*model.BuglyIssue, err error) {
if err = d.db.Where("tapd_bug_id<>''").Find(&buglyIssues).Error; err != nil {
if err == ecode.NothingFound {
err = nil
} else {
err = pkgerr.WithStack(err)
}
}
return
}