Browse Source

修改bug

yjp 1 year ago
parent
commit
87c2e2fd1e
1 changed files with 9 additions and 5 deletions
  1. 9 5
      mqtt_binding/mqtt_binding.go

+ 9 - 5
mqtt_binding/mqtt_binding.go

@@ -88,18 +88,22 @@ func (item *BindItem[I, O]) bind(r *router.Router, bindingResponseIdentifier res
 			responseIdentifier = bindingResponseIdentifier
 		}
 
-		var inputModel I
+		var req any
+		if inputType != nil {
+			var inputModel I
+			req = &inputModel
+		}
 
 		// 请求的结构类型不为any
-		if responseIdentifier != nil || inputType != nil {
+		if responseIdentifier != nil || req != nil {
 			// 将请求数据解析到inputModel中
 			if item.OptionalBindingFunc != nil {
-				ok := item.OptionalBindingFunc(mqttClientInstance, routerItem, &inputModel, item.ResponseFunc)
+				ok := item.OptionalBindingFunc(mqttClientInstance, routerItem, req, item.ResponseFunc)
 				if !ok {
 					return
 				}
 			} else {
-				ok := request.BindingJson(mqttClientInstance, routerItem, &inputModel, responseIdentifier, item.ResponseFunc)
+				ok := request.BindingJson(mqttClientInstance, routerItem, req, responseIdentifier, item.ResponseFunc)
 				if !ok {
 					return
 				}
@@ -108,7 +112,7 @@ func (item *BindItem[I, O]) bind(r *router.Router, bindingResponseIdentifier res
 
 		// 执行业务函数
 		if item.BusinessFunc != nil {
-			outputModel, err := item.BusinessFunc(mqttClientInstance, inputModel)
+			outputModel, err := item.BusinessFunc(mqttClientInstance, req)
 			item.ResponseFunc(mqttClientInstance, routerItem, responseIdentifier, outputModel, err)
 			return
 		}