第5次提交 清空贷款
This commit is contained in:
76
telebol/src/main/java/com/dskj/cashly/api/Api.java
Normal file
76
telebol/src/main/java/com/dskj/cashly/api/Api.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.azhon.basic.retrofit.BaseApi;
|
||||
import com.dskj.cashly.InitApp;
|
||||
import com.dskj.cashly.config.Config;
|
||||
import com.dskj.cashly.utils.LogUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.logging.HttpLoggingInterceptor;
|
||||
|
||||
/**
|
||||
* 项目名: TODO-MVVM
|
||||
* 包名 com.azhon.mvvm.api
|
||||
* 文件名: Api
|
||||
* 创建时间: 2019-03-27 on 14:56
|
||||
* 描述: TODO 使用Retrofit基础服务
|
||||
*
|
||||
*/
|
||||
|
||||
public class Api extends BaseApi {
|
||||
|
||||
private static final long CONNECT_TIMEOUT = 10;
|
||||
private static final long READ_TIMEOUT = 10;
|
||||
private static final long WRITE_TIMEOUT = 10;
|
||||
|
||||
/**
|
||||
* 静态内部类单例
|
||||
*/
|
||||
private static class ApiHolder {
|
||||
private static Api api = new Api();
|
||||
private final static ApiService apiService = api.initRetrofit(ApiService.URL)
|
||||
.create(ApiService.class);
|
||||
|
||||
}
|
||||
|
||||
public static ApiService getInstance() {
|
||||
return ApiHolder.apiService;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 做自己需要的操作
|
||||
*/
|
||||
@Override
|
||||
protected OkHttpClient setClient() {
|
||||
OkHttpClient.Builder builder;
|
||||
builder = new OkHttpClient()
|
||||
.newBuilder();
|
||||
//禁止使用代理抓取数据
|
||||
// builder.proxy(Proxy.NO_PROXY);
|
||||
//设置超时
|
||||
builder.connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS);
|
||||
builder.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS);
|
||||
builder.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS);
|
||||
//错误重连
|
||||
builder.retryOnConnectionFailure(true);
|
||||
builder.addInterceptor(new HeaderInterceptor());
|
||||
|
||||
// if(Config.IS_DEBUG) {
|
||||
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(message -> {
|
||||
String text = message;
|
||||
LogUtils.i("OKHttp111111-----", text);
|
||||
});
|
||||
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||
builder.addInterceptor(interceptor);
|
||||
// }
|
||||
return builder.build();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
172
telebol/src/main/java/com/dskj/cashly/api/ApiService.java
Normal file
172
telebol/src/main/java/com/dskj/cashly/api/ApiService.java
Normal file
@@ -0,0 +1,172 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
|
||||
import com.dskj.cashly.bean.BankBean;
|
||||
import com.dskj.cashly.bean.CallLogBean;
|
||||
import com.dskj.cashly.bean.ContactBean;
|
||||
import com.dskj.cashly.bean.ListBean;
|
||||
import com.dskj.cashly.bean.LoadDetail;
|
||||
import com.dskj.cashly.bean.LoanApplyBean;
|
||||
import com.dskj.cashly.bean.LoanBean;
|
||||
import com.dskj.cashly.bean.TokenBean;
|
||||
import com.dskj.cashly.bean.UserBean;
|
||||
import com.dskj.cashly.bean.VideoIndexResult;
|
||||
import com.dskj.cashly.bean.VideoResult;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import okhttp3.MultipartBody;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Part;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* 项目名:
|
||||
* 包名 com.azhon.mvvm.api
|
||||
* 文件名: ApiService
|
||||
* 创建时间: 2019-03-27 on 14:55
|
||||
* 描述:
|
||||
*
|
||||
*/
|
||||
|
||||
public interface ApiService {
|
||||
|
||||
// String URL ="https://xjp-api.telebol.com/";
|
||||
|
||||
|
||||
|
||||
// String URL ="https://api.clashly666.com/";
|
||||
// String URL ="http://47.113.146.77:8000/";
|
||||
// String URL ="https://test666.telebol.com/";
|
||||
|
||||
//
|
||||
String URL ="https://test-api.telebol.com/";
|
||||
|
||||
// String URL ="https://api666.telebol.com/";
|
||||
|
||||
|
||||
/**获取Access-Token*/
|
||||
@GET("api/BuildToken/getAccessToken")
|
||||
Observable<Result<TokenBean>> getAccessToken(@Query("app_id") String app_id,
|
||||
@Query("signature") String signature,
|
||||
@Query("device_id") String device_id);
|
||||
/**登录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/User/login")
|
||||
Observable<Result<UserBean>> getLogin(@Field("phone") String phone, @Field("password") String password);
|
||||
/**登录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/User/login")
|
||||
Observable<Result<UserBean>> getLoginCaptcha(@Field("phone") String phone, @Field("captcha") String captcha);
|
||||
|
||||
|
||||
/**登录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/User/sendSMS")
|
||||
Observable<Result> sendSMS(@Field("phone") String phone);
|
||||
|
||||
// /**登录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/User/login")
|
||||
Observable<Result<UserBean>> getLogin(@Field("phone") String phone, @Field("password") String password,
|
||||
@Field("invit_code") String invit_code);
|
||||
|
||||
@GET("api/Loan/getList")
|
||||
Observable<Result<ListBean>> getList(@Query("page") int page);
|
||||
|
||||
|
||||
@GET("api/Loan/getLoanDetail")
|
||||
Observable<Result<List<LoadDetail>>> getLoanDetail(@Query("id") int id);
|
||||
|
||||
@GET("api/Settle/loanList")
|
||||
Observable<Result<List<LoanBean>>> loanList();
|
||||
|
||||
|
||||
@GET("api/Settle/getList")
|
||||
Observable<Result<ListBean>> getSettleList(@Query("page") int page);
|
||||
|
||||
|
||||
@GET("api/Loan/detail")
|
||||
Observable<Result<LoanBean>> detail(@Query("id") int phone);
|
||||
|
||||
@GET("api/Settle/detail")
|
||||
Observable<Result<LoanBean>> SettleDetail(@Query("id") int phone);
|
||||
|
||||
@GET("api/Bank/index")
|
||||
Observable<Result<List<BankBean>>> BankIndex();
|
||||
|
||||
@GET("api/User/logout")
|
||||
Observable<Result> logout();
|
||||
|
||||
/**通讯录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/Upload/phone")
|
||||
Observable<Result> phone(@Field("id") long id, @Field("name_phone") String name_phone);
|
||||
|
||||
/**通讯录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/Upload/settle-phone")
|
||||
Observable<Result> settlePhone(@Field("id") long id, @Field("name_phone") String name_phone);
|
||||
|
||||
|
||||
/**身份证*/
|
||||
@POST("api/Upload/picture")
|
||||
Observable<Result<List<String>>> picture(@Body MultipartBody file);
|
||||
|
||||
/**身份证*/
|
||||
@POST("api/Settle/upload")
|
||||
Observable<Result<List<String>>> SettleUpload(@Body MultipartBody file);
|
||||
|
||||
// /**提交*/
|
||||
// @FormUrlEncoded
|
||||
// @POST("api/Loan/apply")
|
||||
// Observable<Result<LoanApplyBean>> apply(@Field("full_name") String full_name, @Field("ic_code") String ic_code, @Field("phone") String phone,
|
||||
// @Field("occupation") String occupation, @Field("address") String address, @Field("bank_name") String bank_name,
|
||||
// @Field("bank_code") String bank_code, @Field("salary") String salary, @Field("amount") float amount,
|
||||
// @Field("id_front") String id_front, @Field("id_back") String id_back,
|
||||
// @Field("period") String period, @Field("period_time") String period_time,
|
||||
// @Field("invit_code") String invit_code);
|
||||
|
||||
|
||||
/**提交*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/Loan/apply")
|
||||
Observable<Result<LoanApplyBean>> apply(@Field("full_name") String full_name, @Field("ic_code") String ic_code, @Field("phone") String phone,
|
||||
@Field("occupation") String occupation, @Field("address") String address, @Field("bank_name") String bank_name,
|
||||
@Field("bank_code") String bank_code, @Field("salary") String salary, @Field("amount") float amount,
|
||||
@Field("id_front") String id_front, @Field("id_back") String id_back,
|
||||
@Field("period") String period, @Field("period_time") String period_time
|
||||
);
|
||||
/**提交*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/Settle/apply")
|
||||
Observable<Result<LoanApplyBean>> SettleApply(@Field("full_name") String full_name, @Field("ic_code") String ic_code, @Field("phone") String phone,
|
||||
@Field("amount") float amount, @Field("id_front") String id_front,
|
||||
@Field("id_back") String id_back,@Field("loan_id") String loan_id,
|
||||
@Field("receipt") String receipt);
|
||||
|
||||
/**通话记录*/
|
||||
@POST("api/loan/postPhoneHistory")
|
||||
Observable<Result> postPhoneHistory(@Body List<CallLogBean> file);
|
||||
|
||||
/**通话记录 清账*/
|
||||
@POST("api/Settle/postPhoneHistory")
|
||||
Observable<Result> postSettlePhoneHistory(@Body List<CallLogBean> file);
|
||||
|
||||
@GET("api/bank/contact")
|
||||
Observable<Result<ContactBean>> contact();
|
||||
|
||||
|
||||
|
||||
|
||||
/**通讯录*/
|
||||
@FormUrlEncoded
|
||||
@POST("api/User/setUserPushToken")
|
||||
Observable<Result> setUserPushToken(@Field("FCM_token") String FCM_token);
|
||||
|
||||
}
|
||||
130
telebol/src/main/java/com/dskj/cashly/api/BaseObserver.java
Normal file
130
telebol/src/main/java/com/dskj/cashly/api/BaseObserver.java
Normal file
@@ -0,0 +1,130 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import com.dskj.cashly.InitApp;
|
||||
import com.dskj.cashly.bean.BankBean;
|
||||
import com.dskj.cashly.ui.activity.LoginActivity;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.ConnectException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.observers.DisposableObserver;
|
||||
import retrofit2.HttpException;
|
||||
|
||||
public abstract class BaseObserver<T> extends DisposableObserver<T> {
|
||||
/**
|
||||
* 解析数据失败
|
||||
*/
|
||||
public static final int PARSE_ERROR = 1001;
|
||||
/**
|
||||
* 网络问题
|
||||
*/
|
||||
public static final int BAD_NETWORK = 1002;
|
||||
/**
|
||||
* 连接错误
|
||||
*/
|
||||
public static final int CONNECT_ERROR = 1003;
|
||||
/**
|
||||
* 连接超时
|
||||
*/
|
||||
public static final int CONNECT_TIMEOUT = 1004;
|
||||
|
||||
@Override
|
||||
public void onNext(T o) {
|
||||
try {
|
||||
Result model = (Result) o;
|
||||
|
||||
if (model.code == 1) {
|
||||
onSuccess(o);
|
||||
} else {
|
||||
onError(model.code,model.msg);
|
||||
if(model.code == -996){
|
||||
InitApp.setToken("");
|
||||
InitApp.setUserToken("");
|
||||
reStart();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
onError(407,e.toString());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*** 重新启动应用*/
|
||||
public void reStart(){
|
||||
Intent launch= InitApp.getAppContext().getPackageManager()
|
||||
.getLaunchIntentForPackage(InitApp.getAppContext()
|
||||
.getPackageName());
|
||||
launch.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
InitApp.getAppContext().startActivity(launch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (e instanceof HttpException) {
|
||||
// HTTP错误
|
||||
onException(BAD_NETWORK);
|
||||
} else if (e instanceof ConnectException
|
||||
|| e instanceof UnknownHostException) {
|
||||
// 连接错误
|
||||
onException(CONNECT_ERROR);
|
||||
} else if (e instanceof InterruptedIOException) {
|
||||
// 连接超时
|
||||
onException(CONNECT_TIMEOUT);
|
||||
} else if (e instanceof JsonParseException
|
||||
|| e instanceof JSONException
|
||||
|| e instanceof ParseException) {
|
||||
// 解析错误
|
||||
|
||||
onException(PARSE_ERROR);
|
||||
} else {
|
||||
if (e != null) {
|
||||
onError(409,e.toString());
|
||||
} else {
|
||||
onError(407,"未知錯誤");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onException(int unknownError) {
|
||||
switch (unknownError) {
|
||||
case CONNECT_ERROR:
|
||||
onError(CONNECT_ERROR,"連接錯誤");
|
||||
break;
|
||||
|
||||
case CONNECT_TIMEOUT:
|
||||
onError(CONNECT_TIMEOUT,"連接超時");
|
||||
break;
|
||||
|
||||
case BAD_NETWORK:
|
||||
onError(BAD_NETWORK,"網絡問題");
|
||||
break;
|
||||
|
||||
case PARSE_ERROR:
|
||||
onError(PARSE_ERROR,"數據解析异常");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
|
||||
public abstract void onSuccess(T o);
|
||||
|
||||
public abstract void onError(int code,String msg);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
|
||||
import com.dskj.cashly.InitApp;
|
||||
import com.dskj.cashly.utils.LogUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class HeaderInterceptor implements Interceptor {
|
||||
public HeaderInterceptor() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response intercept(Chain chain) throws IOException {
|
||||
Request request = chain.request().newBuilder()
|
||||
.addHeader("Access-Token", InitApp.getToken())
|
||||
.addHeader("User-Token", InitApp.getUserToken())
|
||||
.build();
|
||||
LogUtils.i("头文件:"+InitApp.getToken());
|
||||
LogUtils.i("头文件1:"+InitApp.getUserToken());
|
||||
|
||||
return chain.proceed(request);
|
||||
}
|
||||
}
|
||||
30
telebol/src/main/java/com/dskj/cashly/api/Result.java
Normal file
30
telebol/src/main/java/com/dskj/cashly/api/Result.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package com.dskj.cashly.api;
|
||||
|
||||
import com.dskj.cashly.utils.GsonUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Result<T> implements Serializable {
|
||||
|
||||
public String msg;
|
||||
public int code;
|
||||
public T data;
|
||||
public List<String> debug;
|
||||
|
||||
|
||||
public boolean isSuccessful() {
|
||||
return code == 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Result{" +
|
||||
"message='" + msg + '\'' +
|
||||
", code=" + code +
|
||||
", data=" + GsonUtils.beanToJSONString(data) +
|
||||
", debug=" + GsonUtils.beanToJSONString(debug) +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user