Commit 3718a94e by 罗翻

增加多任务

parents 17d47526 c44e43ba
Showing with 3218 additions and 128 deletions
......@@ -294,7 +294,7 @@ public class LivenessActivity extends Activity
@Override
public void onFrameDetected(long timeout, DetectionFrame detectionFrame) {
// 如果需要适配加速度传感有问题的机型,可以加入超时自动过垂直判断机制,使用判断条件: sensorUtil.isVertical()||sensorUtil.isSensorFault()
if (sensorUtil.isVertical()) {
if (sensorUtil.isVertical()||sensorUtil.isSensorFault()) {
faceOcclusion(detectionFrame);
handleNotPass(timeout);
mFaceMask.setFaceInfo(detectionFrame);
......
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":10},"path":"app-release.apk","properties":{"packageId":"com.dayu.bigfish","split":"","minSdkVersion":"16"}}]
\ No newline at end of file
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":11},"path":"app-release.apk","properties":{"packageId":"com.dayu.bigfish","split":"","minSdkVersion":"16"}}]
\ No newline at end of file
......@@ -169,7 +169,12 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
(dialog1, confirm) -> {
if (confirm) {
File sdDir = Environment.getExternalStorageDirectory();
File file = new File(sdDir + "/dayu/", "dayu" + ".apk");
File file;
file = new File(sdDir + "/dayu/");
if (!file.exists()) {
file.mkdirs();
}
file = new File(file, "dayu" + ".apk");
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
showToast(R.string.on_download);
initNotification();
......
......@@ -5,6 +5,7 @@ import android.databinding.DataBindingUtil;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.dayu.base.api.protocol.BasePageBean;
......@@ -29,6 +30,8 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
public boolean isHasMore = true;
private List<Item> mHeadTypeDatas = new ArrayList<>();
private List<Item> mFootTypeDatas = new ArrayList<>();
private List<View> mFootViews = new ArrayList<>();
private List<View> mHeadViews = new ArrayList<>();
private int viewType;
private int mFooterViewType = R.layout.lrecycler_foot;
protected Context mContext;
......@@ -39,6 +42,7 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
protected BaseListPresenter mPresenter;
protected OnChildClickListener mOnChildClickListener;
private List<M> mOldDatas = new ArrayList<>();
private boolean isNeedFoot = false;
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
......@@ -46,7 +50,9 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
return new BaseViewHolder(DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), viewType, parent, false));
}
public CoreAdapter(boolean needFoot) {
isNeedFoot = needFoot;
if (needFoot) {
mFootTypeDatas.add(new Item(mFooterViewType, true));
}
......@@ -54,7 +60,7 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
public CoreAdapter(boolean needFoot, int viewType) {
if (needFoot) {
mFootTypeDatas.add(new Item(mFooterViewType, true));
mFootTypeDatas.add(new Item(mFooterViewType, viewType));
}
this.viewType = viewType;
}
......@@ -95,7 +101,17 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
}
public void addFooterViewType(@LayoutRes int i, Object data) {
mFootTypeDatas.add(mFootTypeDatas.size() - 1, new Item(i, data));
for (Item a : mFootTypeDatas) {
if (a.type == i) {
return;
}
}
if (isNeedFoot) {
mFootTypeDatas.add(mFootTypeDatas.size() - 1, new Item(i, data));
} else {
mFootTypeDatas.add(mFootTypeDatas.size(), new Item(i, data));
}
}
public Object getItem(int position) {
......@@ -234,4 +250,20 @@ public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
return mContext;
}
public List<View> getmFootViews() {
return mFootViews;
}
public void setmFootViews(List<View> mFootViews) {
this.mFootViews = mFootViews;
}
public List<View> getmHeadViews() {
return mHeadViews;
}
public void setmHeadViews(List<View> mHeadViews) {
this.mHeadViews = mHeadViews;
}
}
\ No newline at end of file
......@@ -30,6 +30,16 @@ public abstract class BaseListPresenter<V> extends BasePresenter<V> {
return null;
}
/**
* 如果有脚布局,子类重写此方法.
*
* @return 头布局数据源.
*/
public ObservableField<Object> getFootDatas() {
return null;
}
/**
*
* @return recy数据源.
......
......@@ -59,6 +59,7 @@ public abstract class BasePresenter<V> {
@Override
public void onError(Throwable e) {
Log.d("Photoerror******", e.toString());
ProgressUtil.stopLoad();
processException(e);
}
......
......@@ -17,6 +17,8 @@ public class Constants {
// 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;
......@@ -24,26 +26,30 @@ public class Constants {
/**
* uat环境配置.
*/
// public static final String ENVIROMENT = "uat";
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String BASE_URL = "http://47.95.223.6:3112";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
// public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
// public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
// public static final boolean IS_DEBUG = true;
public static final String ENVIROMENT = "uat";
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String BASE_URL = "http://47.95.223.6:3112";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult";
public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
public static final boolean IS_DEBUG = true;
/**
* 正式环境.
*/
public static final String ENVIROMENT = "release";
public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
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 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;
/**
* 演示环境
......@@ -55,6 +61,8 @@ public class Constants {
// public final static String WEB_SOP = "http://test.sop.dayu.ai/#/sop";
// public final static String WEB_SOP_DETAIL = "http://test.sop.dayu.ai/#/sopdetail";
// public final static String WEB_ZHI_SHI = "http://test.sop.dayu.ai/#/detail";
// public final static String CHECK_MULTI_WEB_SOP = "http://test.sop.dayu.ai/#/manyServiceResult";
// public final static String MULTI_WEB_SOP = "http://test.sop.dayu.ai/#/manySop";
// public final static boolean IS_DEBUG = true;
/**
......@@ -138,6 +146,7 @@ public class Constants {
public static final String LONGITUDE = "longitude";
public static final String LATITUDE = "latitude";
public static final String URL = "url";
/**
......
......@@ -106,13 +106,22 @@ public class BindingUtils {
return;
}
view.setPresenter(presenter);
setData(view,presenter);
setData(view, presenter);
presenter.getSourceDatas().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable observable, int i) {
setData(view,presenter);
setData(view, presenter);
}
});
if (presenter.getFootDatas() != null) {
presenter.getFootDatas().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable observable, int i) {
Object object = presenter.getFootDatas().get();
view.setFootData(object);
}
});
}
if (presenter.getHeaderDatas() != null) {
presenter.getHeaderDatas().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
......@@ -121,6 +130,7 @@ public class BindingUtils {
view.setHeadData(object);
}
});
}
}
......
......@@ -22,6 +22,7 @@ import com.dayu.common.BaseApplication;
import com.dayu.utils.ProgressUtil;
import com.dayu.widgets.listener.OnItemClickListener;
import com.dayu.widgets.listener.OnRefreshListener;
import com.dayu.widgets.listener.onEndListener;
import com.dayu.widgets.listener.onLoadMoreListener;
import java.util.List;
......@@ -61,12 +62,14 @@ public class LRecyclerView<M, B> extends FrameLayout {
private LinearLayout ll_emptyView;
private OnRefreshListener mRefreshListener;
private onLoadMoreListener mLoadMoreListener;
private onEndListener onEndListener;
private LinearLayoutManager mLayoutManager;
public CoreAdapter<M, B> mCoreAdapter;
private int itemType;
private LinearLayout ll_faileView;
private BaseListPresenter mPresenter;
private boolean isRefreshable;
private boolean mIsEnd;
public LRecyclerView(@NonNull Context context) {
......@@ -151,6 +154,9 @@ public class LRecyclerView<M, B> extends FrameLayout {
isRefresh = false;
}
}
if (onEndListener != null && lastVisibleItem + 1 == recyclerview.getAdapter().getItemCount()) {
onEndListener.onEnd();
}
}
@Override
......@@ -293,7 +299,7 @@ public class LRecyclerView<M, B> extends FrameLayout {
mLoadMoreListener = listener;
}
public void setOnItemClickListener(OnItemClickListener<M,B> listener) {
public void setOnItemClickListener(OnItemClickListener<M, B> listener) {
mCoreAdapter.setOnItemClickListener(listener);
}
......@@ -317,4 +323,8 @@ public class LRecyclerView<M, B> extends FrameLayout {
public void scrollBottom() {
recyclerview.smoothScrollToPosition(mCoreAdapter.getItemCount() - 1);
}
public void setOnEndListener(onEndListener listener) {
onEndListener = listener;
}
}
......@@ -12,7 +12,7 @@ import com.dayu.baselibrary.R;
*/
public class SwitchImage extends android.support.v7.widget.AppCompatImageView {
public boolean switchButton = true;
public boolean switchButton = false;
public boolean getSwitchButton() {
return switchButton;
......
......@@ -6,4 +6,5 @@ package com.dayu.widgets.listener;
public interface OnItemClickListener<M,B> {
void OnItemClick(M item,B bind);
// void OnItemClick(M item,B bind,int position);
}
package com.dayu.widgets.listener;
/**
* Created by luofan on 2017/12/8.
*/
public interface onEndListener {
void onEnd();
}
......@@ -7,7 +7,9 @@
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout style="@style/title">
<RelativeLayout
android:id="@+id/rl_title"
style="@style/title">
<TextView
android:id="@+id/tv_title"
......
......@@ -38,7 +38,6 @@
android:id="@+id/tv_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv_empty"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_13"
android:text="@string/no_data_press_refresh"
......
......@@ -34,6 +34,7 @@
<color name="tv_cl">#FF888888</color>
<color name="common_red">#FF5A4B</color>
<color name="light_grey">#FF666666</color>
<color name="bg_button">#FF3FAAFC</color>
......
......@@ -158,6 +158,8 @@
<string name="personal">我的</string>
<string name="on_develop">此功能正在紧张的开发中…</string>
<string name="coming_soon">敬请期待!</string>
<string name="open">打开</string>
<string name="is_open_dayu_bb">是否打开大鱼帮app?</string>
<!--工单-->
......@@ -179,13 +181,13 @@
<string name="have_go_on">我已出发</string>
<string name="begain_server">开始服务</string>
<string name="process_order">处理工单</string>
<string name="check_upon_delivery">[等待验收]</string>
<string name="order_finish">[已完成]</string>
<string name="order_cancle">[已取消]</string>
<string name="receive_time_out">[接单超时]</string>
<string name="appointment_time_out">[预约超时]</string>
<string name="delivery_time_out">[验收超时]</string>
<string name="server_time_out">[服务超时]</string>
<string name="check_upon_delivery">等待验收</string>
<string name="order_finish">已完成</string>
<string name="order_cancle">已取消</string>
<string name="receive_time_out">接单超时</string>
<string name="appointment_time_out">预约超时</string>
<string name="delivery_time_out">验收超时</string>
<string name="server_time_out">服务超时</string>
<string name="need_again_door">需要再次上门</string>
<string name="waite_appointemnt">待预约</string>
<string name="waite_server">待服务</string>
......@@ -322,12 +324,17 @@
<string name="check_reason">查看结果</string>
<string name="check_accept">查看验收申请</string>
<string name="check_location">查看位置</string>
<string name="part_record">备件记录</string>
<string name="no_remark">备注:暂无</string>
<string name="remark_order">备注:</string>
<string name="no_reassignment">改派原因:暂无</string>
<string name="no_cancle">取消原因:暂无</string>
<string name="check_content">验收内容</string>
<string name="system_chcek">系统验收</string>
<string name="single_server_num">已完成%1$d/共%2$d</string>
<string name="server_num">共%1$d项服务</string>
<!--消息-->
......@@ -386,6 +393,7 @@
<string name="submission_of_audit">提交审核</string>
<string name="title_my_header">我的头像</string>
<string name="modify_header_iv">修改头像</string>
<string name="dayu_bang">大鱼帮帮</string>
<string name="header_pic">头像</string>
<string name="person_mobile">手机号码</string>
......
......@@ -38,6 +38,16 @@
<item name="android:scaleType">centerInside</item>
</style>
<style name="title_left">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">@dimen/dp_40</item>
<item name="android:src">@drawable/back_btn_normal</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:gravity">center</item>
<item name="android:layout_marginLeft">@dimen/size_title_ml</item>
<item name="android:scaleType">centerInside</item>
</style>
<style name="title_right_image">
<item name="android:layout_width">@dimen/dp_30</item>
<item name="android:layout_height">@dimen/dp_30</item>
......
......@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "27.0.2"
ext.min_sdk_version = 16
ext.target_sdk_version = 23
ext.version_code = 10
ext.verson_name = "1.6.0"
ext.version_code = 11
ext.verson_name = "1.7.0"
ext.gradle_version = '3.0.1'
ext.isReleaseMinify = true
ext.isDebugMinify = true
......
......@@ -10,6 +10,7 @@ import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.OrderPart;
import com.dayu.order.api.protocol.ServerInstruction;
import com.dayu.order.api.protocol.ShipperCompany;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.api.protocol.Tab;
import java.util.List;
......@@ -72,6 +73,10 @@ public class OrderApiFactory {
return Api.getService(OrderService.class).getKaAddress(companyId).compose(Api.applySchedulers());
}
public static Observable<KaAddress> getKaSelectAddress(int addressId) {
return Api.getService(OrderService.class).getKaSelectAddress( addressId).compose(Api.applySchedulers());
}
public static Observable<Boolean> applyPart(long spOrderId, String spComment, String createBy, long accountId) {
return Api.getService(OrderService.class).applyPart(spOrderId, spComment, createBy, accountId).compose(Api.applySchedulers());
}
......@@ -111,4 +116,20 @@ public class OrderApiFactory {
public static Observable<List<ShipperCompany>> queryShipperCompany() {
return Api.getService(OrderService.class).queryShipperCompany().compose(Api.applySchedulers());
}
public static Observable<Order> getServerInfo(int orderId) {
return Api.getService(OrderService.class).getServerInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<List<Spu>> getServerList(int id) {
return Api.getService(OrderService.class).getServerList(id).compose(Api.applySchedulers());
}
public static Observable<Boolean> processMultiOrder(RequestBody body) {
return Api.getService(OrderService.class).processMultiOrder(body).compose(Api.applySchedulers());
}
public static Observable<Spu> getMultiProcessInfo(int id) {
return Api.getService(OrderService.class).getMultiProcessInfo(id).compose(Api.applySchedulers());
}
}
......@@ -10,6 +10,7 @@ import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.OrderPart;
import com.dayu.order.api.protocol.ServerInstruction;
import com.dayu.order.api.protocol.ShipperCompany;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.api.protocol.Tab;
import com.dayu.order.common.OrderConstant;
......@@ -29,7 +30,7 @@ import retrofit2.http.Query;
* on 2018/2/8.
*/
interface OrderService {
interface OrderService {
/**
* 我已出发.
*
......@@ -74,16 +75,16 @@ import retrofit2.http.Query;
@GET(OrderConstant.ERROR_ORDER)
Observable<BaseResponse<List<ErrorOrder>>> getErrorOrders(@Query("engineerId") int userId, @Query("siteId") int siteId);
/**
* 工程师接单
*
* @param orderId
* @param engineerId
* @return
*/
@GET(OrderConstant.ORDER_RECEIVING)
Observable<BaseResponse<Boolean>> receiveOrder(@Path("orderId") int orderId,
@Path("engineerId") int engineerId);
/**
* 工程师接单
*
* @param orderId
* @param engineerId
* @return
*/
@GET(OrderConstant.ORDER_RECEIVING)
Observable<BaseResponse<Boolean>> receiveOrder(@Path("orderId") int orderId,
@Path("engineerId") int engineerId);
/**
* 预约上门时间.
......@@ -145,7 +146,7 @@ import retrofit2.http.Query;
@Query("pageSize") int pageSize);
/**
* 获取厂商收货地址.
* 获取厂商默认收货地址.
*
* @param companyId
* @return
......@@ -153,6 +154,15 @@ import retrofit2.http.Query;
@GET(OrderConstant.KA_ADDRESS)
Observable<BaseResponse<KaAddress>> getKaAddress(@Path("companyId") int companyId);
/**
* 获取厂商选择的收货地址.
*
* @return
*/
@GET(OrderConstant.KA_SELECT_ADDRESS)
Observable<BaseResponse<KaAddress>> getKaSelectAddress(@Query("addressId") int addressId);
/**
* 申请备件.
*
......@@ -253,4 +263,37 @@ import retrofit2.http.Query;
@GET(OrderConstant.QUERY_SHIPPER_COMPANY)
Observable<BaseResponse<List<ShipperCompany>>> queryShipperCompany();
/**
* 获取多任务列表
*
* @return
*/
@GET(OrderConstant.SERVER_INFO)
Observable<BaseResponse<Order>> getServerInfo(@Path("orderId") int orderId);
/**
* 获取多数量.
*
* @param id
* @return
*/
@GET(OrderConstant.SERVER_LIST)
Observable<BaseResponse<List<Spu>>> getServerList(@Path("ordersRelationSpuId") int id);
/**
* 单任务多数量提交工单.
* @param body
* @return
*/
@PUT(OrderConstant.PROCESS_MULTI_ORDER)
Observable<BaseResponse<Boolean>> processMultiOrder(@Body RequestBody body);
/**
* 查看多任务处理工单信息.
* @param id
* @return
*/
@GET(OrderConstant.CHECK_PROCESS_MULTI_ORDER)
Observable<BaseResponse<Spu>> getMultiProcessInfo(@Path("id") int id);
}
package com.dayu.order.api.protocol;
import java.util.List;
/**
* Created by luofan on 2017/11/19.
*/
......@@ -22,6 +24,24 @@ public class ErrorOrder {
private int status;
private int excptionCode;
private String appointmentTime;
private int createdSource;
private List<Spu> spus;
public List<Spu> getSpus() {
return spus;
}
public void setSpus(List<Spu> spus) {
this.spus = spus;
}
public int getCreatedSource() {
return createdSource;
}
public void setCreatedSource(int createdSource) {
this.createdSource = createdSource;
}
public String getAppointmentTime() {
return appointmentTime;
......
package com.dayu.order.api.protocol;
import java.util.List;
/**
* 工单列表,异常单列表,工单记录列表的bean
* Created by luofan on 2017/11/14.
......@@ -47,6 +49,33 @@ public class Order {
private int excptionCode;
private String appointmentTime;
private int sopStatus;
private int createdSource;
private List<Spu> spus;
private Integer commited;
public Integer getCommited() {
return commited;
}
public void setCommited(Integer commited) {
this.commited = commited;
}
public List<Spu> getSpus() {
return spus;
}
public void setSpus(List<Spu> spus) {
this.spus = spus;
}
public int getCreatedSource() {
return createdSource;
}
public void setCreatedSource(int createdSource) {
this.createdSource = createdSource;
}
public int getSubStatus() {
return subStatus;
......@@ -231,5 +260,4 @@ public class Order {
public void setSopStatus(int sopStatus) {
this.sopStatus = sopStatus;
}
}
......@@ -71,6 +71,15 @@ public class OrderDetail implements Serializable {
private Integer kaCompanyId;
private Integer createdSource; //1.服务商自己填写的工单2.厂商系统派3.ka系统4.小程序添加的工单
private List<accessories> accessories;
private List<Spu> spus;
public List<Spu> getSpus() {
return spus;
}
public void setSpus(List<Spu> spus) {
this.spus = spus;
}
public Integer getCreatedSource() {
return createdSource;
......
......@@ -49,6 +49,16 @@ public class OrderPart implements Serializable {
*/
private Integer sources;
private int recoveryCompanyAddressId;
public int getRecoveryCompanyAddressID() {
return recoveryCompanyAddressId;
}
public void setRecoveryCompanyAddressID(int recoveryCompanyAddressId) {
this.recoveryCompanyAddressId = recoveryCompanyAddressId;
}
public String getPartName() {
return partName;
}
......
package com.dayu.order.api.protocol;
import java.util.List;
/**
* Created by luofan
* on 2018/5/24.
*/
public class ProcessOrder {
private String brandName;
private String categoryThreeName;
private String customerCheckComment;
private String kaSpuName;
private String productModel;
private String providerTypeName;
private String spuProductNum;
private String sn;
private int id;
private int kaSpuId;
private int status;
private int sopStatus;
private List<Pic> listPic;
public int getSopStatus() {
return sopStatus;
}
public void setSopStatus(int sopStatus) {
this.sopStatus = sopStatus;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getCategoryThreeName() {
return categoryThreeName;
}
public void setCategoryThreeName(String categoryThreeName) {
this.categoryThreeName = categoryThreeName;
}
public String getCustomerCheckComment() {
return customerCheckComment;
}
public void setCustomerCheckComment(String customerCheckComment) {
this.customerCheckComment = customerCheckComment;
}
public String getKaSpuName() {
return kaSpuName;
}
public void setKaSpuName(String kaSpuName) {
this.kaSpuName = kaSpuName;
}
public String getProductModel() {
return productModel;
}
public void setProductModel(String productModel) {
this.productModel = productModel;
}
public String getProviderTypeName() {
return providerTypeName;
}
public void setProviderTypeName(String providerTypeName) {
this.providerTypeName = providerTypeName;
}
public String getSpuProductNum() {
return spuProductNum;
}
public void setSpuProductNum(String spuProductNum) {
this.spuProductNum = spuProductNum;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getKaSpuId() {
return kaSpuId;
}
public void setKaSpuId(int kaSpuId) {
this.kaSpuId = kaSpuId;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public List<Pic> getListPic() {
return listPic;
}
public void setListPic(List<Pic> listPic) {
this.listPic = listPic;
}
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;
}
}
}
package com.dayu.order.api.protocol;
import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
import java.util.List;
/**
* Created by luofan
* on 2018/5/22.
*/
public class Spu implements Serializable, Parcelable {
private int accreditPrice;
private int categoryThreeId;
private int finNum;
private int goodNum;
private int id;
private int kaSpuId;
private int orderId;
private int providerTypeId;
private int serviceType;
private int sopStatus;
private String categoryThreeName;
private String kaSpuName;
private String productModel;
private String providerTypeName;
private String time;
private int status;
private String brandName;
private String sn;
/**
* 处理工单获取信息使用.
*/
private String customerCheckComment;
private List<Pic> listPic;
public String getCustomerCheckComment() {
return customerCheckComment;
}
public void setCustomerCheckComment(String customerCheckComment) {
this.customerCheckComment = customerCheckComment;
}
public List<Pic> getListPic() {
return listPic;
}
public void setListPic(List<Pic> listPic) {
this.listPic = listPic;
}
public static Creator<Spu> getCREATOR() {
return CREATOR;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getAccreditPrice() {
return accreditPrice;
}
public void setAccreditPrice(int accreditPrice) {
this.accreditPrice = accreditPrice;
}
public int getCategoryThreeId() {
return categoryThreeId;
}
public void setCategoryThreeId(int categoryThreeId) {
this.categoryThreeId = categoryThreeId;
}
public int getFinNum() {
return finNum;
}
public void setFinNum(int finNum) {
this.finNum = finNum;
}
public int getGoodNum() {
return goodNum;
}
public void setGoodNum(int goodNum) {
this.goodNum = goodNum;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getKaSpuId() {
return kaSpuId;
}
public void setKaSpuId(int kaSpuId) {
this.kaSpuId = kaSpuId;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public int getProviderTypeId() {
return providerTypeId;
}
public void setProviderTypeId(int providerTypeId) {
this.providerTypeId = providerTypeId;
}
public int getServiceType() {
return serviceType;
}
public void setServiceType(int serviceType) {
this.serviceType = serviceType;
}
public int getSopStatus() {
return sopStatus;
}
public void setSopStatus(int sopStatus) {
this.sopStatus = sopStatus;
}
public String getCategoryThreeName() {
return categoryThreeName;
}
public void setCategoryThreeName(String categoryThreeName) {
this.categoryThreeName = categoryThreeName;
}
public String getKaSpuName() {
return kaSpuName;
}
public void setKaSpuName(String kaSpuName) {
this.kaSpuName = kaSpuName;
}
public String getProductModel() {
return productModel;
}
public void setProductModel(String productModel) {
this.productModel = productModel;
}
public String getProviderTypeName() {
return providerTypeName;
}
public void setProviderTypeName(String providerTypeName) {
this.providerTypeName = providerTypeName;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.accreditPrice);
dest.writeInt(this.categoryThreeId);
dest.writeInt(this.finNum);
dest.writeInt(this.goodNum);
dest.writeInt(this.id);
dest.writeInt(this.kaSpuId);
dest.writeInt(this.orderId);
dest.writeInt(this.providerTypeId);
dest.writeInt(this.serviceType);
dest.writeInt(this.sopStatus);
dest.writeString(this.categoryThreeName);
dest.writeString(this.kaSpuName);
dest.writeString(this.productModel);
dest.writeString(this.providerTypeName);
dest.writeString(this.time);
dest.writeInt(this.status);
dest.writeString(this.brandName);
dest.writeString(this.sn);
}
public Spu() {
}
protected Spu(Parcel in) {
this.accreditPrice = in.readInt();
this.categoryThreeId = in.readInt();
this.finNum = in.readInt();
this.goodNum = in.readInt();
this.id = in.readInt();
this.kaSpuId = in.readInt();
this.orderId = in.readInt();
this.providerTypeId = in.readInt();
this.serviceType = in.readInt();
this.sopStatus = in.readInt();
this.categoryThreeName = in.readString();
this.kaSpuName = in.readString();
this.productModel = in.readString();
this.providerTypeName = in.readString();
this.time = in.readString();
this.status = in.readInt();
this.brandName = in.readString();
this.sn = in.readString();
}
public static final Creator<Spu> CREATOR = new Creator<Spu>() {
@Override
public Spu createFromParcel(Parcel source) {
return new Spu(source);
}
@Override
public Spu[] newArray(int size) {
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
......@@ -14,6 +14,10 @@ public class OrderConstant {
public final static int ORDER_NOCONTACT_FINISH = 7;//无联系人已完成
public final static String TITLE = "title";
public final static String SPUS = "spus";
public final static String SPU = "spu";
public final static String CREATEDSOURCE = "created_source";
public final static String KAADDRESSID = "ka_address_id";
/**
* 异常单获取.
......@@ -63,10 +67,15 @@ public class OrderConstant {
*/
public final static String ORDER_INSTRUCTION = "/api-ka-base/" + "spuServiceDetail";
/**
* 获取厂商收货地址.
* 获取厂商默认收货地址.
*/
public final static String KA_ADDRESS = "/api-ka-user/" + "companyAddress/default/companyId/{companyId}";
/**
* 获取厂商选择的收货地址.
*/
public final static String KA_SELECT_ADDRESS = "/api-ka-user/" +"/companyAddress/sendAddress";
/**
* 申请备件.
*/
......@@ -117,4 +126,24 @@ public class OrderConstant {
*/
public final static String MODIFY_PART = "/api-ka-order/" + "kaOrderSpareParts";
/**
* 多任务列表.
*/
public final static String SERVER_INFO = "/api-order/" + "/orders/findSimpleOrderVOById/{orderId}";
/**
* 多数量列表.
*/
public final static String SERVER_LIST = "/api-order/" + "ordersRelationSpuItem/findOrdersRelationSpuItemBySpuId/{ordersRelationSpuId}";
/**
* 单任务多数量提交工单.
*/
public final static String PROCESS_MULTI_ORDER = "/api-order/" + "/ordersRelationSpuItem/spuItemCheck";
/**
* 查看多任务提交工单页面.
*/
public final static String CHECK_PROCESS_MULTI_ORDER = "/api-order/" + "/ordersRelationSpuItem/detail/{id}";
}
......@@ -6,6 +6,7 @@ import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.KaAddress;
import com.dayu.order.common.OrderConstant;
/**
* Created by luofan
......@@ -14,17 +15,26 @@ import com.dayu.order.api.protocol.KaAddress;
public class KaAddressPresenter extends KaAddressContract.Presenter {
public ObservableField<KaAddress> data = new ObservableField<>();
private int mId;
private int mType;
private int mKaAddressId;
@Override
public void onAttached() {
Bundle bundle = mView.getBundle();
mId = bundle.getInt(Constants.ID, 0);
mKaAddressId = bundle.getInt(OrderConstant.KAADDRESSID, -1);
getKaAddress();
}
@Override
public void getKaAddress() {
OrderApiFactory.getKaAddress(mId).subscribe(baseObserver(kaAddress -> data.set(kaAddress)));
mView.showDialog();
if (mKaAddressId != -1) {
OrderApiFactory.getKaSelectAddress(mKaAddressId).subscribe(baseObserver(kaAddress -> data.set(kaAddress)));
} else {
OrderApiFactory.getKaAddress(mId).subscribe(baseObserver(kaAddress -> data.set(kaAddress)));
}
}
}
package com.dayu.order.presenter.multipleprocess;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.HashMap;
/**
* Created by luo
* on 2016/8/4.
*/
public interface MultipleProcessContract {
interface View extends BaseView {
HashMap<String, Object> getParams();
void setRepairType();
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void processOrder();
public abstract void getOrderInfo(int orderId);
}
}
package com.dayu.order.presenter.multipleprocess;
import android.databinding.ObservableField;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.provider.event.RefreshServe;
import com.dayu.provider.router.RouterPath;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
public class MultipleProcessPresenter extends MultipleProcessContract.Presenter {
public ObservableField<Object> mDatas = new ObservableField<>();
public ObservableField<Object> mFootDatas = new ObservableField<>();
private ArrayList<Spu> mSpus;
private int mAccountId;
private String mRepairType;
@Override
public void onAttached() {
mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId());
mSpus = mView.getBundle().getParcelableArrayList(OrderConstant.SPUS);
mDatas.set(mSpus);
getOrderInfo(mSpus.get(0).getOrderId());
}
@Override
public ObservableField<Object> getSourceDatas() {
return mDatas;
}
@Override
public ObservableField<Object> getFootDatas() {
return mFootDatas;
}
@Override
public void processOrder() {
mView.showDialog();
HashMap<String, Object> params = mView.getParams();
params.put("engineerId", mAccountId);
params.put("id", mSpus.get(0).getOrderId());
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
OrderApiFactory.commitOrder(body).subscribe(baseObserver(integer -> {
ToastUtils.showShortToast("提交验收成功");
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
EventBus.getDefault().post(new RefreshServe(1));
}));
}
@Override
public void getOrderInfo(int orderId) {
mView.showDialog();
OrderApiFactory.queryOrderInfo(orderId).subscribe(baseObserver(detail -> {
if (1 == (detail.getRepairType())) {
mRepairType = UIUtils.getString(R.string.payer_baonei);
} else if (2 == (detail.getRepairType())) {
mRepairType = UIUtils.getString(R.string.payer_baowai);
}
mView.setRepairType();
}));
}
public String getRepairType() {
return mRepairType;
}
}
package com.dayu.order.presenter.multiprocessorder;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2016/11/04.
*/
public interface MultiProcessOrderContract {
interface View extends BaseView {
/**
* 初始化+图片
*/
void initAddIv();
/**
* 初始化图片.
*
* @param list
*/
void initPhotoView(ArrayList<String> list);
List<String> getImages();
}
abstract class Presenter extends BasePresenter<View> {
public abstract void commitOrder(List<String> imageUrl, int id, String info);
public abstract void commitPhoto();
/**
* 跳转sop.
*/
public abstract void dumpToSop();
/**
* 跳转到服务说明.
*/
public abstract void dumpToServerInstruction();
public abstract void getInfo();
}
}
package com.dayu.order.presenter.multiprocessorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.base.api.BaseApiFactory;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants;
import com.dayu.order.R;
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.ServerInstructionActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.luck.picture.lib.tools.PictureFileUtils;
import com.umeng.analytics.MobclickAgent;
import org.json.JSONObject;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
public class MultiProcessOrderPresenter extends MultiProcessOrderContract.Presenter {
private Spu mSpu;
private ArrayList<String> mImages = new ArrayList<>();
private ArrayList<String> mHttpUrl = new ArrayList<>();
public ObservableField<Spu> mDetail = new ObservableField<>();
public ObservableField<String> mInfo = new ObservableField<>();
public ObservableField<String> mBrandName = new ObservableField<>();
public ObservableField<String> mSn = new ObservableField<>();
public ObservableField<Boolean> mSpuState = new ObservableField<>();
private ArrayList<Spu> mSpus;
private int mId;
@Override
public void onAttached() {
Bundle bundle = mView.getBundle();
mSpu = (Spu) bundle.getSerializable(OrderConstant.SPU);
mSpus = bundle.getParcelableArrayList(OrderConstant.SPUS);
mId = mSpu.getId();
mDetail.set(mSpu);
mBrandName.set(mSpu.getBrandName());
mSn.set(mSpu.getSn());
mView.initAddIv();
mView.initPhotoView(mImages);
if (mSpus.size() >= 2 || (mSpus.size() == 1 && mSpu.getStatus() == 2)) {
mSpuState.set(true);
} else {
mSpuState.set(false);
}
if (mSpu.getStatus() == 2) {
getInfo();
}
}
private void commitOrder(List<String> list) {
commitOrder(list, mSpu.getId(), mInfo.get());
PictureFileUtils.deleteCacheDirFile(BaseApplication.getContext());
}
private MultipartBody.Part[] packPhoto(List<String> imageUrl) {
ArrayList<File> files = new ArrayList<>();
if (imageUrl != null && imageUrl.size() > 0) {
for (int i = 0; i < imageUrl.size(); i++) {
if (imageUrl.get(i).contains("http")) {
mHttpUrl.add(imageUrl.get(i));
} else {
files.add(new File(imageUrl.get(i)));
}
}
}
MultipartBody.Part[] part = new MultipartBody.Part[files.size()];
for (int i = 0; i < files.size(); i++) {
RequestBody requestFile =
RequestBody.create(MediaType.parse("multipart/form-data"), files.get(i));
MultipartBody.Part body =
MultipartBody.Part.createFormData("fileUpload", files.get(i).getName(), requestFile);
part[i] = body;
}
return part;
}
@Override
public void commitOrder(List<String> imageUrl, int id, String info) {
HashMap<String, Object> params = new HashMap<>();
params.put("customerCheckComment", info);
params.put("id", id);
params.put("brandName", mBrandName.get());
params.put("sn", mSn.get());
//照片上传
if (imageUrl != null) {
StringBuilder str = new StringBuilder();
for (int a = 0; a < imageUrl.size(); a++) {
if (a == imageUrl.size() - 1) {
str.append(imageUrl.get(a));
} else {
str.append(imageUrl.get(a));
str.append(",");
}
params.put("pics", str);
}
} else {
params.put("pics", null);
}
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
OrderApiFactory.processMultiOrder(body).subscribe(baseObserver(integer -> doNext()));
}
private void doNext() {
mView.showToast(R.string.order_commite_success);
List<Spu> spus = new ArrayList<>();
spus.addAll(mSpus);
for (Spu spu : spus) {
if (spu.getId() == mSpu.getId()) {
mSpus.remove(spu);
}
}
if (mSpus.size() >= 1) {
Spu spu = mSpus.get(0);
if (spu.getSopStatus() == 1) {
mSpu = spu;
dumpToSop();
} else {
doNextOrder(spu);
}
} else {
mView.dumpBack();
}
PictureFileUtils.deleteCacheDirFile(BaseApplication.getContext());
}
private void doNextOrder(Spu spu) {
Bundle bundle = new Bundle();
bundle.putSerializable(OrderConstant.SPU, spu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
bundle.putInt(Constants.ORDER_POSTION, 0);
mView.startActivityAndFinish(MultiProcessOrderActivity.class, bundle);
}
@Override
public void commitPhoto() {
mView.showDialog();
MultipartBody.Part[] parts;
List<String> imageUrl = mView.getImages();
if (imageUrl != null && imageUrl.size() > 0) {
parts = packPhoto(imageUrl);
if (parts.length == 0) {
commitOrder(mHttpUrl);
} else {
BaseApiFactory.uploadPhoto(parts).subscribe(baseObserver(list -> {
list.addAll(0, mHttpUrl);
commitOrder(list);
}));
}
}else {
commitOrder(null);
}
}
@Override
public void dumpToSop() {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, mSpu.getId());
bundle.putSerializable(OrderConstant.SPU, mSpu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
mView.startActivityAndFinish(SopWebViewActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop");
}
@Override
public void dumpToServerInstruction() {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, mSpu.getKaSpuId());
mView.startActivity(ServerInstructionActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "check_serverInstruction");
}
@Override
public void getInfo() {
mView.showDialog();
OrderApiFactory.getMultiProcessInfo(mId).subscribe(baseObserver(spu -> {
mDetail.set(spu);
mBrandName.set(spu.getBrandName());
mSn.set(spu.getSn());
mInfo.set(spu.getCustomerCheckComment());
List<Spu.Pic> pics = spu.getListPic();
ArrayList<String> imges = new ArrayList<>();
for (Spu.Pic pic : pics) {
imges.add(pic.getPictureUrl());
}
mView.initPhotoView(imges);
}));
}
}
......@@ -14,11 +14,13 @@ public interface OrderServerContract {
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void dumpToSop();
public abstract void dumpToSop(int id);
public abstract void dumpCheckContent(int postion);
public abstract void dumpMap(double latitude,double longitude,String address);
public abstract void dumpLogistics(String courierNum,String shipperCode);
}
}
......@@ -7,7 +7,9 @@ import com.dayu.common.Constants;
import com.dayu.location.base.BaseMapActivity;
import com.dayu.order.R;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.CheckContentActivity;
import com.dayu.order.ui.activity.LogisticsInfoActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
......@@ -52,9 +54,14 @@ public class OrderServerPresenter extends OrderServerContract.Presenter {
}
@Override
public void dumpToSop() {
public void dumpToSop(int id) {
Bundle bundle = new Bundle();
bundle.putInt(ORDER_ID, mDetails.getId());
if (mDetails.getCreatedSource() == 4) {
bundle.putInt(ORDER_ID, id);
} else {
bundle.putInt(ORDER_ID, mDetails.getId());
}
bundle.putInt(OrderConstant.CREATEDSOURCE, mDetails.getCreatedSource());
bundle.putInt(ORDER_STATE, ORDER_SOP_FINISH);
mView.startActivity(SopWebViewActivity.class, bundle);
}
......@@ -79,4 +86,16 @@ public class OrderServerPresenter extends OrderServerContract.Presenter {
}
mView.startActivity(BaseMapActivity.class, bundle);
}
@Override
public void dumpLogistics(String courierNum, String shipperCode) {
Bundle bundle = new Bundle();
bundle.putString(Constants.COURIER_NUM, courierNum);
bundle.putString(Constants.SHIPPER_CODE, shipperCode);
mView.startActivity(LogisticsInfoActivity.class, bundle);
}
public OrderDetail getDetail() {
return mDetails;
}
}
......@@ -298,7 +298,7 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter {
}
mView.getData();
OrderInfo info = mOrderField.get();
if (mOrderDetail.getCreatedSource() == 3) {
if (mOrderDetail != null && mOrderDetail.getCreatedSource() == 3) {
if (TextUtils.isEmpty(info.getPayer())) {
mView.showNoPayerDialog();
return;
......@@ -341,7 +341,6 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter {
bundle.putInt(Constants.ID, mDetail.get().getSpuId());
mView.startActivity(ServerInstructionActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "check_serverInstruction");
}
@Override
......
......@@ -8,8 +8,9 @@ import com.dayu.event.UserInfo;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.OrderPart;
import com.dayu.order.api.protocol.ShipperCompany;
import com.dayu.provider.event.RefreshApplyPart;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.KaAddressActivity;
import com.dayu.provider.event.RefreshApplyPart;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
......@@ -105,6 +106,9 @@ public class ReturnPartPresenter extends ReturnPartContract.Presenter {
public void dumpToKaInfo() {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, mKaId);
if (mPart!=null){
bundle.putInt(OrderConstant.KAADDRESSID, mPart.getRecoveryCompanyAddressID());
}
mView.startActivity(KaAddressActivity.class, bundle);
}
......
package com.dayu.order.presenter.serverinfo;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
* on 2016/8/4.
*/
public interface ServerInfoContract {
interface View extends BaseView {
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getServerInfo();
public abstract void dumpServerList(int id);
}
}
package com.dayu.order.presenter.serverinfo;
import android.databinding.ObservableField;
import android.os.Bundle;
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.ServerListActivity;
import java.util.List;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ServerInfoPresenter extends ServerInfoContract.Presenter {
public ObservableField<Object> mDatas = new ObservableField<>();
public ObservableField<Object> mHeadDatas = new ObservableField<>();
public ObservableField<Integer> mCanProcess = new ObservableField();
private int mId;
@Override
public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID);
}
@Override
public ObservableField<Object> getSourceDatas() {
return mDatas;
}
@Override
public ObservableField<Object> getHeaderDatas() {
return mHeadDatas;
}
@Override
public void getServerInfo() {
mView.showDialog();
OrderApiFactory.getServerInfo(mId).subscribe(baseObserver(order -> {
mHeadDatas.set(order);
List<Spu> spus = order.getSpus();
spus.get(0).setTime(order.getConfirmDoorTime());
mDatas.set(spus);
mCanProcess.set(order.getCommited());
}));
}
@Override
public void dumpServerList(int id) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, id);
bundle.putString(OrderConstant.SPUS, "spus");
mView.startActivity(ServerListActivity.class, bundle);
}
@Override
public void refresh() {
getServerInfo();
}
}
package com.dayu.order.presenter.serverlist;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
* on 2016/8/4.
*/
public interface ServerListContract {
interface View extends BaseView {
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getServerList();
public abstract void dumpToProcess();
}
}
package com.dayu.order.presenter.serverlist;
import android.databinding.ObservableField;
import android.os.Bundle;
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.MultipleProcessActivity;
import java.util.ArrayList;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ServerListPresenter extends ServerListContract.Presenter {
public ObservableField<Object> mDatas = new ObservableField<>();
public ObservableField<Boolean> mCanProcess = new ObservableField<>();
public ObservableField<Boolean> mIsShowProcess = new ObservableField<>();
private int mId;
@Override
public ObservableField<Object> getSourceDatas() {
return mDatas;
}
@Override
public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID);
String type = mView.getBundle().getString(OrderConstant.SPUS);
if (OrderConstant.SPUS.equals(type)) {
mIsShowProcess.set(false);
} else {
mIsShowProcess.set(true);
}
mView.showDialog();
}
@Override
public void getServerList() {
OrderApiFactory.getServerList(mId).subscribe(baseObserver(spus -> {
mDatas.set(spus);
boolean flag = true;
for (Spu spu : spus) {
if (spu.getStatus() == 1) {
flag = false;
}
}
mCanProcess.set(flag);
}));
}
@Override
public void dumpToProcess() {
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(OrderConstant.SPUS,(ArrayList<Spu>)mDatas.get());
mView.startActivity(MultipleProcessActivity.class,bundle);
}
@Override
public void refresh() {
getServerList();
}
}
package com.dayu.order.ui.activity;
import android.content.Intent;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.databinding.ActivityMultiProcessOrderBinding;
import com.dayu.order.presenter.multiprocessorder.MultiProcessOrderContract;
import com.dayu.order.presenter.multiprocessorder.MultiProcessOrderPresenter;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.UtilsScreen;
import com.luck.picture.lib.PictureSelectionModel;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.umeng.analytics.MobclickAgent;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2018/5/23.
*/
public class MultiProcessOrderActivity extends BaseActivity<MultiProcessOrderPresenter, ActivityMultiProcessOrderBinding>
implements MultiProcessOrderContract.View {
private int mIvWeight;
private ImageView mAddIV;
private List<LocalMedia> mSelectList;
private ArrayList<String> mImages = new ArrayList<>();
@Override
public int getLayoutId() {
return R.layout.activity_multi_process_order;
}
@Override
public void initView() {
mSelectList = new ArrayList<>();
mAddIV.setOnClickListener(v -> showPicDialog());
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void initAddIv() {
mIvWeight = (UtilsScreen.getScreenWidth(mActivity) - UtilsScreen.dip2px(mActivity, 20)) / 5;
mAddIV = new ImageView(mActivity);
mAddIV.setLayoutParams(new ViewGroup.LayoutParams(mIvWeight, mIvWeight));
mAddIV.setImageResource(R.drawable.icon_submit_photo);
}
public void showPicDialog() {
PictureSelectionModel selector = PictureSelector.create(mActivity)
.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.maxSelectNum(5 - mImages.size())// 最大图片选择数量 int
.imageSpanCount(4)// 每行显示个数 int
.selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
.previewImage(true)// 是否可预览图片 true or false
.isCamera(true)// 是否显示拍照按钮 true or false
.isZoomAnim(true)// 图片列表点击 缩放效果 默认true
.sizeMultiplier(0.1f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
.setOutputCameraPath("/CustomPath")// 自定义拍、照保存路径,可不填
.compress(true)// 是否压缩 true or false
.glideOverride(300, 500)// int glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度
.hideBottomControls(true)// 是否显示uCrop工具栏,默认不显示 true or false
.compressSavePath(getPath())//压缩图片保存地址
.previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
// .minimumCompressSize(100)// 小于100kb的图片不压缩
.synOrAsy(true);//同步true或异步false 压缩 默认同步、
// .enableCrop(true)//是否裁剪
// .freeStyleCropEnabled(true)
selector.forResult(PictureConfig.CHOOSE_REQUEST);
MobclickAgent.onEvent(mActivity, "add_server_pic");
}
private String getPath() {
String path = Environment.getExternalStorageDirectory() + "/dayu/image/";
File file = new File(path);
if (file.mkdirs()) {
return path;
}
return path;
}
/**
* 图片列表显示.
*/
@Override
public void initPhotoView(ArrayList<String> list) {
mImages = list;
initPhoto(list, mBind.llImage, mAddIV);
}
public void initPhoto(ArrayList<String> list, LinearLayout layout, ImageView mAdd) {
layout.removeAllViews();
for (int i = 0; i < list.size(); i++) {
View view = LayoutInflater.from(mActivity).inflate(R.layout.item_picture_select, null);
view.setLayoutParams(new RelativeLayout.LayoutParams(mIvWeight, mIvWeight));
view.setPadding(0, 0, 10, 0);
ImageView ivDelete = view.findViewById(R.id.iv_picture_delete);
ImageView imageView = view.findViewById(R.id.iv_picture);
String path = list.get(i);
GlideImageLoader.load(mActivity, path, imageView);
imageView.setOnClickListener(v -> dumpPic(list));
ivDelete.setOnClickListener(v -> {
if (list.size() == 5) {
layout.addView(mAdd);
}
layout.removeView(view);
list.remove(path);
});
layout.addView(view);
}
if (list.size() < 5) {
layout.addView(mAdd);
}
}
private void dumpPic(ArrayList<String> list) {
Intent intent = new Intent(this, PreviewActivty.class);
intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list);
int DELETECODE = 0;
startActivityForResult(intent, DELETECODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
mSelectList = PictureSelector.obtainMultipleResult(data);
if (mSelectList != null) {
for (int a = 0; a < mSelectList.size(); a++) {
mImages.add(mSelectList.get(a).getCompressPath());
}
initPhotoView(mImages);
}
break;
}
}
}
@Override
public List<String> getImages() {
return mImages;
}
}
package com.dayu.order.ui.activity;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.order.R;
import com.dayu.order.databinding.ActivityMultipleProcessBinding;
import com.dayu.order.presenter.multipleprocess.MultipleProcessContract;
import com.dayu.order.presenter.multipleprocess.MultipleProcessPresenter;
import com.dayu.widgets.SwitchImage;
import java.util.HashMap;
/**
* Created by luofan
* on 2018/5/21.
*/
public class MultipleProcessActivity extends BaseActivity<MultipleProcessPresenter, ActivityMultipleProcessBinding> implements MultipleProcessContract.View {
private EditText mDoorPrice;
private EditText mServerPrice;
private EditText mMaterialsPrice;
private EditText mOtherPrice;
private EditText mDoorInfo;
private int isPay = 1;
private TextView mRepairType;
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.activity_multiple_process;
}
@Override
public void initView() {
mBind.tvTitle.setText("提交验收");
mBind.recyclerView.mCoreAdapter.addFooterViewType(R.layout.item_multi_process_foot, null);
mBind.recyclerView.postDelayed(this::setOnclick, 500);
mBind.recyclerView.setOnEndListener(this::setOnclick);
}
public void setOnclick() {
View view = mBind.recyclerView.getChildAt(0);
SwitchImage swtich = view.findViewById(R.id.iv_switch);
RelativeLayout rlPay = view.findViewById(R.id.rl_pay);
if (swtich == null) {
return;
}
mDoorPrice = view.findViewById(R.id.et_door_price);
mServerPrice = view.findViewById(R.id.et_serve_price);
mMaterialsPrice = view.findViewById(R.id.et_materials_price);
mOtherPrice = view.findViewById(R.id.et_other_price);
mDoorInfo = view.findViewById(R.id.et_door_info);
mRepairType = view.findViewById(R.id.repair_type);
swtich.setOnClickListener(v -> {
if (swtich.getSwitchButton()) {
swtich.setSwitchButton(false);
rlPay.setVisibility(View.GONE);
clearData();
isPay = 1;
} else {
swtich.setSwitchButton(true);
rlPay.setVisibility(View.VISIBLE);
mBind.recyclerView.scrollBottom();
isPay = 2;
}
});
setRepairType();
}
@Override
public void setRepairType() {
if (mRepairType != null) {
mRepairType.setText(mPresenter.getRepairType());
}
}
public void clearData() {
mDoorPrice.setText("");
mServerPrice.setText("");
mMaterialsPrice.setText("");
mOtherPrice.setText("");
mDoorInfo.setText("");
}
@Override
public HashMap<String, Object> getParams() {
HashMap<String, Object> params = new HashMap<>();
if (mDoorPrice != null) {
params.put("doorPrice", mDoorPrice.getText().toString().trim());
params.put("servicePrice", mServerPrice.getText().toString().trim());
params.put("materialCost", mMaterialsPrice.getText().toString().trim());
params.put("otherPrice", mOtherPrice.getText().toString().trim());
params.put("doorPriceComment", mDoorInfo.getText().toString().trim());
}
params.put("isPay", isPay);
return params;
}
}
......@@ -12,6 +12,7 @@ import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.databinding.ActivityOrderDetailsBinding;
import com.dayu.order.presenter.orderdetail.OrderDetailContract;
import com.dayu.order.presenter.orderdetail.OrderDetailPresenter;
import com.dayu.order.ui.fragment.MultiOrderDetailFragment;
import com.dayu.order.ui.fragment.OrderDetaillsFragment;
import com.dayu.order.ui.fragment.OrderDetailsServeFragment;
import com.dayu.order.ui.fragment.OrderPartFragment;
......@@ -30,6 +31,7 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
private OrderDetaillsFragment orderDatailsFragment;
private OrderDetailsServeFragment orderDatailsServeFragment;
private OrderPartFragment mOrderPartFragment;
private MultiOrderDetailFragment mMultiDetailFragment;
private FragmentManager mFragmentManger;
private ArrayList<Fragment> mFragments;
private int mPosition;
......@@ -46,19 +48,25 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
@Override
public void setPresenter() {
getPackageName();
}
@Override
public void init(OrderDetail detail) {
mFragments = new ArrayList<>();
orderDatailsFragment = OrderDetaillsFragment.newInstance(detail);
mMultiDetailFragment = MultiOrderDetailFragment.newInstance(detail);
orderDatailsServeFragment = OrderDetailsServeFragment.newInstance(detail);
mOrderPartFragment = OrderPartFragment.newInstance(detail);
mFragments.add(orderDatailsFragment);
if (detail.getCreatedSource() == 4) {
mFragments.add(mMultiDetailFragment);
} else {
mFragments.add(orderDatailsFragment);
}
mFragments.add(orderDatailsServeFragment);
mFragments.add(mOrderPartFragment);
mBind.titleBack.setOnClickListener(v -> dumpBack());
if (detail.getCreatedSource() != 3) {
if (detail.getCreatedSource() != 3 && detail.getCreatedSource() != 4) {
mBind.btnPart.setVisibility(View.GONE);
mBind.btnServer.setBackgroundResource(R.drawable.detail_end_selector);
}
......
......@@ -36,9 +36,10 @@ public class OrderRecordActivity extends BaseActivity<OrderRecordPresenter, Acti
@Override
public void initView() {
mBind.tvTitle.setText(getString(R.string.history_order));
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mAdapter = new OrderAdapter(true);
mAdapter.setViewType(R.layout.fragment_orderdoing_item);
mBind.recyclerView.setAdapter(mAdapter);
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order,FragmentOrderdoingItemBinding>() {
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
mPresenter.dumpDetail(item.getId());
......
......@@ -9,10 +9,10 @@ import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.baselibrary.databinding.ActivityWebviewBinding;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivityWebviewBinding;
import com.dayu.utils.Base64Encoder;
import java.io.File;
......
......@@ -31,7 +31,8 @@ public class ReceivingActivity extends BaseActivity<ReceivingPresenter, Activity
@Override
public void initView() {
mBind.tvTitle.setText(getString(R.string.receive_list));
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mAdapter = new OrderAdapter(true);
mAdapter.setViewType(R.layout.fragment_orderdoing_item);
mBind.recyclerView.setAdapter(mAdapter);
initListener();
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
......
package com.dayu.order.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivityServerInfoBinding;
import com.dayu.order.presenter.serverinfo.ServerInfoContract;
import com.dayu.order.presenter.serverinfo.ServerInfoPresenter;
import com.dayu.order.ui.adapter.ServerInfoAdapter;
import java.util.ArrayList;
/**
* Created by luofan
* on 2018/5/21.
*/
public class ServerInfoActivity extends BaseActivity<ServerInfoPresenter, ActivityServerInfoBinding>
implements ServerInfoContract.View {
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.activity_server_info;
}
@Override
public void initView() {
mBind.tvTitle.setText("任务列表");
ServerInfoAdapter adapter = new ServerInfoAdapter(false);
mBind.recyclerView.setAdapter(adapter);
mBind.tvProcess.setOnClickListener(v -> {
Intent intent = new Intent(mActivity, MultipleProcessActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(OrderConstant.SPUS, (ArrayList<Spu>) mBind.recyclerView.getDatas());
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
});
}
@Override
public void onResume() {
super.onResume();
mPresenter.getServerInfo();
}
}
package com.dayu.order.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivityServerListBinding;
import com.dayu.order.databinding.ActivityServerListRecycleBinding;
import com.dayu.order.presenter.serverlist.ServerListContract;
import com.dayu.order.presenter.serverlist.ServerListPresenter;
import com.dayu.widgets.listener.OnItemClickListener;
import java.util.ArrayList;
/**
* Created by luofan
* on 2018/5/21.
*/
public class ServerListActivity extends BaseActivity<ServerListPresenter, ActivityServerListRecycleBinding>
implements ServerListContract.View {
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.activity_server_list_recycle;
}
@Override
public void initView() {
mBind.tvTitle.setText("任务列表");
mBind.tvProcess.setOnClickListener(o -> {
});
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Spu, ActivityServerListBinding>() {
@Override
public void OnItemClick(Spu item, ActivityServerListBinding bind) {
ArrayList<Spu> spus = (ArrayList<Spu>) mBind.recyclerView.getDatas();
ArrayList<Spu> mUnFinishSpus = new ArrayList<>();
for (Spu spu : spus) {
if (spu.getStatus() == 1) {
mUnFinishSpus.add(spu);
}
}
Intent intent;
if (item.getSopStatus() == 1 && item.getStatus()==1) {
intent = new Intent(mActivity, SopWebViewActivity.class);
} else {
intent = new Intent(mActivity, MultiProcessOrderActivity.class);
}
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID,item.getId());
bundle.putSerializable(OrderConstant.SPU, item);
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
}
});
}
@Override
public void onResume() {
super.onResume();
showDialog();
mPresenter.getServerList();
}
}
......@@ -13,11 +13,12 @@ import android.webkit.WebView;
import android.widget.LinearLayout;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.baselibrary.databinding.ActivityWebviewBinding;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivityWebviewBinding;
import com.dayu.provider.event.OrderState;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.ToastUtils;
......@@ -31,6 +32,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.util.ArrayList;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
......@@ -50,6 +52,9 @@ public class SopWebViewActivity extends DataBindingActivity<ActivityWebviewBindi
int RESULT_CODE_FOR_Lollipop = 1;
private BridgeWebView mWebView;
private int mState;
private Spu mSpu;
private ArrayList<Spu> mSpus;
private int mCreatedSource;
@Override
public int getLayoutId() {
......@@ -64,6 +69,9 @@ public class SopWebViewActivity extends DataBindingActivity<ActivityWebviewBindi
mOrderId = bundle.getInt(Constants.ORDER_ID, 0);
mPositon = bundle.getInt(Constants.ORDER_POSTION, 0);
mState = bundle.getInt(Constants.ORDER_STATE, 0);
mCreatedSource = bundle.getInt(OrderConstant.CREATEDSOURCE, 0);
mSpu = (Spu) bundle.getSerializable(OrderConstant.SPU);
mSpus = bundle.getParcelableArrayList(OrderConstant.SPUS);
mBind.titleBack.setOnClickListener(o -> finish());
mWebView = new BridgeWebView(mActivity);
mWebView.setLayoutParams(new LinearLayout.LayoutParams(
......@@ -137,8 +145,15 @@ public class SopWebViewActivity extends DataBindingActivity<ActivityWebviewBindi
}
});
ProgressUtil.startLoad(mActivity);
if (mState == OrderConstant.ORDER_SOP_FINISH) {
mWebView.loadUrl(Constants.WEB_SOP_DETAIL);
if (mSpu != null) {
mWebView.loadUrl(Constants.MULTI_WEB_SOP);
} else if (mState == OrderConstant.ORDER_SOP_FINISH) {
if (mCreatedSource == 4) {
mWebView.loadUrl(Constants.CHECK_MULTI_WEB_SOP);
} else {
mWebView.loadUrl(Constants.WEB_SOP_DETAIL);
}
} else {
mWebView.loadUrl(Constants.WEB_SOP);
}
......@@ -158,14 +173,25 @@ public class SopWebViewActivity extends DataBindingActivity<ActivityWebviewBindi
@Override
public void handler(String data, CallBackFunction function) {
if ("1".equals(data)) {
EventBus.getDefault().post(new OrderState(ORDER_SOP_FINISH, mPositon));
Intent intent = new Intent(mActivity, ProcessOrderActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, mOrderId);
bundle.putInt(Constants.ORDER_POSTION, mPositon);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
finish();
if (mSpu != null) {
Intent intent = new Intent(mActivity, MultiProcessOrderActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable(OrderConstant.SPU, mSpu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
bundle.putInt(Constants.ORDER_POSTION, 0);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
finish();
} else {
EventBus.getDefault().post(new OrderState(ORDER_SOP_FINISH, mPositon));
Intent intent = new Intent(mActivity, ProcessOrderActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, mOrderId);
bundle.putInt(Constants.ORDER_POSTION, mPositon);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
finish();
}
}
}
......
......@@ -14,10 +14,10 @@ import android.webkit.WebView;
import android.widget.LinearLayout;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.baselibrary.databinding.ActivityWebviewBinding;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.order.R;
import com.dayu.order.databinding.ActivityWebviewBinding;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.UserManager;
import com.github.lzyzsd.jsbridge.BridgeHandler;
......
......@@ -12,14 +12,18 @@ import com.dayu.common.Constants;
import com.dayu.location.base.LocationUtils;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Order;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.databinding.FragmentOrderdoingItemBinding;
import com.dayu.order.presenter.orderdoing.OrderDoingPresenter;
import com.dayu.order.ui.activity.ProcessOrderActivity;
import com.dayu.order.ui.activity.ServerInfoActivity;
import com.dayu.order.ui.activity.ServerListActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.order.ui.activity.SubcribeTimeActivity;
import com.dayu.provider.event.RefreshServe;
import com.dayu.provider.event.RefreshTab;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate;
import com.umeng.analytics.MobclickAgent;
......@@ -44,8 +48,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
private Order mItem;
private FragmentOrderdoingItemBinding mBind;
public OrderAdapter(boolean needFoot, int viewType) {
super(needFoot, viewType);
public OrderAdapter(boolean needFoot) {
super(needFoot);
}
......@@ -239,13 +243,33 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
MobclickAgent.onEvent(mContext, "take_phone", map_ekv);
});
}
if (item.getCreatedSource() == 4) {
holder.itemTextWeixiu.setText(item.getSpus().get(0).getProviderTypeName());
holder.itemTextWeixiuLeixing.setText(item.getSpus().get(0).getKaSpuName());
Spu spu = item.getSpus().get(0);
holder.tvServerType.setVisibility(View.VISIBLE);
if (item.getSpus().size() > 1) {
String str = UIUtils.getString(R.string.server_num);
String result = String.format(str, item.getSpus().size());
holder.tvServerType.setText(result);
} else {
String str = UIUtils.getString(R.string.single_server_num);
String result = String.format(str, spu.getFinNum(), spu.getGoodNum());
holder.tvServerType.setText(result);
}
} else {
holder.tvServerType.setVisibility(View.GONE);
}
}
private void processClick(Order it, FragmentOrderdoingItemBinding h, int posiiton) {
mItem = it;
mBind = h;
if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) {
if (mItem.getCreatedSource() == 4 && mItem.getStatus() == 4) {
dumpServerActivity(mItem, posiiton);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) {
dumpProcessActivity(mItem, posiiton);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 4) {
if (mItem.getSopStatus() == 1) {//sop启用
......@@ -329,6 +353,22 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
MobclickAgent.onEvent(mContext, "process_order");
}
private void dumpServerActivity(Order order, int adapterPosition) {
Intent intent;
Bundle bundle = new Bundle();
if (order.getSpus().size() > 1) {
intent = new Intent(mContext, ServerInfoActivity.class);
bundle.putInt(Constants.ID, order.getId());
} else if (order.getSpus().size() == 1) {
intent = new Intent(mContext, ServerListActivity.class);
bundle.putInt(Constants.ID, order.getSpus().get(0).getId());
} else {
return;
}
intent.putExtra(Constants.BUNDLE, bundle);
mContext.startActivity(intent);
}
private void dumpSOPActivity(int id, int adapterPosition) {
Intent intent = new Intent(mContext, SopWebViewActivity.class);
Bundle bundle = new Bundle();
......
......@@ -6,7 +6,9 @@ import android.view.View;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Order;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.databinding.FragmentOrderCancleItemBinding;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
......@@ -54,6 +56,27 @@ public class OrderFourTabAdapter extends CoreAdapter<Order, FragmentOrderCancleI
helper.itemTextDizhi.setText(item.getProvinceName() + item.getCityName() +
item.getDistrictName() + item.getAddress());
helper.errorState.setText(mContext.getString(R.string.order_cancle));
if (item.getCreatedSource() == 4) {
if (item.getSpus().size() < 1) {
return;
}
helper.itemTextWeixiu.setText(item.getSpus().get(0).getProviderTypeName());
helper.itemTextWeixiuLeixing.setText(item.getSpus().get(0).getKaSpuName());
Spu spu = item.getSpus().get(0);
if (item.getSpus().size() > 1) {
String str = UIUtils.getString(R.string.server_num);
String result = String.format(str, item.getSpus().size());
helper.serverStyle.setText(result);
} else {
String str = UIUtils.getString(R.string.single_server_num);
String result = String.format(str, spu.getFinNum(), spu.getFinNum());
helper.serverStyle.setText(result);
}
helper.serverStyle.setVisibility(View.VISIBLE);
}else {
helper.serverStyle.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -17,10 +17,16 @@ import com.dayu.utils.UIUtils;
*/
public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, ServeDatailsItemBinding> {
private OrderDetail mDetail;
public OrderServerAdapter(boolean needFoot) {
super(needFoot);
}
public void setOrderDetail(OrderDetail detail) {
mDetail = detail;
}
@Override
protected void onBind(ServeDatailsItemBinding holder, OrderDetail.RecordBean item, int position) {
super.onBind(holder, item, position);
......@@ -47,10 +53,12 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverTime.setText(item.getCreateTime());
holder.serverState.setText("【" + item.getOperation() + "】");
holder.serverCheck.setVisibility(View.VISIBLE);
holder.serverTimeComment.setVisibility(View.GONE);
holder.serverComment.setText(item.getOperationComment());
if ((item.getCommentInfo() != null && item.getCommentInfo().contains(UIUtils.getString(R.string.appointment_time)))) {
holder.serverTimeComment.setText(item.getCommentInfo());
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.order_remark).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_remark));
......@@ -58,8 +66,10 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverTimeComment.setText(UIUtils.getString(R.string.remark_order) + item.getCommentInfo());
}
holder.serverCheck.setText(UIUtils.getString(R.string.check_initial_state));
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.system_chcek).equals(item.getOperation())) {
holder.serverCheck.setText(UIUtils.getString(R.string.check_accept));
holder.serverTimeComment.setVisibility(View.GONE);
} else if (UIUtils.getString(R.string.reassignment_reason).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_reassignment));
......@@ -67,6 +77,7 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverTimeComment.setText(UIUtils.getString(R.string.reassignment_reason) + ":" + item.getCommentInfo());
}
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.cancle_reason).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_cancle));
......@@ -74,6 +85,10 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverTimeComment.setText(UIUtils.getString(R.string.cancle_reason) + ":" + item.getCommentInfo());
}
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.part_record).equals(item.getOperation())) {
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.GONE);
} else {
holder.serverTimeComment.setVisibility(View.GONE);
if (TextUtils.isEmpty(item.getCommentName())) {
......@@ -82,10 +97,12 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverCheck.setText(item.getCommentName());
}
}
if (UIUtils.getString(R.string.check_reason).equals(item.getCommentName())) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop());
}
if (UIUtils.getString(R.string.check_accept).equals(item.getCommentName()) || UIUtils.getString(R.string.system_chcek).equals(item.getOperation())) {
if (mDetail.getCreatedSource() == 4) {
holder.serverCheck.setVisibility(View.GONE);
} else {
holder.serverCheck.setVisibility(View.VISIBLE);
}
holder.serverCheck.setOnClickListener(v -> presenter.dumpCheckContent(position));
}
if (UIUtils.getString(R.string.order_remark).equals(item.getCommentName())) {
......@@ -95,7 +112,13 @@ public class OrderServerAdapter extends CoreAdapter<OrderDetail.RecordBean, Serv
holder.serverCheck.setOnClickListener(v -> presenter.dumpMap(item.getLatitude(), item.getLongitude(), item.getAddress()));
}
if (UIUtils.getString(R.string.check_reason).equals(item.getCommentName())) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop());
if (mDetail.getCreatedSource() == 4) {
if (item.getCommentInfo() != null) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop(Integer.parseInt(item.getCommentInfo())));
}
} else {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop(0));
}
}
}
}
......@@ -6,7 +6,9 @@ import android.view.View;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.order.R;
import com.dayu.order.api.protocol.ErrorOrder;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.databinding.FragmentOrderErrorItemBinding;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
......@@ -27,7 +29,7 @@ public class OrderThreeTabAdapter extends CoreAdapter<ErrorOrder, FragmentOrderE
@Override
protected void onBind(FragmentOrderErrorItemBinding holder, ErrorOrder item, int position) {
super.onBind(holder, item,position);
super.onBind(holder, item, position);
initData(holder, item);
}
......@@ -54,21 +56,40 @@ public class OrderThreeTabAdapter extends CoreAdapter<ErrorOrder, FragmentOrderE
helper.itemTextWeixiuLeixing.setText(item.getCategoryName());
helper.itemTextDizhi.setText(item.getProvinceName() + item.getCityName() +
item.getDistrictName() + item.getAddress());
int errorState = item.getExcptionCode();
if (errorState == 1) {
helper.errorState.setText(mContext.getString(R.string.receive_time_out));
} else if (errorState == 2) {
helper.errorState.setText(mContext.getString(R.string.appointment_time_out));
} else if (errorState == 3) {
helper.errorState.setText(mContext.getString(R.string.server_time_out));
} else if (errorState == 4) {
helper.errorState.setText(mContext.getString(R.string.delivery_time_out));
}
} catch (Exception e) {
e.printStackTrace();
}
int errorState = item.getExcptionCode();
if (errorState == 1) {
helper.errorState.setText(mContext.getString(R.string.receive_time_out));
} else if (errorState == 2) {
helper.errorState.setText(mContext.getString(R.string.appointment_time_out));
} else if (errorState == 3) {
helper.errorState.setText(mContext.getString(R.string.server_time_out));
} else if (errorState == 4) {
helper.errorState.setText(mContext.getString(R.string.delivery_time_out));
if (item.getCreatedSource() == 4) {
if (item.getSpus().size() < 1) {
return;
}
helper.itemTextWeixiu.setText(item.getSpus().get(0).getProviderTypeName());
helper.itemTextWeixiuLeixing.setText(item.getSpus().get(0).getKaSpuName());
Spu spu = item.getSpus().get(0);
if (item.getSpus().size() > 1) {
String str = UIUtils.getString(R.string.server_num);
String result = String.format(str, item.getSpus().size());
helper.serverStyle.setText(result);
} else {
String str = UIUtils.getString(R.string.single_server_num);
String result = String.format(str, spu.getFinNum(), spu.getFinNum());
helper.serverStyle.setText(result);
}
helper.serverStyle.setVisibility(View.VISIBLE);
}else {
helper.serverStyle.setVisibility(View.GONE);
}
}
}
package com.dayu.order.ui.adapter;
import android.text.TextUtils;
import android.view.View;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.order.R;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.databinding.ItemServerInfoBinding;
import com.dayu.order.presenter.serverinfo.ServerInfoPresenter;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate;
import java.text.ParseException;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
/**
* Created by luofan
* on 2018/5/22.
*/
public class ServerInfoAdapter extends CoreAdapter<Spu, ItemServerInfoBinding> {
private ServerInfoPresenter mServerPresenter;
public ServerInfoAdapter(boolean needFoot) {
super(needFoot);
}
@Override
protected void onBind(ItemServerInfoBinding holder, Spu item, int position) {
super.onBind(holder, item, position);
mServerPresenter = (ServerInfoPresenter) mPresenter;
holder.tvRepairType.setText(item.getProviderTypeName());
holder.tvRepairName.setText("-" + item.getCategoryThreeName());
if (item.getServiceType() == 1) {
holder.tvServerType.setText("上门服务");
}
if (TextUtils.isEmpty(item.getKaSpuName())){
holder.tvServerRequest.setText("无服务要求");
}else{
holder.tvServerRequest.setText(item.getKaSpuName());
}
String str = UIUtils.getString(R.string.single_server_num);
String result = String.format(str, item.getFinNum(), item.getGoodNum());
holder.tvFinishNum.setText(result);
String time = getDatas().get(0).getTime();
if (TextUtils.isEmpty(time)) {
holder.itemTody.setText(mContext.getString(R.string.no_appointment));
holder.itemTime.setVisibility(View.GONE);
} else {
String dateTime = null;
try {
dateTime = UtilsDate.changeFormat(time, FORMAT_ONE, LONG_TIME_FORMAT_TWO);
} catch (ParseException e) {
e.printStackTrace();
}
holder.itemTody.setText(UtilsDate.getDayOrIsToday(time));
holder.itemTime.setText(dateTime);
holder.itemTime.setVisibility(View.VISIBLE);
}
holder.processOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mServerPresenter.dumpServerList(item.getId());
}
});
}
}
package com.dayu.order.ui.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.base.ui.fragment.DataBindingFragment;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.FragmentMultiDetailBinding;
import com.dayu.order.databinding.FragmentOrderDatailsBinding;
import com.dayu.order.databinding.ItemAccessoriesLayoutBinding;
import com.dayu.order.databinding.ItemDetailServerInfoBinding;
import com.dayu.order.ui.activity.PdfWebViewActivity;
import com.dayu.order.ui.activity.QrCodeActivity;
import com.dayu.order.ui.activity.ServerInstructionActivity;
import com.dayu.utils.ToastUtils;
import com.dayu.widgets.listener.OnItemClickListener;
import com.umeng.analytics.MobclickAgent;
/**
* Created by luofan
* on 2018/5/21.
*/
public class MultiOrderDetailFragment extends DataBindingFragment<FragmentMultiDetailBinding> {
private CoreAdapter<Spu, ItemDetailServerInfoBinding> mServerAdapter;
private CoreAdapter mFujianAdapter;
private boolean mFlag = true;
public static MultiOrderDetailFragment newInstance(OrderDetail detail) {
Bundle args = new Bundle();
args.putSerializable(Constants.ORDER_DETAIL, detail);
MultiOrderDetailFragment fragment = new MultiOrderDetailFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void initView() {
OrderDetail detail = (OrderDetail) getArguments().getSerializable(Constants.ORDER_DETAIL);
mBind.setItem(detail);
mServerAdapter = new CoreAdapter<>(false);
mBind.rlServerContent.setLayoutManager(new LinearLayoutManager(mActivity));
mServerAdapter.setViewType(R.layout.item_detail_server_info);
mBind.rlServerContent.setAdapter(mServerAdapter);
mServerAdapter.setData(detail.getSpus());
mServerAdapter.setOnItemClickListener(new OnItemClickListener<Spu, ItemDetailServerInfoBinding>() {
@Override
public void OnItemClick(Spu item, ItemDetailServerInfoBinding bind) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, item.getKaSpuId());
Intent intent = new Intent(mActivity, ServerInstructionActivity.class);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
}
});
mFujianAdapter = new CoreAdapter<String, FragmentOrderDatailsBinding>(false);
mBind.rlFujian.setLayoutManager(new LinearLayoutManager(mActivity));
mFujianAdapter.setViewType(R.layout.item_accessories_layout);
mBind.rlFujian.setAdapter(mFujianAdapter);
mFujianAdapter.setData(detail.getAccessories());
mFujianAdapter.setOnItemClickListener(new OnItemClickListener<OrderDetail.accessories, ItemAccessoriesLayoutBinding>() {
@Override
public void OnItemClick(OrderDetail.accessories item, ItemAccessoriesLayoutBinding bind) {
Intent intent = new Intent(mActivity, PdfWebViewActivity.class);
intent.putExtra(Constants.PICURL, item.getUrl());
intent.putExtra(OrderConstant.TITLE, item.getName());
if (!item.getUrl().contains(".pdf")) {
ToastUtils.showShortToast(R.string.error_pdf);
} else {
startActivity(intent);
}
}
});
mBind.tvOrderState.setText(getStaus(detail.getStatus()));
mBind.tvLookMore.setOnClickListener(o -> lookMore());
if (detail.getStatus() == 4 && detail.getSubStatus() == 6) {
mBind.customerAcceptance.setVisibility(View.VISIBLE);
} else {
mBind.customerAcceptance.setVisibility(View.GONE);
}
mBind.customerAcceptance.setOnClickListener(v -> {
startActivity(new Intent(mActivity, QrCodeActivity.class));
MobclickAgent.onEvent(mActivity, "customer_apponitment");
});
}
public String getStaus(int staus) {
if (staus == 1) {
return mActivity.getString(R.string.not_receive_order);
} else if (staus == 2) {
return mActivity.getString(R.string.not_appointment_already);
} else if (staus == 3) {
return mActivity.getString(R.string.appointment_already);
} else if (staus == 4) {
return mActivity.getString(R.string.order_doing);
} else if (staus == 5) {
return mActivity.getString(R.string.finish_order);
} else if (staus == 6) {
return mActivity.getString(R.string.cancle_order);
} else if (staus == 7) {
return mActivity.getString(R.string.order_close);
} else {
return mActivity.getString(R.string.no_data);
}
}
public void lookMore() {
if (mFlag) {
mFlag = false;
mBind.tvLookMore.setText(mActivity.getString(R.string.stop));
mBind.orderRemark.setMaxLines(30);
} else {
mFlag = true;
mBind.tvLookMore.setText(mActivity.getString(R.string.look_more));
mBind.orderRemark.setMaxLines(2);
}
}
@Override
public int getLayoutId() {
return R.layout.fragment_multi_detail;
}
}
......@@ -17,7 +17,7 @@ import com.umeng.analytics.MobclickAgent;
* on 2017/9/13.
*/
public class OrderDetailsServeFragment extends BaseFragment<OrderServerPresenter, FragmentOrderServeBinding> implements OrderServerContract.View{
public class OrderDetailsServeFragment extends BaseFragment<OrderServerPresenter, FragmentOrderServeBinding> implements OrderServerContract.View {
private static final String TAG = "OrderDetailsServeFragme";
public static OrderDetailsServeFragment newInstance(OrderDetail detail) {
......@@ -41,6 +41,7 @@ public class OrderDetailsServeFragment extends BaseFragment<OrderServerPresenter
@Override
public void initView() {
OrderServerAdapter adapter = new OrderServerAdapter(false);
adapter.setOrderDetail(mPresenter.getDetail());
mBind.recyclerView.setAdapter(adapter);
}
......
......@@ -33,7 +33,8 @@ public class OrderFirstTabFragment extends BaseFragment<OrderDoingPresenter, Fra
@Override
public void initView() {
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mAdapter = new OrderAdapter(true);
mAdapter.setViewType(R.layout.fragment_orderdoing_item);
mBind.recyclerView.setAdapter(mAdapter);
mPresenter.refresh();
EventBus.getDefault().register(this);
......
......@@ -51,7 +51,8 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr
@Override
public void initView() {
EventBus.getDefault().register(this);
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mAdapter = new OrderAdapter(true);
mAdapter.setViewType(R.layout.fragment_orderdoing_item);
mAdapter.initPresenter(mPresenter);
mBind.recyclerView.setAdapter(mAdapter);
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
......
......@@ -58,5 +58,18 @@
<activity
android:name=".ui.activity.CheckContentActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ServerInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ServerListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.MultipleProcessActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.MultiProcessOrderActivity"
android:windowSoftInputMode="stateVisible|adjustResize"
android:screenOrientation="portrait" />
</application>
</manifest>
......@@ -18,8 +18,7 @@
<ImageView
android:id="@+id/tv_back"
style="@style/title_image_back"
/>
style="@style/title_image_back" />
<ImageView
android:layout_width="match_parent"
......@@ -66,7 +65,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_product_title"
android:layout_marginBottom="@dimen/dp_162">
android:layout_marginBottom="10dp">
<RelativeLayout
android:id="@+id/rl_product"
......@@ -278,8 +277,8 @@
android:layout_marginRight="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_8"
android:text="@string/order_select_payer_notice"
android:visibility="gone"
android:textColor="#F74848" />
android:textColor="#F74848"
android:visibility="gone" />
<ImageView
android:id="@+id/line_notice"
......@@ -291,25 +290,25 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/line_notice"
android:layout_marginTop="@dimen/dp_27"
android:layout_marginBottom="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_27"
android:background="@color/cl_white"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:text="@string/order_payer_prove"
android:textColor="@color/default_text_color"
android:layout_marginLeft="@dimen/dp_15"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="8dp"
android:text="@string/order_payer_prove_notice"
android:layout_marginLeft="@dimen/dp_15"
android:textColor="@color/default_text_color"
android:textSize="12sp" />
......@@ -465,8 +464,8 @@
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:text="暂无"
android:gravity="center"
android:text="暂无"
android:textColor="@color/cl_home_title_text_color"
android:textColorHint="@color/cl_selector_hui"
android:textSize="@dimen/sp_13.3" />
......@@ -509,8 +508,8 @@
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:text="暂无数据"
android:gravity="center"
android:text="暂无数据"
android:textColor="@color/cl_home_title_text_color"
android:textColorHint="@color/cl_selector_hui"
android:textSize="@dimen/sp_13.3" />
......@@ -553,8 +552,8 @@
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:text="暂无"
android:gravity="center"
android:text="暂无"
android:textColor="@color/cl_home_title_text_color"
android:textColorHint="@color/cl_selector_hui"
android:textSize="@dimen/sp_13.3" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="presenter"
type="com.dayu.order.presenter.multipleprocess.MultipleProcessPresenter" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_back"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title" />
<ImageView
android:id="@+id/receiving_back"
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}"
/>
</RelativeLayout>
<ImageView style="@style/card_line" />
<TextView
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_marginLeft="15dp"
android:paddingTop="@dimen/dp_17"
android:text="工单概况"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.dayu.widgets.LRecyclerView
android:id="@+id/recyclerView"
setPresenter="@{presenter}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
app:footType="@layout/item_multi_process_foot"
app:isRefreshable="false"
app:itemType="@layout/item_multi_process_order"
app:needCoreAdapter="true"
app:needFoot="false" />
<TextView
android:layout_width="match_parent"
android:layout_height="49dp"
android:layout_alignParentBottom="true"
android:background="@color/bg_button"
android:gravity="center"
android:onClick="@{()->presenter.processOrder()}"
android:text="提交验收"
android:textColor="@color/white" />
</RelativeLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -77,7 +77,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_product_title"
android:layout_marginBottom="@dimen/dp_162">
android:layout_marginBottom="10dp">
<RelativeLayout
android:id="@+id/rl_product"
......@@ -275,8 +275,8 @@
android:layout_toRightOf="@id/tv_player"
android:background="@null"
android:hint="@string/order_select_payer"
android:text="@{presenter.mPayer}"
android:onClick="@{()->presenter.showPayerDialog()}"
android:text="@{presenter.mPayer}"
android:textColor="@color/cl_selector_hui"
android:textSize="@dimen/sp_15" />
......@@ -317,25 +317,25 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/line_notice"
android:layout_marginTop="@dimen/dp_27"
android:layout_marginBottom="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_27"
android:background="@color/cl_white"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:text="@string/order_payer_prove"
android:textColor="@color/default_text_color"
android:layout_marginLeft="@dimen/dp_15"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="8dp"
android:text="@string/order_payer_prove_notice"
android:layout_marginLeft="@dimen/dp_15"
android:textColor="@color/default_text_color"
android:textSize="12sp" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="presenter"
type="com.dayu.order.presenter.serverinfo.ServerInfoPresenter" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/title_back"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title" />
<ImageView
android:id="@+id/receiving_back"
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}"
/>
</RelativeLayout>
<ImageView
android:id="@+id/line"
style="@style/card_line"
android:layout_below="@+id/title_back" />
<com.dayu.widgets.LRecyclerView
android:id="@+id/recyclerView"
setPresenter="@{presenter}"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/line"
android:layout_marginBottom="@dimen/dp_50"
app:headType="@layout/recycler_server_info_header"
app:itemType="@layout/item_server_info" />
<TextView
android:id="@+id/tv_process"
android:layout_width="match_parent"
android:layout_height="49dp"
android:layout_alignParentBottom="true"
android:background='@{presenter.mCanProcess==2?@color/bg_button:@color/cl_selector_hui}'
android:clickable='@{presenter.mCanProcess==2?true:false}'
android:gravity="center"
android:text="提交验收"
android:textColor="@color/white" />
</RelativeLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Spu" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="82dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/white"
android:layout_marginBottom="10dp"
android:paddingLeft="@dimen/dp_15">
<TextView
android:id="@+id/tv_repair_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/dp_20"
android:text='@{item.providerTypeName}'
android:textColor="@color/default_text_color"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_repair_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:layout_toRightOf="@+id/tv_repair_type"
android:text='@{"-"+item.categoryThreeName}'
android:textColor="@color/default_text_color"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_repair_type"
android:layout_marginTop="6dp"
android:text="@{item.kaSpuName}"
android:textColor="@color/default_editext_color" />
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/iv_arrow"
android:text='@{item.status==1?"处理":"已完成"}'
android:textColor="@color/bg_button"
android:textSize="@dimen/sp_14" />
<ImageView
android:id="@+id/iv_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="7dp"
android:layout_marginRight="15sp"
android:src="@drawable/icon_arrow_right" />
</RelativeLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="presenter"
type="com.dayu.order.presenter.serverlist.ServerListPresenter" />
<import type="android.view.View" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_back"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title" />
<ImageView
android:id="@+id/receiving_back"
style="@style/title_image_back"
android:onClick="@{()->presenter.dumpBack()}"
/>
</RelativeLayout>
<ImageView style="@style/card_line" />
<com.dayu.widgets.LRecyclerView
android:id="@+id/recyclerView"
setPresenter="@{presenter}"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f5f5f5"
app:itemType="@layout/activity_server_list"
app:needCoreAdapter="true"
android:layout_marginBottom="50dp"
app:needFoot="false" />
</LinearLayout>
<TextView
android:id="@+id/tv_process"
android:layout_width="match_parent"
android:layout_height="49dp"
android:layout_alignParentBottom="true"
android:background='@{presenter.mCanProcess?@color/bg_button:@color/cl_selector_hui}'
android:clickable='@{presenter.mCanProcess?true:false}'
android:onClick="@{()->presenter.dumpToProcess()}"
android:gravity="center"
android:text="提交验收"
android:textColor="@color/white"
android:visibility="@{presenter.mIsShowProcess?View.VISIBLE:View.GONE}" />
</RelativeLayout>
</layout>
\ No newline at end of file
......@@ -60,13 +60,22 @@
android:textSize="@dimen/size_order_item_data_text"
android:typeface="@{@string/tv_fonts}" />
<TextView
android:id="@+id/tv_error_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:textColor="@color/cl_tab_read"
android:textSize="@dimen/size_login_hint_text"
android:layout_gravity="right"
android:visibility="gone" />
</LinearLayout>
<ImageView
android:id="@+id/item_line"
android:layout_width="@dimen/size_order_item_line_width"
android:layout_height="match_parent"
android:layout_marginBottom="25dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="@dimen/dp_21.3"
android:background="@color/cl_order_item_line_bg" />
......@@ -125,12 +134,12 @@
</LinearLayout>
<TextView
android:id="@+id/tv_error_state"
android:id="@+id/tv_server_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginTop="@dimen/dp_16.7"
android:textColor="@color/cl_tab_read"
android:textColor="@color/cl_tab_init"
android:textSize="@dimen/size_login_hint_text"
android:visibility="gone" />
</LinearLayout>
......@@ -200,6 +209,7 @@
android:id="@+id/item_bottom_line"
android:layout_width="match_parent"
android:layout_height="@dimen/size_order_item_line_width"
android:layout_marginTop="5dp"
android:background="@color/cl_order_item_line_bg" />
<LinearLayout
......
......@@ -5,13 +5,14 @@
<variable
name="item"
type="com.dayu.order.api.protocol.OrderDetail.accessories"/>
type="com.dayu.order.api.protocol.OrderDetail.accessories" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_accessories_name"
......@@ -20,7 +21,6 @@
android:layout_marginBottom="5dp"
android:text="@{item.name}"
android:textColor="@color/cl_receiving_order_item_data"
android:textSize="@dimen/sp_13.3"
/>
android:textSize="@dimen/sp_13.3" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Spu" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:text='@{item.kaSpuName}'
android:maxLines="1"
android:maxEms="12"
android:textColor="@color/cl_home_title_text_color"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:text='@{"x"+item.goodNum}'
android:paddingLeft="3dp"
android:textColor="@color/cl_home_title_text_color"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="18dp"
android:text="服务说明"
android:textColor="@color/bg_button"
android:textSize="14sp" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Spu" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="82dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/white"
android:paddingLeft="@dimen/dp_15">
<TextView
android:id="@+id/tv_repair_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/dp_20"
android:text='@{item.providerTypeName}'
android:textColor="@color/default_text_color"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_repair_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:layout_toRightOf="@+id/tv_repair_type"
android:text='@{"-"+item.categoryThreeName}'
android:textColor="@color/default_text_color"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_repair_type"
android:layout_marginTop="6dp"
android:text="@{item.kaSpuName}"
android:textColor="@color/default_editext_color" />
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15sp"
android:text='@{item.status==1?"处理":"已完成"}'
android:textColor="@color/bg_button"
android:textSize="@dimen/sp_14" />
</RelativeLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Spu"/>
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="@drawable/item_shape"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_order_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25.3dp"
android:layout_marginTop="28dp"
android:text="@string/tv_home_tab_one_subscribe_time"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
<TextView
android:id="@+id/item_tody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="10dp"
android:text="@string/tv_order_item_time"
android:textColor="@color/bg_button"
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/item_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="@string/tv_order_item_date"
android:textColor="@color/bg_button"
android:textSize="19sp" />
</LinearLayout>
<ImageView
android:id="@+id/item_line"
android:layout_width="@dimen/size_order_item_line_width"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:background="@color/cl_order_item_line_bg" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="12dp"
android:layout_marginRight="@dimen/dp_10"
android:layout_marginTop="28dp">
<TextView
android:id="@+id/tv_repair_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="安装"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_repair_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/tv_repair_type"
android:text="-平板电视"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_finish_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/single_server_num"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_server_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_repair_type"
android:layout_marginTop="10dp"
android:text="服务方式"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_server_request"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_server_type"
android:layout_marginTop="5dp"
android:text="服务要求"
android:textColor="@color/cl_tab_init"
android:textSize="13sp" />
</RelativeLayout>
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/size_order_item_line_width"
android:layout_marginTop="10dp"
android:background="@color/cl_order_item_line_bg" />
<TextView
android:id="@+id/process_order"
android:layout_width="match_parent"
android:layout_height="39dp"
android:gravity="center"
android:text="处理"
android:textColor="@color/bg_button"
android:textSize="14sp" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Order" />
<import type="android.text.TextUtils" />
</data>
<LinearLayout
android:id="@+id/ll_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_test"
android:layout_width="match_parent"
android:layout_height="43dp"
android:paddingLeft="15dp"
android:paddingTop="@dimen/dp_18"
android:text="顾客信息"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingLeft="15dp"
android:paddingRight="@dimen/dp_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:text="客户类型"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="18dp"
android:text='@{item.customerType==1?"个人客户":"大客户"}'
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_type"
android:layout_marginTop="14dp"
android:text="客户姓名"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_type"
android:layout_marginTop="14dp"
android:text='@{!TextUtils.isEmpty(item.customerName)?item.customerMobile:@string/no_data}'
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_name"
android:layout_marginTop="14dp"
android:text="联系方式"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_name"
android:layout_marginTop="14dp"
android:text='@{!TextUtils.isEmpty(item.customerMobile)?item.customerMobile:@string/no_data}'
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_mobile"
android:layout_marginTop="14dp"
android:text="座机"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_mobile"
android:layout_marginTop="14dp"
android:text='@{!TextUtils.isEmpty(item.customerTelphome)?item.customerMobile:@string/no_data}'
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_phone"
android:layout_marginTop="14dp"
android:text="客户地址"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_phone"
android:layout_marginLeft="20dp"
android:layout_marginTop="14dp"
android:layout_toRightOf="@+id/tv_location"
android:gravity="right"
android:text='@{item.getProvinceName()+item.cityName+item.address}'
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_address"
android:layout_marginBottom="@dimen/dp_15"
android:layout_marginTop="14dp"
android:text="预约时间"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_address"
android:layout_marginTop="14dp"
android:text="@{item.appointmentTime}"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="43dp"
android:paddingLeft="15dp"
android:paddingTop="@dimen/dp_18"
android:text="任务列表"
android:textColor="@color/tv_cl"
android:textSize="14sp" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -87,7 +87,7 @@ public interface UserService {
/**
* 获取工程师工单记录,评分.
*
* @param siteId
* @param siteIdHome
* @param engineerId
* @return
*/
......
......@@ -42,6 +42,8 @@ public interface HomeFourContract {
*/
void dumpToOrderRecord();
void dumpToDaYuB();
}
abstract class Presenter extends BasePresenter<View> {
......@@ -74,5 +76,10 @@ public interface HomeFourContract {
* 跳转到资质列表.
*/
public abstract void dumpToLicence();
/**
* 跳转到大鱼帮帮.
*/
public abstract void dumpToDayuBB();
}
}
......@@ -73,6 +73,11 @@ public class HomePersonPresenter extends HomeFourContract.Presenter {
}
@Override
public void dumpToDayuBB() {
mView.dumpToDaYuB();
}
@Override
public void dumpToPersonalInfo() {
mView.startActivity(PersonInfoActivity.class);
MobclickAgent.onEvent(BaseApplication.getContext(), "check_personInfo");
......
......@@ -12,6 +12,8 @@ import com.dayu.usercenter.api.UserApiFactory;
import com.dayu.usercenter.ui.activity.AgreementActivity;
import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
import com.dayu.utils.LogUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsUserAccountMatcher;
import com.hyphenate.EMCallBack;
......@@ -79,6 +81,8 @@ public class LoginPresenter extends LoginContract.Presenter {
else if (userInfo.getDetectStatus() == 2 || userInfo.getDetectStatus() == 3) {
showLoginDialog();
UserManager.getInstance().saveUser(userInfo);
}else {
ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
}
}));
}
......
package com.dayu.usercenter.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.LinearLayout;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.baselibrary.databinding.ActivityWebviewBinding;
import com.dayu.common.Constants;
import com.dayu.usercenter.R;
import com.dayu.utils.ProgressUtil;
import com.github.lzyzsd.jsbridge.BridgeHandler;
import com.github.lzyzsd.jsbridge.BridgeWebView;
import com.github.lzyzsd.jsbridge.CallBackFunction;
import java.io.File;
/**
* Created by luofan
* on 2018/5/25.
*/
public class CommeWebViewActivity extends DataBindingActivity<ActivityWebviewBinding> {
ValueCallback<Uri> mUploadMessage;
ValueCallback<Uri[]> uploadMessageAboveL;
int RESULT_CODE = 0;
int RESULT_CODE_FOR_Lollipop = 1;
private BridgeWebView mWebView;
private String mUrl;
@Override
public int getLayoutId() {
return R.layout.activity_webview;
}
@Override
public void initView() {
Bundle bundle = getIntent().getBundleExtra(Constants.BUNDLE);
mUrl = bundle.getString(Constants.URL);
mBind.rlTitle.setVisibility(View.GONE);
mWebView = new BridgeWebView(mActivity);
mWebView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
mBind.llWeb.addView(mWebView);
initWebView();
}
@SuppressLint("SetJavaScriptEnabled")
private void initWebView() {
WebSettings settings = mWebView.getSettings();
// >= 19(SDK4.4)启动硬件加速,否则启动软件加速
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
settings.setLoadsImagesAutomatically(true); //支持自动加载图片
} else {
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
settings.setLoadsImagesAutomatically(false);
}
settings.setUseWideViewPort(true);//设定支持viewport
settings.setLoadWithOverviewMode(true);//自适应屏幕
settings.setDomStorageEnabled(true);
settings.setSaveFormData(true);
settings.setAppCacheEnabled(false);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setAppCachePath(getFilesDir().getAbsolutePath() + "/Android/data/com.dayu.bigfish/cache");
settings.setJavaScriptEnabled(true); //启用支持javascript
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportZoom(true);//设定支持缩放
settings.setBuiltInZoomControls(true); //make sure your pinch zoom is enabled
settings.setDisplayZoomControls(false);//don't show the zoom controls
//5.0 以上 webView图片不显示 以下没问题
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
mWebView.setVerticalScrollbarOverlay(false); //指定的垂直滚动条有叠加样式
mWebView.setVerticalScrollBarEnabled(true);
mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER); // 取消WebView中滚动或拖动到顶部、底部时的阴影
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); // 取消滚动条白边效果
mWebView.requestFocus();
mWebView.setDefaultHandler(new MyHandler());
mWebView.setWebChromeClient(new WebChromeClient() {
public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType, String capture) {
this.openFileChooser(uploadMsg);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType) {
this.openFileChooser(uploadMsg);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooserImpl(uploadMsg);
}
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> uploadMsg, FileChooserParams fileChooserParams) {
openFileChooserImplForAndroid5(uploadMsg);
return true;
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
ProgressUtil.stopLoad();
}
}
});
ProgressUtil.startLoad(mActivity);
mWebView.loadUrl(mUrl);
}
private void openFileChooserImpl(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
startActivityForResult(Intent.createChooser(i, getString(R.string.choose_file)), RESULT_CODE);
}
/*android 5.0*/
private void openFileChooserImplForAndroid5(ValueCallback<Uri[]> uploadMsg) {
uploadMessageAboveL = uploadMsg;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("image/*");
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, getString(R.string.choose_pic));
startActivityForResult(chooserIntent, RESULT_CODE_FOR_Lollipop);
}
/**
* 上传文件回调
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == RESULT_CODE) {
onActivityResultBelowL(intent, resultCode);
} else if (requestCode == RESULT_CODE_FOR_Lollipop) {
onActivityResultAboveL(intent, resultCode);
}
}
/**
* 5.0 L 以下 上传图片成功后的回调
*/
public void onActivityResultBelowL(Intent intent, int resultCode) {
if (null == mUploadMessage)
return;
Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
/**
* 5.0 L以上 上传图片成功后的回调
*/
public void onActivityResultAboveL(Intent intent, int resultCode) {
if (null == uploadMessageAboveL)
return;
Uri result = (intent == null || resultCode != RESULT_OK) ? null : intent.getData();
if (result != null) {
uploadMessageAboveL.onReceiveValue(new Uri[]{result});
} else {
uploadMessageAboveL.onReceiveValue(new Uri[]{});
}
uploadMessageAboveL = null;
}
private class MyHandler implements BridgeHandler {
@Override
public void handler(String data, CallBackFunction function) {
if (function != null) {
function.onCallBack("DefaultHandler response data");
}
}
}
//返回
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
clearCach();
return true;
}
return super.onKeyDown(keyCode, event);
}
public void onResume() {
super.onResume();
mWebView.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
clearCach();
}
public void clearCach() {
try {
deleteDatabase("webview.db");
deleteDatabase("webviewCache.db");
File appCacheDir = new File(getFilesDir().getAbsolutePath() + "/Android/data/com.dayu.bigfish/cache");
File webviewCacheDir = new File(getCacheDir().getAbsolutePath() + "/webviewCache");
if (webviewCacheDir.exists()) {
deleteFile(webviewCacheDir);
}
if (appCacheDir.exists()) {
deleteFile(appCacheDir);
}
} catch (Exception e) {
e.printStackTrace();
}
mWebView.clearHistory();
mWebView.clearFormData();
mWebView.goBack();
mWebView.removeAllViews();
mWebView.destroy();
mBind.llWeb.removeAllViews();
}
/**
* 递归删除 文件/文件夹
*
* @param file
*/
public void deleteFile(File file) {
if (file.exists()) {
if (file.isFile()) {
file.delete();
} else if (file.isDirectory()) {
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
deleteFile(files[i]);
}
}
file.delete();
} else {
}
}
}
......@@ -89,7 +89,7 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre
mBind.rlNext.setClickable(false);
mBind.ivSideDelete.setVisibility(View.GONE);
});
mBind.rlNext.setOnClickListener(v -> mPresenter.commitePhoto());
mBind.rlNext.setOnClickListener(v->mPresenter.commitePhoto());
mBind.ivNext.setAlpha(0.5f);
mBind.rlNext.setClickable(false);
......@@ -201,8 +201,8 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre
@Override
public List<File> getFile() {
ArrayList<File> list = new ArrayList<>();
list.add(compressImage(mFrontBitmap, "front", mActivity));
list.add(compressImage(mSideBitmap, "back", mActivity));
list.add(compressImage(mFrontBitmap,"front",mActivity));
list.add(compressImage(mSideBitmap,"back",mActivity));
return list;
}
}
package com.dayu.usercenter.ui.fragment;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
......@@ -24,6 +25,7 @@ import com.dayu.usercenter.databinding.FragmentPersonalCenterBinding;
import com.dayu.usercenter.presenter.homefourtab.HomeFourContract;
import com.dayu.usercenter.presenter.homefourtab.HomePersonPresenter;
import com.dayu.usercenter.ui.activity.AccountBalanceActivity;
import com.dayu.usercenter.ui.activity.CommeWebViewActivity;
import com.dayu.usercenter.ui.activity.WithdrawalsActivity;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.SPUtils;
......@@ -164,6 +166,38 @@ public class HomePersonFragment extends BaseFragment<HomePersonPresenter, Fragme
MobclickAgent.onEvent(mActivity, "order_record");
}
@Override
public void dumpToDaYuB() {
String packageName = "com.gikoomps.phone.dayu";
Intent intent;
PackageManager packageManager = mActivity.getPackageManager();
intent = packageManager.getLaunchIntentForPackage(packageName);
if (intent != null) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
showDayuBbActivity(intent);
} else {
Bundle bundle = new Bundle();
bundle.putString(Constants.URL, "http://shouji.baidu.com/software/23610629.html");
Intent intent1 = new Intent(mActivity,CommeWebViewActivity.class);
intent1.putExtra(Constants.BUNDLE,bundle);
mActivity.startActivity(intent1, bundle);
}
}
private void showDayuBbActivity(Intent intent) {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, mActivity.getString(R.string.is_open_dayu_bb)
, (dialog1, confirm) -> {
if (confirm) {
this.startActivity(intent);
}
dialog1.dismiss();
});
dialog.setTitle(mActivity.getString(R.string.notice))
.setNegativeButton(mActivity.getString(R.string.cancle))
.setPositiveButton(mActivity.getString(R.string.open));
dialog.show();
}
private void showAlertDialog() {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, mActivity.getString(R.string.not_set_account)
, (dialog1, confirm) -> {
......
......@@ -44,6 +44,8 @@
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.CertificationResultActivity"
android:screenOrientation="portrait" /> <activity
android:name=".ui.activity.CommeWebViewActivity"
android:screenOrientation="portrait" />
</application>
......
......@@ -21,7 +21,13 @@
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<TextView
android:id="@+id/tv_left"
style="@style/title_left"
android:text="@string/dayu_bang"
android:textSize="14sp"
android:onClick="@{()->presenter.dumpToDayuBB()}"
/>
<TextView
style="@style/text_title"
android:text="@string/personal_center" />
......
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