func LogPushAop(mqClass Class, service, operMethod, operType, operDesc string) gin.HandlerFunc {
return func(c *gin.Context) {
mid := gin_util.GetUid(c)
bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
_ = c.Request.Body.Close()
mbDe := new(MbDetail)
agres, _ := user.GetAgentFromHeader(c)
if agres != nil {
mbDe.Os = agres.SysVersion
mbDe.AppVersion = agres.AppVersion
mbDe.Did = agres.Did
}
mbDe.ClientIp = c.ClientIP()
mbDe.ReQuest = json.RawMessage(bodyBytes)
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))
c.Next()
mainDe, _ := json.Marshal(mbDe)
tmp := LogPushMessage{
Service: service,
OperMethod: operMethod,
OperType: operType,
MainId: mid,
MainBody: isAdmin(mid),
MainDetail: mainDe,
OperDes: operDesc,
ObjectBody: operType,
}
result, ok := c.Get(LogOperationKey)
if ok {
temp := new(CallIn)
_ = copier.Copy(temp, result)
var operTemp []byte
if temp.OperIn != nil {
operTemp, _ = json.Marshal(temp.OperIn)
}
var obTemp []byte
if temp.ObjectIn != nil {
obTemp, _ = json.Marshal(temp.ObjectIn)
}
tmp.OperDetail = operTemp
tmp.ObjectDetail = obTemp
}
New(Class{
Topic: mqClass.Topic,
Group: mqClass.Group,
Broker: mqClass.Broker,
}).SendLogMqMessage(tmp)
}
}