|
@@ -3,6 +3,7 @@ package ng_cws_client
|
|
|
import (
|
|
import (
|
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
"errors"
|
|
"errors"
|
|
|
|
|
+ "git.sxidc.com/go-tools/utils/slice"
|
|
|
"git.sxidc.com/service-supports/cws-sdk/service"
|
|
"git.sxidc.com/service-supports/cws-sdk/service"
|
|
|
"git.sxidc.com/service-supports/cws-sdk/service/request"
|
|
"git.sxidc.com/service-supports/cws-sdk/service/request"
|
|
|
"git.sxidc.com/service-supports/cws-sdk/service/response"
|
|
"git.sxidc.com/service-supports/cws-sdk/service/response"
|
|
@@ -335,3 +336,33 @@ func GetUserStructureID(prepareInfos []response.PrepareInfo) (string, error) {
|
|
|
}
|
|
}
|
|
|
return "", errors.New("数据异常未找到userStructureId")
|
|
return "", errors.New("数据异常未找到userStructureId")
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func ExtractDynamicValueMap(inputModelMap map[string]any, inputParamStruct any) (map[string]any, error) {
|
|
|
|
|
+ jsonBytes, err := json.Marshal(inputParamStruct)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ paramMap := make(map[string]any)
|
|
|
|
|
+ err = json.Unmarshal(jsonBytes, ¶mMap)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ allValues := make([]string, 0)
|
|
|
|
|
+ paramValues := make([]string, 0)
|
|
|
|
|
+ for k := range inputModelMap {
|
|
|
|
|
+ allValues = append(allValues, k)
|
|
|
|
|
+ }
|
|
|
|
|
+ for k := range paramMap {
|
|
|
|
|
+ paramValues = append(paramValues, k)
|
|
|
|
|
+ }
|
|
|
|
|
+ extraKeys := slice.ExtractASubBSetValue(allValues, paramValues)
|
|
|
|
|
+
|
|
|
|
|
+ dynamicValueMap := make(map[string]any)
|
|
|
|
|
+ for _, key := range extraKeys {
|
|
|
|
|
+ if inputModelAny, ok := inputModelMap[key]; ok {
|
|
|
|
|
+ dynamicValueMap[key] = inputModelAny
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return dynamicValueMap, nil
|
|
|
|
|
+}
|