Commit 88f401b0 by 罗翻

android v1.9.5

parent 8752da76
Showing with 388 additions and 219 deletions
......@@ -39,7 +39,7 @@
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!--华为小红点-->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<application
......@@ -90,7 +90,7 @@
<!-- 高德地图 -->
<meta-data
android:name="com.amap.api.v2.apikey"
android:name="com.amap.protocol.v2.apikey"
android:value="05936ed54259770e56ffd1e67ac77958" />
<service android:name="com.amap.api.location.APSService" />
......@@ -106,9 +106,9 @@
android:name="com.hyphenate.chat.EMJobService"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
<service android:name=".ui.service.LocationService"
android:exported="true"
/>
<service
android:name=".ui.service.LocationService"
android:exported="true" />
<!-- 声明SDK所需的receiver -->
<receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
<intent-filter>
......
......@@ -11,7 +11,6 @@ import okhttp3.RequestBody;
*/
public class ApiFactory {
public static Observable<Boolean> commitVersionInfo(RequestBody requestBody) {
return Api.getService(APIService.class).commitVersionInfo(requestBody).compose(Api.applySchedulers());
}
......
......@@ -83,13 +83,11 @@ public class LocationService extends Service {
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) {
String accounid = intent.getStringExtra(Constants.ACCOUNT_ID);
String siteID = intent.getStringExtra(Constants.ID);
Integer siteID = intent.getIntExtra(Constants.ID,0);
if (accounid != null) {
mAccountId = Integer.parseInt(accounid);
}
if (siteID != null) {
mSiteId = Integer.parseInt(siteID);
}
mSiteId = siteID;
}
sendMessage();
return super.onStartCommand(intent, flags, startId);
......
......@@ -56,7 +56,7 @@ public class HxManager {
private Context mContext;
private LicenceDialog mDialog;
private int mCount = 0;
private long mpreTime=0;
private long mpreTime = 0;
private HxManager() {
}
......@@ -93,8 +93,6 @@ public class HxManager {
EMMessageListener msgListener = new EMMessageListener() {
@Override
public void onMessageReceived(List<EMMessage> messages) {
//收到消息
// boolean flag = false; //语音是否播报
for (EMMessage message : messages) {
String messagebody = message.getBody().toString();
String content = messagebody.substring(5, messagebody.length() - 1);
......@@ -168,6 +166,10 @@ public class HxManager {
res = R.raw.manager_order;
} else if (info.getCategory() == 1 && (info.getFunctionType() == 5)) {
res = R.raw.eu_order;
} else if (info.getCategory() == 1 && (info.getFunctionType() == 6)) {
res = R.raw.new_order_manager;
} else if (info.getCategory() == 1 && (info.getFunctionType() == 7)) {
res = R.raw.eu_manager;
}
if (System.currentTimeMillis() - mpreTime >= 3000 && res != -1) {
MediaPlayer player = MediaPlayer.create(mContext, res);
......
......@@ -106,6 +106,9 @@ public class ServerException extends Exception {
case "KAORDER0014":
message = UIUtils.getString(R.string.bargain_order);
break;
case "KAORDER0010":
message = UIUtils.getString(R.string.server_order_error);
break;
/**全局错误*/
case "GLOBAL0001":
message = BaseApplication.getContext().getString(R.string.global0001); //参数错误
......
......@@ -12,16 +12,16 @@ public class Constants {
/**
* 测试环境配置.
*/
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String ENVIROMENT = "debug";
// public static final String BASE_URL = "http://47.94.101.239:3112";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
// public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
// public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
// public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final boolean IS_DEBUG = true;
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String ENVIROMENT = "debug";
public static final String BASE_URL = "http://47.94.101.239:3112";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final boolean IS_DEBUG = true;
/**
* uat环境配置.
......@@ -40,16 +40,16 @@ public class Constants {
/**
* 正式环境.
*/
public static final String ENVIROMENT = "release";
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String BASE_URL = "https://mobile.kf.ai";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public static final boolean IS_DEBUG = false;
// public static final String ENVIROMENT = "release";
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String BASE_URL = "https://mobile.kf.ai";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
// public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
// public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
// public static final boolean IS_DEBUG = false;
/**
* 演示环境
......
......@@ -178,6 +178,7 @@
<string name="swtich_service_station">切换服务站</string>
<string name="can_grab_order">可抢单</string>
<string name="bargain_order">已议价</string>
<string name="server_order_error">服务单被抢</string>
<string name="order_bargain_price">发单价:</string>
<string name="bargain_price">议价</string>
<string name="bargain_now">立即议价</string>
......@@ -248,7 +249,7 @@
<string name="order_part">备件信息</string>
<string name="return_one_order_part">寄回一个备件</string>
<string name="apply_one_order_part">申请一个备件</string>
<string name="order_instruction">服务说明</string>
<string name="order_instruction">视频操作指南</string>
<string name="open_webview">浏览器打开</string>
<string name="select_webview">请选择浏览器</string>
<string name="history_order">历史工单</string>
......
......@@ -5,11 +5,11 @@ buildscript {
ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 16
ext.target_sdk_version = 23
ext.version_code = 17
ext.verson_name = "1.9.4"
ext.version_code = 18
ext.verson_name = "1.9.5"
ext.gradle_version = '3.1.4'
ext.isReleaseMinify = true
ext.isDebugMinify = true
ext.isDebugMinify = false
ext.arouter_api_version = '1.3.1'
ext.arouter_compiler_version = '1.1.4'
......
......@@ -27,8 +27,8 @@ public class ManagerApiFactory {
return Api.getService(ManagerService.class).getOrders(page, pageSize, status, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<GrabOrder>> getGrapOrder(int page, int pageSize, int siteId) {
return Api.getService(ManagerService.class).getGrapOrder(page, pageSize, siteId).compose(Api.applySchedulers());
public static Observable<BasePageBean<GrabOrder>> getGrapOrder(int page, int pageSize, int siteId,int provinceId,int cityId) {
return Api.getService(ManagerService.class).getGrapOrder(page, pageSize, siteId,provinceId,cityId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<GrabOrder>> getBarginOrder(int page, int pageSize, int siteId) {
......@@ -63,8 +63,8 @@ public class ManagerApiFactory {
return Api.getService(ManagerService.class).getBargainPrice(spSiteId, kaOrderId).compose(Api.applySchedulers());
}
public static Observable<Boolean> receiveOrder(int kaOrderId, int providerSiteId, String providerSiteName) {
return Api.getService(ManagerService.class).receiveOrder(kaOrderId, providerSiteId, providerSiteName).compose(Api.applySchedulers());
public static Observable<Boolean> receiveOrder(int kaOrderId, int providerSiteId, String providerSiteName,int engineerId,String engineerName) {
return Api.getService(ManagerService.class).receiveOrder(kaOrderId, providerSiteId, providerSiteName,engineerId,engineerName).compose(Api.applySchedulers());
}
public static Observable<SpInfo> querySpInfo(int accountId) {
......
......@@ -58,7 +58,7 @@ public interface ManagerService {
* @return
*/
@GET(ManagerConstant.GRAP_ORDER_LIST)
Observable<BaseResponse<BasePageBean<GrabOrder>>> getGrapOrder(@Query("page") int page, @Query("pageSize") int pageSize, @Query("siteId") int siteId);
Observable<BaseResponse<BasePageBean<GrabOrder>>> getGrapOrder(@Query("page") int page, @Query("pageSize") int pageSize, @Query("siteId") int siteId,@Query("provinceId") int provinceId,@Query("cityId") int cityId);
/**
* 获取议价列表.
......@@ -151,7 +151,8 @@ public interface ManagerService {
* @return
*/
@POST(ManagerConstant.RECEIVE_ORDER)
Observable<BaseResponse<Boolean>> receiveOrder(@Query("kaOrderId") int kaOrderId, @Query("providerSiteId") int providerSiteId, @Query("providerSiteName") String providerSiteName);
Observable<BaseResponse<Boolean>> receiveOrder(@Query("kaOrderId") int kaOrderId, @Query("providerSiteId") int providerSiteId, @Query("providerSiteName") String providerSiteName
, @Query("engineerId") int engineerId, @Query("engineerName") String engineerName);
/**
* 查询sp信息.
......
......@@ -10,7 +10,7 @@ import com.dayu.utils.UIUtils;
public class ManagerConstant {
public final static String[] tabs = {UIUtils.getString(R.string.send_order), UIUtils.getString(R.string.grab_order)
public final static String[] tabs = {UIUtils.getString(R.string.grab_order), UIUtils.getString(R.string.send_order)
, UIUtils.getString(R.string.subcribe_order), UIUtils.getString(R.string.change_order)};
public final static String[] GRAB_TAB = {UIUtils.getString(R.string.can_grab_order), UIUtils.getString(R.string.bargain_order)};
......
......@@ -810,12 +810,13 @@ public class OrderDetail implements Serializable {
}
}
public static class accessories implements Serializable {
public class accessories implements Serializable {
private int id;
private String name;
private int orderId;
private String url;
public int getId() {
return id;
}
......
......@@ -4,6 +4,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -12,7 +13,7 @@ import java.util.List;
*/
public class Spu implements Serializable, Parcelable {
private int accreditPrice;
private Double accreditPrice;
private int categoryThreeId;
private int finNum;
private int goodNum;
......@@ -79,10 +80,6 @@ public class Spu implements Serializable, Parcelable {
this.listPic = listPic;
}
public static Creator<Spu> getCREATOR() {
return CREATOR;
}
public String getSn() {
return sn;
}
......@@ -115,11 +112,11 @@ public class Spu implements Serializable, Parcelable {
this.time = time;
}
public int getAccreditPrice() {
public Double getAccreditPrice() {
return accreditPrice;
}
public void setAccreditPrice(int accreditPrice) {
public void setAccreditPrice(Double accreditPrice) {
this.accreditPrice = accreditPrice;
}
......@@ -227,6 +224,38 @@ public class Spu implements Serializable, Parcelable {
this.providerTypeName = providerTypeName;
}
public class Pic {
private int id;
private int ordersRelationSpuItemId;
private String pictureUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrdersRelationSpuItemId() {
return ordersRelationSpuItemId;
}
public void setOrdersRelationSpuItemId(int ordersRelationSpuItemId) {
this.ordersRelationSpuItemId = ordersRelationSpuItemId;
}
public String getPictureUrl() {
return pictureUrl;
}
public void setPictureUrl(String pictureUrl) {
this.pictureUrl = pictureUrl;
}
}
@Override
public int describeContents() {
return 0;
......@@ -234,7 +263,7 @@ public class Spu implements Serializable, Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.accreditPrice);
dest.writeValue(this.accreditPrice);
dest.writeInt(this.categoryThreeId);
dest.writeInt(this.finNum);
dest.writeInt(this.goodNum);
......@@ -252,13 +281,18 @@ public class Spu implements Serializable, Parcelable {
dest.writeInt(this.status);
dest.writeString(this.brandName);
dest.writeString(this.sn);
dest.writeString(this.customerCheckComment);
dest.writeList(this.listPic);
dest.writeValue(this.needSerialNumPic);
dest.writeString(this.serialNumPicUrl);
dest.writeInt(this.accountType);
}
public Spu() {
}
protected Spu(Parcel in) {
this.accreditPrice = in.readInt();
this.accreditPrice = (Double) in.readValue(Double.class.getClassLoader());
this.categoryThreeId = in.readInt();
this.finNum = in.readInt();
this.goodNum = in.readInt();
......@@ -276,6 +310,12 @@ public class Spu implements Serializable, Parcelable {
this.status = in.readInt();
this.brandName = in.readString();
this.sn = in.readString();
this.customerCheckComment = in.readString();
this.listPic = new ArrayList<Pic>();
in.readList(this.listPic, Pic.class.getClassLoader());
this.needSerialNumPic = (Integer) in.readValue(Integer.class.getClassLoader());
this.serialNumPicUrl = in.readString();
this.accountType = in.readInt();
}
public static final Creator<Spu> CREATOR = new Creator<Spu>() {
......@@ -289,35 +329,4 @@ public class Spu implements Serializable, Parcelable {
return new Spu[size];
}
};
public class Pic {
private int id;
private int ordersRelationSpuItemId;
private String pictureUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrdersRelationSpuItemId() {
return ordersRelationSpuItemId;
}
public void setOrdersRelationSpuItemId(int ordersRelationSpuItemId) {
this.ordersRelationSpuItemId = ordersRelationSpuItemId;
}
public String getPictureUrl() {
return pictureUrl;
}
public void setPictureUrl(String pictureUrl) {
this.pictureUrl = pictureUrl;
}
}
}
\ No newline at end of file
package com.dayu.managercenter.presenter.bargainorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.GrabOrder;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
......@@ -13,6 +16,8 @@ public interface BargainContract {
interface View extends BaseView {
void showReceiveDialog(GrabOrder order);
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
......@@ -25,5 +30,10 @@ public interface BargainContract {
* 接单.
*/
public abstract void receive(int id);
/**
* 获取工程师列表.
*/
public abstract void getEngineers();
}
}
package com.dayu.managercenter.presenter.bargainorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.managercenter.data.Engineer;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
......@@ -27,6 +20,7 @@ public class BargainPresenter extends BargainContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
private int mId;
private int mOrderId;
private ServiceStation mStation;
@Override
......@@ -42,6 +36,7 @@ public class BargainPresenter extends BargainContract.Presenter {
@Override
public void getBargainOrders() {
mView.showDialog();
ManagerApiFactory.getBarginOrder(mPage, Constants.PAGESIZE, mId).subscribe(
baseObserver(orders -> datas.set(orders)
, error -> datas.set(Constants.FAILED))
......@@ -50,21 +45,41 @@ public class BargainPresenter extends BargainContract.Presenter {
@Override
public void receive(int id) {
ManagerApiFactory.receiveOrder(id, mStation.getId(), mStation.getName()).subscribe(baseObserver(aBoolean -> {
mView.showDialog();
mOrderId = id;
getEngineers();
}
private void receive(int accountId, String name) {
mView.showDialog();
ManagerApiFactory.receiveOrder(mOrderId, mStation.getId(), mStation.getName(), accountId, name).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> {
EventBus.getDefault().post(new ManagerReceiveEvent());
EventBus.getDefault().post(new DesignateEvent());
});
}));
}
@Override
public void getEngineers() {
mView.showDialog();
ManagerApiFactory.getEngineers(mStation.getId()).subscribe(baseObserver(
this::showEngineerDialog));
}
private void showEngineerDialog(List<Engineer> engineers) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
int accountId = engineers.get(options1).getAccountId();
String name = engineers.get(options1).getRealName();
receive(accountId, name);
});
}
@Override
public void refresh() {
mPage = 1;
getBargainOrders();
......
package com.dayu.managercenter.presenter.graborder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.GrabOrder;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
......@@ -15,6 +18,8 @@ public interface GrabContract {
void showBargainDialog(GrabOrder order);
void showReceiveDialog(GrabOrder order);
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
......@@ -34,5 +39,10 @@ public interface GrabContract {
* 接单.
*/
public abstract void receive(GrabOrder order);
/**
* 获取工程师列表.
*/
public abstract void getEngineers();
}
}
......@@ -7,10 +7,10 @@ import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.SpInfo;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
......@@ -19,7 +19,9 @@ import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
......@@ -38,12 +40,16 @@ public class GrabPresenter extends GrabContract.Presenter {
private ServiceStation mStation;
private SpInfo mSpInfo;
private int mAccountId;
private GrabOrder mOrder;
private String mPrice;
private int type;
@Override
public void onAttached() {
mStation = StationManager.getInstance().getStation();
mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId());
mId = mStation.getId();
getGrapOrders();
}
@Override
......@@ -53,7 +59,8 @@ public class GrabPresenter extends GrabContract.Presenter {
@Override
public void getGrapOrders() {
ManagerApiFactory.getGrapOrder(mPage, Constants.PAGESIZE, mId).subscribe(
mView.showDialog();
ManagerApiFactory.getGrapOrder(mPage, Constants.PAGESIZE, mId,mStation.getProvinceId(),mStation.getCityId()).subscribe(
baseObserver(orders -> datas.set(orders)
, error -> datas.set(Constants.FAILED))
);
......@@ -69,21 +76,30 @@ public class GrabPresenter extends GrabContract.Presenter {
@Override
public void bargain(String price, GrabOrder order) {
mView.showDialog();
mOrder = order;
mPrice = price;
type = ManagerConstant.BARGAIN_ORDER;
getEngineers();
}
private void barginOrder(int accountId, String name) {
HashMap<String, Object> params = new HashMap<>();
params.put("companyId", order.getCompanyId());
params.put("kaOrderId", order.getId());
params.put("price", price);
params.put("companyId", mOrder.getCompanyId());
params.put("kaOrderId", mOrder.getId());
params.put("price", mPrice);
params.put("result", 0);
params.put("spProviderId", mSpInfo.getId());
params.put("spProviderName", mSpInfo.getName());
params.put("spSiteId", order.getSiteId());
params.put("spSiteName", order.getSiteName());
params.put("spSiteId", mOrder.getSiteId());
params.put("spSiteName", mOrder.getSiteName());
params.put("engineerId", accountId);
params.put("engineerName", name);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (order.getId()));
bundle.putInt(Constants.ID, (mOrder.getId()));
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread())
......@@ -93,18 +109,46 @@ public class GrabPresenter extends GrabContract.Presenter {
@Override
public void receive(GrabOrder order) {
ManagerApiFactory.receiveOrder(order.getId(), order.getSiteId(), order.getSiteName()).subscribe(baseObserver(aBoolean -> {
mOrder = order;
type = ManagerConstant.GRAB_ORDER;
mView.showDialog();
getEngineers();
}
private void receive(int accountId, String name) {
mView.showDialog();
ManagerApiFactory.receiveOrder(mOrder.getId(), mOrder.getSiteId(), mOrder.getSiteName(), accountId, name).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, order.getId());
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> EventBus.getDefault().post(new ManagerReceiveEvent()));
}));
}
@Override
public void getEngineers() {
mView.showDialog();
ManagerApiFactory.getEngineers(mStation.getId()).subscribe(baseObserver(
this::showEngineerDialog));
}
private void showEngineerDialog(List<Engineer> engineers) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
int accountId = engineers.get(options1).getAccountId();
String name = engineers.get(options1).getRealName();
if (type == ManagerConstant.GRAB_ORDER) {
receive(accountId, name);
} else {
barginOrder(accountId, name);
}
});
}
@Override
public void refresh() {
mPage = 1;
getGrapOrders();
......
......@@ -35,11 +35,6 @@ public interface SendDetailContract {
public abstract void getEngineers();
/**
* 指派或改派工程师
*/
public abstract void managerOrder();
public abstract void querySpInfo(int state);
/**
......
......@@ -15,7 +15,6 @@ import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
......@@ -27,7 +26,6 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import okhttp3.MediaType;
......@@ -47,6 +45,9 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
private ServiceStation mStation;
private int mState;
private SpInfo mSpInfo;
private OrderDetail mOrder;
private String mPrice;
private int type;
@Override
......@@ -104,12 +105,18 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
int accountId = engineers.get(options1).getAccountId();
String name = engineers.get(options1).getRealName();
if (mState == ManagerConstant.CHANGE_ORDER) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, mId);
bundle.putInt(Constants.STATE, 1);
mView.startActivityForReult(ChangeReasonActivity.class, bundle, 100);
} else if (type == ManagerConstant.GRAB_ORDER) {
receive(accountId, name);
} else if (type == ManagerConstant.BARGAIN_ORDER) {
barginOrder(accountId, name);
} else {
designate(engineers.get(options1).getAccountId());
}
......@@ -117,10 +124,6 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
}
@Override
public void managerOrder() {
}
@Override
public void querySpInfo(int state) {
mView.showDialog();
ManagerApiFactory.querySpInfo(Integer.parseInt(mAccountId)).subscribe(baseObserver(
......@@ -133,20 +136,30 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
@Override
public void bargain(String price, OrderDetail order) {
mView.showDialog();
mOrder = order;
mPrice = price;
type = ManagerConstant.BARGAIN_ORDER;
getEngineers();
}
private void barginOrder(int accountId, String name) {
mView.showDialog();
HashMap<String, Object> params = new HashMap<>();
params.put("companyId", order.getKaCompanyId());
params.put("kaOrderId", order.getId());
params.put("price", price);
params.put("companyId", mOrder.getKaCompanyId());
params.put("kaOrderId", mOrder.getId());
params.put("price", mPrice);
params.put("result", 0);
params.put("spProviderId", mSpInfo.getId());
params.put("spProviderName", mSpInfo.getName());
params.put("spSiteId", mStation.getId());
params.put("spSiteName", mStation.getName());
params.put("accountId", accountId);
params.put("name", name);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (order.getId()));
bundle.putInt(Constants.ID, (mOrder.getId()));
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
EventBus.getDefault().post(new RefreshGrabEvent(1));
......@@ -156,20 +169,21 @@ public class SendDetailPresenter extends SendDetailContract.Presenter {
@Override
public void receive(int id) {
ManagerApiFactory.receiveOrder(id, mStation.getId(), mStation.getName()).subscribe(baseObserver(aBoolean -> {
mView.showDialog();
type = ManagerConstant.GRAB_ORDER;
getEngineers();
}
private void receive(int accountId, String name) {
mView.showDialog();
ManagerApiFactory.receiveOrder(mId, mStation.getId(), mStation.getName(), accountId, name).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
mView.dumpBack();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> {
EventBus.getDefault().post(new ManagerReceiveEvent());
EventBus.getDefault().post(new DesignateEvent());
});
EventBus.getDefault().post(new RefreshGrabEvent(1));
}));
}
@Override
public void getBargainPrice(int kaOrderId) {
ManagerApiFactory.getBargainPrice(mStationId, kaOrderId).subscribe(baseObserver(detail -> {
......
......@@ -156,6 +156,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
mDialog.setError(getString(R.string.bargain_dialog_error));
} else {
mPresenter.bargain(editText.getText().toString().trim(), mDetail);
mDialog.dismiss();
}
}
});
......
......@@ -104,19 +104,23 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
private void setTime(String endTime, ItemGrabBargainBinding holder, int position) {
long time = UtilsDate.timeSub(endTime);
CountDownTimer timer = TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
@Override
public void onProcess(int day, int hour, int minute, int second) {
String str = UIUtils.getString(R.string.grab_time);
String result = String.format(str, day, hour, minute, second);
holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
}
if (time>0){
CountDownTimer timer = TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
@Override
public void onProcess(int day, int hour, int minute, int second) {
String str = UIUtils.getString(R.string.grab_time);
String result = String.format(str, day, hour, minute, second);
holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
}
@Override
public void onFinish() {
((GrabPresenter) mPresenter).getGrapOrders();
}
});
holder.leftTime.setTag(timer);
@Override
public void onFinish() {
((GrabPresenter) mPresenter).getGrapOrders();
}
});
holder.leftTime.setTag(timer);
}else {
holder.leftTime.setText("");
}
}
}
......@@ -2,6 +2,9 @@ package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
......@@ -22,6 +25,8 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
/**
* Created by luofan
* on 2018/8/27.
......@@ -97,6 +102,17 @@ public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecy
customDialog.show();
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(RefreshGrabEvent event) {
mPresenter.refresh();
......
......@@ -2,6 +2,9 @@ package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
......@@ -22,6 +25,8 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
/**
* Created by luofan
* on 2018/8/27.
......@@ -48,7 +53,7 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
@Override
protected void lazyLoad() {
mPresenter.getGrapOrders();
}
@Override
......@@ -116,6 +121,17 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
customDialog.show();
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(RefreshGrabEvent event) {
mPresenter.refresh();
......
......@@ -35,7 +35,6 @@ import java.util.List;
* on 2018/8/27.
*/
public class ManagerFragment extends DataBindingFragment<FragmentManagerBinding> {
private List<Fragment> mFragments;
public static ManagerFragment newInstance() {
Bundle args = new Bundle();
......@@ -75,9 +74,9 @@ public class ManagerFragment extends DataBindingFragment<FragmentManagerBinding>
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
});
mFragments = new ArrayList<>();
mFragments.add(SendOrderFragment.newInstance());
List<Fragment> mFragments = new ArrayList<>();
mFragments.add(GrabOrderFragment.newInstance());
mFragments.add(SendOrderFragment.newInstance());
mFragments.add(SubcribeOrderFragment.newInstance());
mFragments.add(ChangeOrderFragment.newInstance());
FragmentBaseAdapter adapter = FragmentBaseAdapter.newInstance(getFragmentManager(), mFragments, Arrays.asList(ManagerConstant.tabs));
......@@ -86,12 +85,10 @@ public class ManagerFragment extends DataBindingFragment<FragmentManagerBinding>
mBind.tab.setTabMode(TabLayout.MODE_FIXED);
mBind.viewpager.setOffscreenPageLimit(4);
TabLayoutUtils.setIndicator(mBind.tab, 10, 10, R.color.cl_receiving_order_item_data, getActivity());
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(ManagerReceiveEvent event) {
mBind.viewpager.setCurrentItem(0);
}
}
......@@ -32,8 +32,8 @@
android:id="@+id/order_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:textColor="@color/cl_home_button" />
......@@ -86,9 +86,9 @@
android:drawableLeft="@drawable/icon_money"
android:drawablePadding="3dp"
android:text="报价"
android:visibility="gone"
android:textColor="@color/default_editext_color"
android:textSize="13sp" />
android:textSize="13sp"
android:visibility="gone" />
<TextView
android:id="@+id/grap_price"
......@@ -97,12 +97,12 @@
android:layout_below="@+id/create_time"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:drawablePadding="3dp"
android:layout_toRightOf="@+id/tv_grap_price"
android:drawablePadding="3dp"
android:text="100元"
android:visibility="gone"
android:textColor="@color/default_editext_color"
android:textSize="13sp" />
android:textSize="13sp"
android:visibility="gone" />
<View
android:id="@+id/line"
......@@ -167,8 +167,7 @@
android:layout_below="@+id/receive_order"
android:layout_marginBottom="11dp"
android:layout_marginRight="15dp"
android:layout_marginTop="6dp"
android:text="还剩余2小时23分30秒" />
android:layout_marginTop="6dp" />
<ImageView
android:id="@+id/arrow"
......
......@@ -4,6 +4,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -12,7 +13,7 @@ import java.util.List;
*/
public class Spu implements Serializable, Parcelable {
private int accreditPrice;
private Double accreditPrice;
private int categoryThreeId;
private int finNum;
private int goodNum;
......@@ -70,10 +71,6 @@ public class Spu implements Serializable, Parcelable {
this.listPic = listPic;
}
public static Creator<Spu> getCREATOR() {
return CREATOR;
}
public String getSn() {
return sn;
}
......@@ -106,11 +103,11 @@ public class Spu implements Serializable, Parcelable {
this.time = time;
}
public int getAccreditPrice() {
public Double getAccreditPrice() {
return accreditPrice;
}
public void setAccreditPrice(int accreditPrice) {
public void setAccreditPrice(Double accreditPrice) {
this.accreditPrice = accreditPrice;
}
......@@ -218,6 +215,37 @@ public class Spu implements Serializable, Parcelable {
this.providerTypeName = providerTypeName;
}
public class Pic {
private int id;
private int ordersRelationSpuItemId;
private String pictureUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrdersRelationSpuItemId() {
return ordersRelationSpuItemId;
}
public void setOrdersRelationSpuItemId(int ordersRelationSpuItemId) {
this.ordersRelationSpuItemId = ordersRelationSpuItemId;
}
public String getPictureUrl() {
return pictureUrl;
}
public void setPictureUrl(String pictureUrl) {
this.pictureUrl = pictureUrl;
}
}
@Override
public int describeContents() {
return 0;
......@@ -225,7 +253,7 @@ public class Spu implements Serializable, Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.accreditPrice);
dest.writeValue(this.accreditPrice);
dest.writeInt(this.categoryThreeId);
dest.writeInt(this.finNum);
dest.writeInt(this.goodNum);
......@@ -243,13 +271,17 @@ public class Spu implements Serializable, Parcelable {
dest.writeInt(this.status);
dest.writeString(this.brandName);
dest.writeString(this.sn);
dest.writeString(this.customerCheckComment);
dest.writeList(this.listPic);
dest.writeValue(this.needSerialNumPic);
dest.writeString(this.serialNumPicUrl);
}
public Spu() {
}
protected Spu(Parcel in) {
this.accreditPrice = in.readInt();
this.accreditPrice = (Double) in.readValue(Double.class.getClassLoader());
this.categoryThreeId = in.readInt();
this.finNum = in.readInt();
this.goodNum = in.readInt();
......@@ -267,6 +299,11 @@ public class Spu implements Serializable, Parcelable {
this.status = in.readInt();
this.brandName = in.readString();
this.sn = in.readString();
this.customerCheckComment = in.readString();
this.listPic = new ArrayList<Pic>();
in.readList(this.listPic, Pic.class.getClassLoader());
this.needSerialNumPic = (Integer) in.readValue(Integer.class.getClassLoader());
this.serialNumPicUrl = in.readString();
}
public static final Creator<Spu> CREATOR = new Creator<Spu>() {
......@@ -280,35 +317,4 @@ public class Spu implements Serializable, Parcelable {
return new Spu[size];
}
};
public class Pic {
private int id;
private int ordersRelationSpuItemId;
private String pictureUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrdersRelationSpuItemId() {
return ordersRelationSpuItemId;
}
public void setOrdersRelationSpuItemId(int ordersRelationSpuItemId) {
this.ordersRelationSpuItemId = ordersRelationSpuItemId;
}
public String getPictureUrl() {
return pictureUrl;
}
public void setPictureUrl(String pictureUrl) {
this.pictureUrl = pictureUrl;
}
}
}
\ No newline at end of file
......@@ -255,6 +255,7 @@ public class MultiProcessOrderPresenter extends MultiProcessOrderContract.Presen
bundle.putInt(Constants.ORDER_ID, mSpu.getId());
bundle.putSerializable(OrderConstant.SPU, mSpu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
bundle.putInt(Constants.STATE, mState);
mView.startActivityAndFinish(SopWebViewActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop");
}
......
......@@ -19,6 +19,8 @@ public interface ServerInfoContract {
public abstract void dumpServerList(int id);
public abstract void getServerList(int id);
public abstract void callPhone();
public abstract void getPhone();
......
......@@ -9,8 +9,11 @@ import com.dayu.common.Constants;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.MultiProcessOrderActivity;
import com.dayu.order.ui.activity.ServerListActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -54,7 +57,7 @@ public class ServerInfoPresenter extends ServerInfoContract.Presenter {
spus.get(0).setTime(order.getConfirmDoorTime());
mDatas.set(spus);
mCanProcess.set(order.getCommited());
if (order.getCommited()==2){
if (order.getCommited() == 2) {
mView.showTip();
}
}));
......@@ -69,6 +72,30 @@ public class ServerInfoPresenter extends ServerInfoContract.Presenter {
}
@Override
public void getServerList(int id) {
mView.showDialog();
OrderApiFactory.getServerList(id).subscribe(baseObserver(spus -> {
Spu spu = spus.get(0);
ArrayList<Spu> mUnFinishSpus = new ArrayList<>();
if (spu.getStatus() == 1) {
mUnFinishSpus.add(spu);
}
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, spu.getId());
bundle.putInt(Constants.STATE, 2);
bundle.putSerializable(OrderConstant.SPU, spu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0);
bundle.putInt(OrderConstant.KAADDRESSID, mKaId);
if (spu.getSopStatus() == 1 && spu.getStatus() == 1) {
mView.startActivity(SopWebViewActivity.class, bundle);
} else {
mView.startActivity(MultiProcessOrderActivity.class, bundle);
}
}));
}
@Override
public void callPhone() {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + mPhone));
......
......@@ -23,6 +23,7 @@ import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
public class ServerInfoAdapter extends CoreAdapter<Spu, ItemServerInfoBinding> {
private ServerInfoPresenter mServerPresenter;
public ServerInfoAdapter(boolean needFoot) {
super(needFoot);
}
......@@ -36,9 +37,9 @@ public class ServerInfoAdapter extends CoreAdapter<Spu, ItemServerInfoBinding> {
if (item.getServiceType() == 1) {
holder.tvServerType.setText("上门服务");
}
if (TextUtils.isEmpty(item.getKaSpuName())){
if (TextUtils.isEmpty(item.getKaSpuName())) {
holder.tvServerRequest.setText("无服务要求");
}else{
} else {
holder.tvServerRequest.setText(item.getKaSpuName());
}
String str = UIUtils.getString(R.string.single_server_num);
......@@ -59,9 +60,10 @@ public class ServerInfoAdapter extends CoreAdapter<Spu, ItemServerInfoBinding> {
holder.itemTime.setText(dateTime);
holder.itemTime.setVisibility(View.VISIBLE);
}
holder.processOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.processOrder.setOnClickListener(v -> {
if (item.getGoodNum() == 1) {
mServerPresenter.getServerList(item.getId());
} else {
mServerPresenter.dumpServerList(item.getId());
}
});
......
......@@ -116,8 +116,6 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
@Override
public void dumpAndSave(UserInfo info) {
// info.getRoles().clear();
// info.getRoles().add(3);
switch (UserManager.getInstance().getRole(info)) {
case Constants.MANAGER:
UserManager.getInstance().saveUser(info);
......
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