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.
54 lines
1.2 KiB
54 lines
1.2 KiB
package service |
|
|
|
import ( |
|
"context" |
|
|
|
"go-common/app/job/main/aegis/model" |
|
"go-common/library/queue/databus" |
|
"go-common/library/xstr" |
|
) |
|
|
|
type baseTaskHandler struct { |
|
*Service |
|
} |
|
|
|
type dynamicTaskHandler struct { |
|
baseTaskHandler |
|
} |
|
|
|
func (h baseTaskHandler) CheckMessage(msg *databus.Message) (taskObj interface{}, err error) { |
|
return h.checkTaskMsg(msg) |
|
} |
|
|
|
func (h baseTaskHandler) HandleMessage(c context.Context, taskObj interface{}) error { |
|
return h.writeTaskToDB(c, taskObj.(*model.Task)) |
|
} |
|
|
|
func (h dynamicTaskHandler) CheckMessage(msg *databus.Message) (taskObj interface{}, err error) { |
|
var c = context.Background() |
|
|
|
if taskObj, err = h.baseTaskHandler.CheckMessage(msg); err != nil { |
|
return |
|
} |
|
|
|
//补充mid相关信息 |
|
task := taskObj.(*model.Task) |
|
res, err := h.dao.Resource(c, task.RID) |
|
if err != nil || res == nil { |
|
return nil, ErrTaskResourceInvalid |
|
} |
|
|
|
task.MID = res.MID |
|
if task.MID > 0 { |
|
groupids, _ := h.dao.UpSpecial(c, task.MID) |
|
task.Group = xstr.JoinInts(groupids) |
|
task.Fans, _ = h.dao.FansCount(c, task.MID) |
|
} |
|
|
|
taskObj = task |
|
return |
|
} |
|
|
|
func (h dynamicTaskHandler) HandleMessage(c context.Context, obj interface{}) error { |
|
return h.baseTaskHandler.HandleMessage(c, obj.(*model.Task)) |
|
}
|
|
|