package service import ( "aps_crm/model" "aps_crm/pkg/ecode" ) type AssignService struct{} type Assign interface { Assign(id int) error } func (AssignService) Assign(memberId int, ids []int, modelType string) int { // check member exist if memberId != 0 { _, err := model.NewUserSearch(nil).SetUserId(memberId).First() if err != nil { return ecode.UserNotExist } } var errCode int switch modelType { case "client": errCode = ClientService{}.Assign(ids, memberId) case "salesLead": errCode = SalesLeadsService{}.Assign(ids, memberId) case "contact": errCode = ContactService{}.Assign(ids, memberId) case "followRecord": errCode = FollowRecordService{}.Assign(ids, memberId) default: errCode = ecode.AssignWrongModelType } if errCode != ecode.OK { return errCode } return ecode.OK }