You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.3 KiB
92 lines
2.3 KiB
package service |
|
|
|
import ( |
|
"context" |
|
|
|
"go-common/app/admin/ep/melloi/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
) |
|
|
|
// AddLabel create new label |
|
func (s *Service) AddLabel(label *model.Label) (err error) { |
|
if _, err = s.dao.QueryLabel(label); err == nil { |
|
err = ecode.MelloiLabelExistErr |
|
return |
|
} |
|
label.Active = 1 |
|
return s.dao.AddLabel(label) |
|
} |
|
|
|
// QueryLabel query all labels |
|
func (s *Service) QueryLabel(c context.Context) ([]*model.Label, error) { |
|
return s.dao.QueryLabels(c) |
|
} |
|
|
|
// DeleteLabel delete label by id |
|
func (s *Service) DeleteLabel(id int64) error { |
|
if id <= 0 { |
|
return ecode.RequestErr |
|
} |
|
return s.dao.DeleteLabel(id) |
|
} |
|
|
|
// AddLabelRelation create new label relation |
|
func (s *Service) AddLabelRelation(lr *model.LabelRelation) (err error) { |
|
label := &model.Label{ID: lr.LabelID} |
|
if label, err = s.dao.QueryLabel(label); err != nil { |
|
return ecode.RequestErr |
|
} |
|
|
|
// 存在相同的记录 |
|
if _, err = s.dao.QueryLabelExist(lr); err != nil { |
|
return ecode.MelloiLabelExistErr |
|
} |
|
|
|
// 每个脚本|任务,最多有2个label |
|
var lre []*model.LabelRelation |
|
relation := model.LabelRelation{Type: lr.Type, TargetID: lr.TargetID} |
|
if lre, err = s.dao.QueryLabelRelation(&relation); err != nil { |
|
return err |
|
} |
|
if len(lre) >= 2 { |
|
return ecode.MelloiLabelCountErr |
|
} |
|
|
|
lr.Description = label.Description |
|
lr.Color = label.Color |
|
lr.LabelName = label.Name |
|
lr.Active = 1 |
|
if err = s.dao.AddLabelRelation(lr); err != nil { |
|
log.Error("s.dao.AddLabelRelation err :(%v)", err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// DeleteLabelRelation delete label relation by id |
|
func (s *Service) DeleteLabelRelation(id int64) (err error) { |
|
if id <= 0 { |
|
return ecode.RequestErr |
|
} |
|
// 标签不存在 |
|
var exist bool |
|
if exist, err = s.dao.CheckLabelRelationExist(id); err != nil { |
|
return |
|
} |
|
if !exist { |
|
return ecode.MelloiLabelRelationNotExist |
|
} |
|
|
|
return s.dao.DeleteLabelRelation(id) |
|
} |
|
|
|
// QueryLabelRelation query label relation by id , type, targetid |
|
func (s *Service) QueryLabelRelation(lre *model.LabelRelation) (lr []*model.LabelRelation, err error) { |
|
return s.dao.QueryLabelRelation(lre) |
|
} |
|
|
|
// QueryLabelRelationByIDs query label relation by ids |
|
func (s *Service) QueryLabelRelationByIDs(ids []int64) (lr []*model.LabelRelation, err error) { |
|
return s.dao.QueryLabelRelationByIDs(ids) |
|
}
|
|
|