Commit 7c116bb1 by luofan

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

parent 246edf7b
......@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 19
ext.target_sdk_version = 26
ext.version_code = 302
ext.verson_name = "3.0.2"
ext.version_code = 303
ext.verson_name = "3.0.3"
ext.gradle_version = '3.1.4'
ext.isReleaseMinify = false
ext.isDebugMinify = false
......
......@@ -15,6 +15,6 @@ isLearnModule=true
##maven依赖
mavenMode=false
BASE_URL=http://47.94.101.239:3112
IS_64_BIT=true
IS_64_BIT=false
Android.useDeprecatedNdk=true
\ No newline at end of file
......@@ -22,21 +22,18 @@ public class LocationUtils1 {
private Context mContext;
private static ArrayList<AddressCallback> addressCallbacks;
private AddressCallback addressCallback;
public AddressCallback getAddressCallback() {
return addressCallback;
}
public void setAddressCallback(AddressCallback addressCallback) {
this.addressCallback = addressCallback;
if(isInit){
showLocation();
}else {
isInit = true;
}
showLocation();
}
private static Location location;
private boolean isInit = false;//是否加载过
private LocationUtils1(Context context) {
mContext = context;
getLocation();
......@@ -57,21 +54,21 @@ public class LocationUtils1 {
/**
* 添加回调事件
*
* @param addressCallback
*/
private void addAddressCallback(AddressCallback addressCallback){
private void addAddressCallback(AddressCallback addressCallback) {
addressCallbacks.add(addressCallback);
if(isInit){
showLocation();
}
showLocation();
}
/**
* 移除回调事件
*
* @param addressCallback
*/
public void removeAddressCallback(AddressCallback addressCallback){
if(addressCallbacks.contains(addressCallback)){
public void removeAddressCallback(AddressCallback addressCallback) {
if (addressCallbacks.contains(addressCallback)) {
addressCallbacks.remove(addressCallback);
}
}
......@@ -79,10 +76,11 @@ public class LocationUtils1 {
/**
* 清空回调事件
*/
public void cleareAddressCallback(){
public void cleareAddressCallback() {
removeLocationUpdatesListener();
addressCallbacks.clear();
}
private void getLocation() {
//1.获取位置管理器
locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
......@@ -127,16 +125,16 @@ public class LocationUtils1 {
//获取经纬度
private void showLocation() {
if(location == null){
if (location == null) {
getLocation();
}else {
} else {
double latitude = location.getLatitude();//纬度
double longitude = location.getLongitude();//经度
// for(AddressCallback addressCallback:addressCallbacks){
// addressCallback.onGetLocation(latitude,longitude);
// }
if(addressCallback != null){
addressCallback.onGetLocation(latitude,longitude);
if (addressCallback != null) {
addressCallback.onGetLocation(latitude, longitude);
}
getAddress(latitude, longitude);
}
......@@ -161,7 +159,7 @@ public class LocationUtils1 {
//街道名称:广东省深圳市罗湖区蔡屋围一街深圳瑞吉酒店
// System.out.println("addressLine=====" + addressLine);
}
if(addressCallback != null){
if (addressCallback != null) {
addressCallback.onGetAddress(address);
}
// for(AddressCallback addressCallback:addressCallbacks){
......@@ -214,9 +212,11 @@ public class LocationUtils1 {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
showLocation();
}
public interface AddressCallback{
public interface AddressCallback {
void onGetAddress(Address address);
void onGetLocation(double lat,double lng);
void onGetLocation(double lat, double lng);
}
}
......@@ -42,6 +42,10 @@ public class OrderApiFactory {
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) {
return Api.getService(OrderService.class).getErrorOrders(userId, siteId).compose(Api.applySchedulers());
}
......@@ -76,13 +80,14 @@ public class OrderApiFactory {
return Api.getService(OrderService.class).getTabNum(userId).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> getOrderInfo(int orderId,int engineerId) {
return Api.getService(OrderService.class).getOrderInfo(orderId,engineerId).compose(Api.applySchedulers());
public static Observable<OrderDetail> getOrderInfo(int orderId, int engineerId) {
return Api.getService(OrderService.class).getOrderInfo(orderId, engineerId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<ServerInstruction>> getInstruction(long id, int page, int pageSize) {
return Api.getService(OrderService.class).getInstruction(id, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<List<OperateInfo>> getOperateInfo(OperatePostData data) {
return Api.getService(OrderService.class).getOperateInfo(data.spuIds).compose(Api.applySchedulers());
}
......@@ -162,8 +167,9 @@ public class OrderApiFactory {
public static Observable<String> createUrl(int orderId) {
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) {
......@@ -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) {
return Api.getService(OrderService.class).getComment(targetId, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Boolean> addComment(CommentPostData data) {
return Api.getService(OrderService.class).addComment(data).compose(Api.applySchedulers());
}
public static Observable<Boolean> addCommentReply(CommentReplyData data) {
return Api.getService(OrderService.class).addCommentReply(data).compose(Api.applySchedulers());
}
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 {
Observable<BaseResponse<Integer>> startServer(@Body RequestBody body);
/**
* 更新地址.
*
* @param body
* @return
*/
@POST(OrderConstant.UPDATE_ADDRESS)
Observable<BaseResponse<Boolean>> updateAddress(@Body RequestBody body);
/**
* 获取工单记录列表.
*
* @param state
......
......@@ -48,6 +48,10 @@ public class OrderConstant {
*/
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";
......
package com.dayu.order.presenter.orderdoing;
import static com.dayu.utils.UIUtils.getString;
import android.databinding.ObservableField;
import android.os.Bundle;
......@@ -36,6 +34,8 @@ import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.dayu.utils.UIUtils.getString;
/**
* Created by luofan
* on 2017/11/8.
......@@ -135,14 +135,22 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
}
@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<>();
params.put("latitude", latitude);
params.put("longitude", longitude);
params.put("orderId", orderId);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
return OrderApiFactory.startServer(body);
return OrderApiFactory.updateAddress(body);
}
@Override
......
......@@ -44,7 +44,7 @@ public interface orderDoingContract {
* @param longitude
* @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);
......
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.app.Activity;
import android.content.Intent;
......@@ -14,7 +11,6 @@ import android.text.TextUtils;
import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter;
import com.amap.api.location.AMapLocation;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.adapter.CoreAdapter;
......@@ -56,6 +52,9 @@ import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
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
}
holder.itemTextUserName.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订单关闭
//工单子状态:3已预约1未出发|3已预约2已出发|4进行中3无SOP处理|4进行中4SOP未完成|4进行中5SOP已完成
String time = "";
......@@ -452,7 +451,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if (mItem.getStatus() == 3) {
RxPermissions permissions = new RxPermissions((Activity) mContext);
if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) {
getLocation(h, posiiton);
startFirstServe(h, posiiton);
} else {
CustomDialog mDialog = new CustomDialog((Activity) mContext, com.dayu.baselibrary.R.style.CustomDialog, "大鱼需要你的定位权限,用于记录处理sop的当前位置"
, (dialog, confirm) -> {
......@@ -462,7 +461,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if (aBoolean) {
ProgressUtil.setCanDismiss(false);
ProgressUtil.startLoad(mContext);
getLocation(h, posiiton);
startFirstServe(h, posiiton);
} else {
ToastUtils.showShortToast("权限申请失败!");
}
......@@ -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() {
@Override
public void onGetAddress(Address address) {
......@@ -490,28 +489,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
@Override
public void onGetLocation(double lat, double lng) {
if (lat != 0) {
startFirstServe(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");
updateAddress(lat, lng);
}
}
});
......@@ -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) {
// int status = UserManager.getInstance().getUser().getDetectStatus();
// 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