Commit 7c116bb1 by luofan

feat:v303开始服务与定位分开

parent 246edf7b
...@@ -5,8 +5,8 @@ buildscript { ...@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "27.0.3" ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 19 ext.min_sdk_version = 19
ext.target_sdk_version = 26 ext.target_sdk_version = 26
ext.version_code = 302 ext.version_code = 303
ext.verson_name = "3.0.2" ext.verson_name = "3.0.3"
ext.gradle_version = '3.1.4' ext.gradle_version = '3.1.4'
ext.isReleaseMinify = false ext.isReleaseMinify = false
ext.isDebugMinify = false ext.isDebugMinify = false
......
...@@ -15,6 +15,6 @@ isLearnModule=true ...@@ -15,6 +15,6 @@ isLearnModule=true
##maven依赖 ##maven依赖
mavenMode=false mavenMode=false
BASE_URL=http://47.94.101.239:3112 BASE_URL=http://47.94.101.239:3112
IS_64_BIT=true IS_64_BIT=false
Android.useDeprecatedNdk=true Android.useDeprecatedNdk=true
\ No newline at end of file
...@@ -22,21 +22,18 @@ public class LocationUtils1 { ...@@ -22,21 +22,18 @@ public class LocationUtils1 {
private Context mContext; private Context mContext;
private static ArrayList<AddressCallback> addressCallbacks; private static ArrayList<AddressCallback> addressCallbacks;
private AddressCallback addressCallback; private AddressCallback addressCallback;
public AddressCallback getAddressCallback() { public AddressCallback getAddressCallback() {
return addressCallback; return addressCallback;
} }
public void setAddressCallback(AddressCallback addressCallback) { public void setAddressCallback(AddressCallback addressCallback) {
this.addressCallback = addressCallback; this.addressCallback = addressCallback;
if(isInit){ showLocation();
showLocation();
}else {
isInit = true;
}
} }
private static Location location; private static Location location;
private boolean isInit = false;//是否加载过
private LocationUtils1(Context context) { private LocationUtils1(Context context) {
mContext = context; mContext = context;
getLocation(); getLocation();
...@@ -57,21 +54,21 @@ public class LocationUtils1 { ...@@ -57,21 +54,21 @@ public class LocationUtils1 {
/** /**
* 添加回调事件 * 添加回调事件
*
* @param addressCallback * @param addressCallback
*/ */
private void addAddressCallback(AddressCallback addressCallback){ private void addAddressCallback(AddressCallback addressCallback) {
addressCallbacks.add(addressCallback); addressCallbacks.add(addressCallback);
if(isInit){ showLocation();
showLocation();
}
} }
/** /**
* 移除回调事件 * 移除回调事件
*
* @param addressCallback * @param addressCallback
*/ */
public void removeAddressCallback(AddressCallback addressCallback){ public void removeAddressCallback(AddressCallback addressCallback) {
if(addressCallbacks.contains(addressCallback)){ if (addressCallbacks.contains(addressCallback)) {
addressCallbacks.remove(addressCallback); addressCallbacks.remove(addressCallback);
} }
} }
...@@ -79,10 +76,11 @@ public class LocationUtils1 { ...@@ -79,10 +76,11 @@ public class LocationUtils1 {
/** /**
* 清空回调事件 * 清空回调事件
*/ */
public void cleareAddressCallback(){ public void cleareAddressCallback() {
removeLocationUpdatesListener(); removeLocationUpdatesListener();
addressCallbacks.clear(); addressCallbacks.clear();
} }
private void getLocation() { private void getLocation() {
//1.获取位置管理器 //1.获取位置管理器
locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
...@@ -127,16 +125,16 @@ public class LocationUtils1 { ...@@ -127,16 +125,16 @@ public class LocationUtils1 {
//获取经纬度 //获取经纬度
private void showLocation() { private void showLocation() {
if(location == null){ if (location == null) {
getLocation(); getLocation();
}else { } else {
double latitude = location.getLatitude();//纬度 double latitude = location.getLatitude();//纬度
double longitude = location.getLongitude();//经度 double longitude = location.getLongitude();//经度
// for(AddressCallback addressCallback:addressCallbacks){ // for(AddressCallback addressCallback:addressCallbacks){
// addressCallback.onGetLocation(latitude,longitude); // addressCallback.onGetLocation(latitude,longitude);
// } // }
if(addressCallback != null){ if (addressCallback != null) {
addressCallback.onGetLocation(latitude,longitude); addressCallback.onGetLocation(latitude, longitude);
} }
getAddress(latitude, longitude); getAddress(latitude, longitude);
} }
...@@ -161,7 +159,7 @@ public class LocationUtils1 { ...@@ -161,7 +159,7 @@ public class LocationUtils1 {
//街道名称:广东省深圳市罗湖区蔡屋围一街深圳瑞吉酒店 //街道名称:广东省深圳市罗湖区蔡屋围一街深圳瑞吉酒店
// System.out.println("addressLine=====" + addressLine); // System.out.println("addressLine=====" + addressLine);
} }
if(addressCallback != null){ if (addressCallback != null) {
addressCallback.onGetAddress(address); addressCallback.onGetAddress(address);
} }
// for(AddressCallback addressCallback:addressCallbacks){ // for(AddressCallback addressCallback:addressCallbacks){
...@@ -214,9 +212,11 @@ public class LocationUtils1 { ...@@ -214,9 +212,11 @@ public class LocationUtils1 {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
showLocation(); showLocation();
} }
public interface AddressCallback{
public interface AddressCallback {
void onGetAddress(Address address); void onGetAddress(Address address);
void onGetLocation(double lat,double lng);
void onGetLocation(double lat, double lng);
} }
} }
...@@ -42,6 +42,10 @@ public class OrderApiFactory { ...@@ -42,6 +42,10 @@ public class OrderApiFactory {
return Api.getService(OrderService.class).startServer(body).compose(Api.applySchedulers()); return Api.getService(OrderService.class).startServer(body).compose(Api.applySchedulers());
} }
public static Observable<Boolean> updateAddress(RequestBody body) {
return Api.getService(OrderService.class).updateAddress(body).compose(Api.applySchedulers());
}
public static Observable<List<ErrorOrder>> getErrorOrders(int userId, int siteId) { public static Observable<List<ErrorOrder>> getErrorOrders(int userId, int siteId) {
return Api.getService(OrderService.class).getErrorOrders(userId, siteId).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getErrorOrders(userId, siteId).compose(Api.applySchedulers());
} }
...@@ -76,13 +80,14 @@ public class OrderApiFactory { ...@@ -76,13 +80,14 @@ public class OrderApiFactory {
return Api.getService(OrderService.class).getTabNum(userId).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getTabNum(userId).compose(Api.applySchedulers());
} }
public static Observable<OrderDetail> getOrderInfo(int orderId,int engineerId) { public static Observable<OrderDetail> getOrderInfo(int orderId, int engineerId) {
return Api.getService(OrderService.class).getOrderInfo(orderId,engineerId).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getOrderInfo(orderId, engineerId).compose(Api.applySchedulers());
} }
public static Observable<BasePageBean<ServerInstruction>> getInstruction(long id, int page, int pageSize) { public static Observable<BasePageBean<ServerInstruction>> getInstruction(long id, int page, int pageSize) {
return Api.getService(OrderService.class).getInstruction(id, page, pageSize).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getInstruction(id, page, pageSize).compose(Api.applySchedulers());
} }
public static Observable<List<OperateInfo>> getOperateInfo(OperatePostData data) { public static Observable<List<OperateInfo>> getOperateInfo(OperatePostData data) {
return Api.getService(OrderService.class).getOperateInfo(data.spuIds).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getOperateInfo(data.spuIds).compose(Api.applySchedulers());
} }
...@@ -162,8 +167,9 @@ public class OrderApiFactory { ...@@ -162,8 +167,9 @@ public class OrderApiFactory {
public static Observable<String> createUrl(int orderId) { public static Observable<String> createUrl(int orderId) {
return Api.getService(OrderService.class).createUrl(orderId).compose(Api.applySchedulers()); return Api.getService(OrderService.class).createUrl(orderId).compose(Api.applySchedulers());
} }
public static Call<ResponseBody> createWxUrl(String path , int width) {
return Api.getService(OrderService.class).createWxUrl(path,width); public static Call<ResponseBody> createWxUrl(String path, int width) {
return Api.getService(OrderService.class).createWxUrl(path, width);
} }
public static Observable<Boolean> queryPayStatus(int siteId) { public static Observable<Boolean> queryPayStatus(int siteId) {
...@@ -185,14 +191,16 @@ public class OrderApiFactory { ...@@ -185,14 +191,16 @@ public class OrderApiFactory {
public static Observable<BasePageBean<CommentBean>> getComment(int targetId, int status, int targetType, int accountType, int page, int pageSize) { public static Observable<BasePageBean<CommentBean>> getComment(int targetId, int status, int targetType, int accountType, int page, int pageSize) {
return Api.getService(OrderService.class).getComment(targetId, page, pageSize).compose(Api.applySchedulers()); return Api.getService(OrderService.class).getComment(targetId, page, pageSize).compose(Api.applySchedulers());
} }
public static Observable<Boolean> addComment(CommentPostData data) { public static Observable<Boolean> addComment(CommentPostData data) {
return Api.getService(OrderService.class).addComment(data).compose(Api.applySchedulers()); return Api.getService(OrderService.class).addComment(data).compose(Api.applySchedulers());
} }
public static Observable<Boolean> addCommentReply(CommentReplyData data) { public static Observable<Boolean> addCommentReply(CommentReplyData data) {
return Api.getService(OrderService.class).addCommentReply(data).compose(Api.applySchedulers()); return Api.getService(OrderService.class).addCommentReply(data).compose(Api.applySchedulers());
} }
public static Observable<BaseResponse<String>> verifyOrder(String orderId, int accountId) { public static Observable<BaseResponse<String>> verifyOrder(String orderId, int accountId) {
return Api.getService(OrderService.class).verifyOrder(orderId,accountId).compose(Api.applySchedulersSource()); return Api.getService(OrderService.class).verifyOrder(orderId, accountId).compose(Api.applySchedulersSource());
} }
} }
...@@ -80,6 +80,15 @@ public interface OrderService { ...@@ -80,6 +80,15 @@ public interface OrderService {
Observable<BaseResponse<Integer>> startServer(@Body RequestBody body); Observable<BaseResponse<Integer>> startServer(@Body RequestBody body);
/** /**
* 更新地址.
*
* @param body
* @return
*/
@POST(OrderConstant.UPDATE_ADDRESS)
Observable<BaseResponse<Boolean>> updateAddress(@Body RequestBody body);
/**
* 获取工单记录列表. * 获取工单记录列表.
* *
* @param state * @param state
......
...@@ -48,6 +48,10 @@ public class OrderConstant { ...@@ -48,6 +48,10 @@ public class OrderConstant {
*/ */
public static final String START_SERVE = "/api-order/" + "orders/onWorkingUpgrade"; public static final String START_SERVE = "/api-order/" + "orders/onWorkingUpgrade";
/** /**
* 更新地址.
*/
public static final String UPDATE_ADDRESS = "/api-order/" + "orders/onWorkingUpgrade/location";
/**
* 工单详情信息,包含评价,投诉,服务记录. * 工单详情信息,包含评价,投诉,服务记录.
*/ */
public static final String ORDER_DETAILS = "/api-order/" + "orders/app/detail"; public static final String ORDER_DETAILS = "/api-order/" + "orders/app/detail";
......
package com.dayu.order.presenter.orderdoing; package com.dayu.order.presenter.orderdoing;
import static com.dayu.utils.UIUtils.getString;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
...@@ -36,6 +34,8 @@ import io.reactivex.Observable; ...@@ -36,6 +34,8 @@ import io.reactivex.Observable;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.dayu.utils.UIUtils.getString;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
...@@ -135,14 +135,22 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -135,14 +135,22 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
} }
@Override @Override
public Observable<Integer> startServer(int orderId, double latitude, double longitude) { public Observable<Integer> startServer(int orderId) {
HashMap<String, Object> params = new HashMap<>();
params.put("orderId", orderId);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
return OrderApiFactory.startServer(body);
}
public Observable<Boolean> updateAddress(int orderId, double latitude, double longitude) {
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
params.put("latitude", latitude); params.put("latitude", latitude);
params.put("longitude", longitude); params.put("longitude", longitude);
params.put("orderId", orderId); params.put("orderId", orderId);
JSONObject jsonObject = new JSONObject(params); JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()); RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
return OrderApiFactory.startServer(body); return OrderApiFactory.updateAddress(body);
} }
@Override @Override
......
...@@ -44,7 +44,7 @@ public interface orderDoingContract { ...@@ -44,7 +44,7 @@ public interface orderDoingContract {
* @param longitude * @param longitude
* @return * @return
*/ */
public abstract Observable<Integer> startServer(int orderId, double latitude, double longitude); public abstract Observable<Integer> startServer(int orderId);
public abstract void dumpToFaceCert(Order order); public abstract void dumpToFaceCert(Order order);
......
package com.dayu.order.ui.adapter; package com.dayu.order.ui.adapter;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
...@@ -14,7 +11,6 @@ import android.text.TextUtils; ...@@ -14,7 +11,6 @@ import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.amap.api.location.AMapLocation;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView; import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.adapter.CoreAdapter; import com.dayu.base.ui.adapter.CoreAdapter;
...@@ -56,6 +52,9 @@ import java.util.Map; ...@@ -56,6 +52,9 @@ import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
/** /**
* 待服务列表的适配器 * 待服务列表的适配器
...@@ -130,7 +129,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -130,7 +129,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
} }
holder.itemTextUserName.setVisibility(View.VISIBLE); holder.itemTextUserName.setVisibility(View.VISIBLE);
holder.itemTextUserPhone.setVisibility(View.VISIBLE); holder.itemTextUserPhone.setVisibility(View.VISIBLE);
holder.itemTextDizhi.setPadding(0, 0, 0,0); holder.itemTextDizhi.setPadding(0, 0, 0, 0);
//工单状态:1未接单2未预约3已预约4进行中5已完成6已取消7订单关闭 //工单状态:1未接单2未预约3已预约4进行中5已完成6已取消7订单关闭
//工单子状态:3已预约1未出发|3已预约2已出发|4进行中3无SOP处理|4进行中4SOP未完成|4进行中5SOP已完成 //工单子状态:3已预约1未出发|3已预约2已出发|4进行中3无SOP处理|4进行中4SOP未完成|4进行中5SOP已完成
String time = ""; String time = "";
...@@ -452,7 +451,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -452,7 +451,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if (mItem.getStatus() == 3) { if (mItem.getStatus() == 3) {
RxPermissions permissions = new RxPermissions((Activity) mContext); RxPermissions permissions = new RxPermissions((Activity) mContext);
if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) { if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) {
getLocation(h, posiiton); startFirstServe(h, posiiton);
} else { } else {
CustomDialog mDialog = new CustomDialog((Activity) mContext, com.dayu.baselibrary.R.style.CustomDialog, "大鱼需要你的定位权限,用于记录处理sop的当前位置" CustomDialog mDialog = new CustomDialog((Activity) mContext, com.dayu.baselibrary.R.style.CustomDialog, "大鱼需要你的定位权限,用于记录处理sop的当前位置"
, (dialog, confirm) -> { , (dialog, confirm) -> {
...@@ -462,7 +461,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -462,7 +461,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if (aBoolean) { if (aBoolean) {
ProgressUtil.setCanDismiss(false); ProgressUtil.setCanDismiss(false);
ProgressUtil.startLoad(mContext); ProgressUtil.startLoad(mContext);
getLocation(h, posiiton); startFirstServe(h, posiiton);
} else { } else {
ToastUtils.showShortToast("权限申请失败!"); ToastUtils.showShortToast("权限申请失败!");
} }
...@@ -480,7 +479,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -480,7 +479,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
} }
} }
private void getLocation(FragmentOrderdoingItemBinding h, int posiiton) { private void getLocation() {
LocationUtils1.getInstance(mContext).setAddressCallback(new LocationUtils1.AddressCallback() { LocationUtils1.getInstance(mContext).setAddressCallback(new LocationUtils1.AddressCallback() {
@Override @Override
public void onGetAddress(Address address) { public void onGetAddress(Address address) {
...@@ -490,28 +489,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -490,28 +489,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
@Override @Override
public void onGetLocation(double lat, double lng) { public void onGetLocation(double lat, double lng) {
if (lat != 0) { if (lat != 0) {
startFirstServe(lat, lng); updateAddress(lat, lng);
}
}
private void startFirstServe(double latitude, double longitude) {
if (mItem.getSubStatus() == 1 || mItem.getSubStatus() == 2) {
mPresenter.startServer(mItem.getId(), latitude, longitude)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(integer -> {
ProgressUtil.stopLoad();
mItem.setStatus(4);
mItem.setSubStatus(integer);
processClick(mItem, h, posiiton);
mBind.tvItemProcess.setText(mContext.getString(R.string.process_order));
mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
}, responeThrowable -> {
if ("ORDER0006".equals(responeThrowable.subCode)) {
EventBus.getDefault().post(new RefreshTab(3));
EventBus.getDefault().post(new RefreshServe(1));
}
}));
// MobclickAgent.onEvent(mContext, "start_server");
} }
} }
}); });
...@@ -551,6 +529,35 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -551,6 +529,35 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
// }); // });
} }
private void startFirstServe(FragmentOrderdoingItemBinding h, int posiiton) {
if (mItem.getSubStatus() == 1 || mItem.getSubStatus() == 2) {
mPresenter.startServer(mItem.getId())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(integer -> {
ProgressUtil.stopLoad();
mItem.setStatus(4);
mItem.setSubStatus(integer);
processClick(mItem, h, posiiton);
mBind.tvItemProcess.setText(mContext.getString(R.string.process_order));
mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
getLocation();
}, responeThrowable -> {
if ("ORDER0006".equals(responeThrowable.subCode)) {
EventBus.getDefault().post(new RefreshTab(3));
EventBus.getDefault().post(new RefreshServe(1));
}
}));
// MobclickAgent.onEvent(mContext, "start_server");
}
}
private void updateAddress(double lat, double lng) {
mPresenter.updateAddress(mItem.getId(), lat, lng)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(aBoolean -> {
}));
}
private void dumpSubcribeTimeActivity(int id, int adapterPosition, int state, String time) { private void dumpSubcribeTimeActivity(int id, int adapterPosition, int state, String time) {
// int status = UserManager.getInstance().getUser().getDetectStatus(); // int status = UserManager.getInstance().getUser().getDetectStatus();
// if (state == 2 && (status == 2 || status == 3)) { //没有活体检测的先去进行活体检测 // if (state == 2 && (status == 2 || status == 3)) { //没有活体检测的先去进行活体检测
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment