...
|
...
|
@@ -30,26 +30,25 @@ func (qe QueryError) Error() string { |
|
|
return str
|
|
|
}
|
|
|
|
|
|
/*QueryResult 单据查询结果
|
|
|
/*BillQueryResult 单据查询结果
|
|
|
当接口调用失败时得到的json 结构对应[][]QueryError,如:
|
|
|
[[{"Result":{"ResponseStatus":{"Errors":[{"Message":"元数据中标识为FUseOrg的字段不存在"}]}}}]]
|
|
|
当接口调用成功的得到的json结构对应[][]interface{},如:
|
|
|
[["xxx","abc",2345]]
|
|
|
*/
|
|
|
type QueryResult struct {
|
|
|
type BillQueryResult struct {
|
|
|
FieldKeys []string //对应的键名 ,注意数据的顺序
|
|
|
Buf []byte //原始的数据byte
|
|
|
|
|
|
}
|
|
|
|
|
|
func newQueryResult(buf []byte, keys string) *QueryResult {
|
|
|
return &QueryResult{
|
|
|
func newBillQueryResult(buf []byte, keys string) *BillQueryResult {
|
|
|
return &BillQueryResult{
|
|
|
Buf: buf,
|
|
|
FieldKeys: strings.Split(keys, ","),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func (result *QueryResult) ToMapString() []map[string]string {
|
|
|
func (result *BillQueryResult) ToMapString() []map[string]string {
|
|
|
if result.IsError() {
|
|
|
return nil
|
|
|
}
|
...
|
...
|
@@ -70,7 +69,7 @@ func (result *QueryResult) ToMapString() []map[string]string { |
|
|
return mapResult
|
|
|
}
|
|
|
|
|
|
func (result *QueryResult) ToMap() []map[string]interface{} {
|
|
|
func (result *BillQueryResult) ToMap() []map[string]interface{} {
|
|
|
if result.IsError() {
|
|
|
return nil
|
|
|
}
|
...
|
...
|
@@ -91,7 +90,7 @@ func (result *QueryResult) ToMap() []map[string]interface{} { |
|
|
return mapResult
|
|
|
}
|
|
|
|
|
|
func (result *QueryResult) Error() error {
|
|
|
func (result *BillQueryResult) Error() error {
|
|
|
var (
|
|
|
errMsg QueryError
|
|
|
err error
|
...
|
...
|
@@ -112,11 +111,11 @@ func (result *QueryResult) Error() error { |
|
|
}
|
|
|
|
|
|
//TODO 将结果解析为结构体
|
|
|
// func (result *QueryResult) ToStruct(v interface{}) error {
|
|
|
// func (result *BillQueryResult) ToStruct(v interface{}) error {
|
|
|
// return nil
|
|
|
// }
|
|
|
|
|
|
func (result *QueryResult) IsError() bool {
|
|
|
func (result *BillQueryResult) IsError() bool {
|
|
|
jResult := gjson.ParseBytes(result.Buf)
|
|
|
for _, arr1 := range jResult.Array() {
|
|
|
for _, item := range arr1.Array() {
|
...
|
...
|
|