Skip to content

Commit

Permalink
update --- 修改返回泛型为String 时的bug &修改默认解析类中的data字段
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimmuy committed Jun 24, 2020
1 parent 0f38c0b commit 2b6b0d1
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 29 deletions.
20 changes: 11 additions & 9 deletions net/src/main/java/com/jimmy/iot/net/func/ApiResultFunc.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import io.reactivex.functions.Function;
import okhttp3.ResponseBody;

import static com.jimmy.iot.net.model.ApiResult.DEFAULT_SUCCESS_CODE;


/**
* <p>描述:定义了ApiResult结果转换Func</p>
Expand Down Expand Up @@ -75,8 +77,8 @@ public ApiResult<T> apply(@NonNull ResponseBody responseBody) throws Exception {
String json = responseBody.string();
//增加是List<String>判断错误的问题
if (!List.class.isAssignableFrom(rawType) && clazz.equals(String.class)) {
apiResult.setBaseData((T) json);
apiResult.setCode(0);
apiResult.setData((T) json);
apiResult.setCode(DEFAULT_SUCCESS_CODE);
} else {
ApiResult result = null;
if (isJson) {
Expand All @@ -90,8 +92,8 @@ public ApiResult<T> apply(@NonNull ResponseBody responseBody) throws Exception {
result = new ApiResult();
T data = (T) xmlSerializer.read(clazz, json);
if (data != null) {
result.setBaseData(data);
result.setCode(200);
result.setData(data);
result.setCode(DEFAULT_SUCCESS_CODE);
result.setMsg("success");
} else {
result.setCode(-2);
Expand Down Expand Up @@ -120,17 +122,17 @@ public ApiResult<T> apply(@NonNull ResponseBody responseBody) throws Exception {
final ApiResult result = parseApiResult(json, apiResult);
if (result != null) {
apiResult = result;
apiResult.setBaseData((T) json);
apiResult.setData((T) json);
} else {
apiResult.setMsg("json is null");
}
} else {
final ApiResult result = parseApiResult(json, apiResult);
if (result != null) {
apiResult = result;
if (apiResult.getBaseData() != null) {
T data = gson.fromJson(apiResult.getBaseData().toString(), clazz);
apiResult.setBaseData(data);
if (apiResult.getData() != null) {
T data = gson.fromJson(apiResult.getData().toString(), clazz);
apiResult.setData(data);
} else {
apiResult.setMsg("ApiResult's data is null");
}
Expand Down Expand Up @@ -159,7 +161,7 @@ private ApiResult parseApiResult(String json, ApiResult apiResult) throws JSONEx
apiResult.setCode(jsonObject.getInt("code"));
}
if (jsonObject.has("data")) {
apiResult.setBaseData(jsonObject.getString("data"));
apiResult.setData(jsonObject.getString("data"));
}
if (jsonObject.has("msg")) {
apiResult.setMsg(jsonObject.getString("msg"));
Expand Down
2 changes: 1 addition & 1 deletion net/src/main/java/com/jimmy/iot/net/func/HandleFuc.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class HandleFuc<T> implements Function<ApiResult<T>, T> {
@Override
public T apply(@NonNull ApiResult<T> tApiResult) throws Exception {
if (ApiException.isOk(tApiResult)) {
return tApiResult.getBaseData();// == null ? Optional.ofNullable(tApiResult.getBaseData()).orElse(null) : tApiResult.getBaseData();
return tApiResult.getData();// == null ? Optional.ofNullable(tApiResult.getBaseData()).orElse(null) : tApiResult.getBaseData();
} else {
throw new ServerException(tApiResult.getCode(), tApiResult.getMsg());
}
Expand Down
15 changes: 8 additions & 7 deletions net/src/main/java/com/jimmy/iot/net/model/ApiResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
* <p>描述:提供的默认的标注返回api</p>
*/
public class ApiResult<T> {
public static final int DEFAULT_SUCCESS_CODE = 200;
private int code;
private String msg;
private T baseData;
private T data;

public int getCode() {
return code;
Expand All @@ -29,24 +30,24 @@ public void setMsg(String msg) {
/**
* 需要根据实际类型进行返回
*/
public T getBaseData() {
return baseData;
public T getData() {
return data;
}

public void setBaseData(T baseData) {
this.baseData = baseData;
public void setData(T data) {
this.data = data;
}

public boolean isOk() {
return code == 200;
return code == DEFAULT_SUCCESS_CODE;
}

@Override
public String toString() {
return "ApiResult{" +
"code='" + code + '\'' +
", msg='" + msg + '\'' +
", baseData=" + baseData +
", baseData=" + data +
'}';
}
}
2 changes: 1 addition & 1 deletion sample/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
compileSdkVersion 28
Expand Down
11 changes: 0 additions & 11 deletions sample/src/main/java/com/jimmy/sample/net/DemoApiResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,10 @@

public class DemoApiResult<T> extends ApiResult<T> {

public T data;

@Override
public T getBaseData() {
return data;
}

@Override
public boolean isOk() {
//重写isOK用来判定网络是否成功
return super.isOk();
}

@Override
public int getCode() {
return super.getCode();
}
}

0 comments on commit 2b6b0d1

Please sign in to comment.