Commit 9e8f1f3f by 罗翻

android1.9.9

parent 2ddc4ae6
Showing with 877 additions and 104 deletions
apply plugin: 'com.android.application'
//apply plugin: 'kotlin-android'
android {
......
......@@ -14,9 +14,9 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.databinding.ActivityInitializeMainBinding;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.ui.ManagerActivity;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.bigfish.ui.ManagerActivity;
import com.dayu.managercenter.ui.activity.ServiceStationActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.activity.SmsLoginActivity;
......
......@@ -85,7 +85,7 @@ public class MainPresenter extends MainContract.Presenter {
@Override
public void upgradeVersion(String appId, String versionCode) {
ApiFactory.getVersionInfo(appId, versionCode).safeSubscribe(baseObserver(
ApiFactory.getVersionInfo(appId, versionCode).subscribe(baseObserver(
info -> mView.showUpdateDialog(info)));
}
......
......@@ -11,13 +11,7 @@ public interface ManagerContract {
interface View extends BaseView {
/**
* 是否显示小红点.
*
* @param flag
*/
void isShowRedIcon(boolean flag);
void isShowRedIcon(int num);
}
abstract class Presenter extends BasePresenter<View> {
......
package com.dayu.bigfish.presenter.manager;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.utils.SPUtils;
import com.dayu.utils.UserManager;
/**
......@@ -20,9 +22,8 @@ public class ManagerPresenter extends ManagerContract.Presenter {
public void getHxNum(String accountId) {
mView.showDialog();
ApiFactory.getHxNum(accountId).subscribe(baseObserver(integer -> {
if (integer > 0) {
mView.isShowRedIcon(true);
}
SPUtils.put(Constants.HX_NUM, integer);
mView.isShowRedIcon(integer);
}));
}
}
......@@ -179,15 +179,15 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
num = (int) SPUtils.get(Constants.HX_NUM, 0);
if (mBadgeView == null) {
mBadgeView = new BadgeView(this);
mBadgeView.setTargetView(mBind.tabThird);
mBadgeView.setBadgeGravity(Gravity.CENTER);
mBadgeView.setBadgeMargin(12, 0, 0, 12);
}
if (num < 100) {
mBadgeView.setText(num + "", TextView.BufferType.NORMAL);
} else {
mBadgeView.setText("99+");
}
mBadgeView.setTargetView(mBind.tabThird);
mBadgeView.setBadgeGravity(Gravity.CENTER);
mBadgeView.setBadgeMargin(12, 0, 0, 12);
thirdFragment.getNum(num);
}
......
......@@ -4,6 +4,7 @@ import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
......@@ -17,8 +18,15 @@ import com.dayu.bigfish.presenter.manager.ManagerPresenter;
import com.dayu.common.Constants;
import com.dayu.managercenter.ui.fragment.ManagerFragment;
import com.dayu.message.ui.fragment.HomeMessageFragment;
import com.dayu.provider.event.RefreshHxNum;
import com.dayu.provider.router.RouterPath;
import com.dayu.utils.SPUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.BadgeView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
/**
* Created by luofan
......@@ -32,6 +40,7 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
private ManagerFragment mManagerFragment;
private HomeMessageFragment mMessageFragment;
private int mShowPosition;
private BadgeView mBadgeView;
@Override
public int getLayoutId() {
......@@ -50,9 +59,9 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
}
mBind.msg.setOnClickListener(v -> {
showHideFragment(1, 0);
mBind.msg.setImageResource(R.mipmap.icon_news);
});
doAction(getIntent());
EventBus.getDefault().register(this);
}
private void addFragment() {
......@@ -80,6 +89,9 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
mShowPosition = showPosition;
if (showPosition == 1) {
mBind.msg.setVisibility(View.GONE);
if (mBadgeView != null) {
mBadgeView.setVisibility(View.GONE);
}
} else {
mBind.msg.setVisibility(View.VISIBLE);
}
......@@ -95,7 +107,6 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
secondIndex = 1;//大鱼通知
}
showHideFragment(1, 0);
mBind.msg.setImageResource(R.mipmap.icon_news);
if (mMessageFragment != null) {
mMessageFragment.setIndex(secondIndex);
mMessageFragment.swtichFragment(secondIndex);
......@@ -127,7 +138,32 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
}
@Override
public void isShowRedIcon(boolean flag) {
mBind.msg.setImageResource(R.mipmap.icon_red_news);
public void isShowRedIcon(int num) {
num = (int) SPUtils.get(Constants.HX_NUM, 0);
if (mBadgeView == null) {
mBadgeView = new BadgeView(this);
mBadgeView.setTargetView(mBind.msg);
mBadgeView.setBadgeGravity(Gravity.CENTER);
mBadgeView.setBadgeMargin(12, 0, 0, 12);
}
if (num == 0) {
mBadgeView.setVisibility(View.GONE);
} else if (num < 100) {
mBadgeView.setBadgeCount(num);
mBadgeView.setVisibility(View.VISIBLE);
} else {
mBadgeView.setBadgeCount(99);
mBadgeView.setVisibility(View.VISIBLE);
}
if (mShowPosition == 1) {
mBadgeView.setVisibility(View.GONE);
}
mMessageFragment.getNum(num);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void setHxNum(RefreshHxNum event) {
mPresenter.getHxNum(UserManager.getInstance().getUser().getHxAccount());
}
}
......@@ -18,6 +18,7 @@ import org.json.JSONObject;
import java.util.Timer;
import java.util.TimerTask;
import io.reactivex.disposables.Disposable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
......@@ -55,7 +56,7 @@ public class LocationService extends Service {
e.printStackTrace();
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ApiFactory.commiteLocation(requestBody).subscribe(aBoolean -> {
Disposable disposable = ApiFactory.commiteLocation(requestBody).subscribe(aBoolean -> {
}, throwable -> {
});
}
......
......@@ -228,8 +228,9 @@ public class HxManager {
//注册环信消息监听
EMClient.getInstance().chatManager().addMessageListener(msgListener);
//注册一个监听连接状态的listener
// TODO hx
// EMClient.getInstance().addConnectionListener(new MyConnectionListener());
if ("release".equals(Constants.ENVIROMENT)) {
EMClient.getInstance().addConnectionListener(new MyConnectionListener());
}
}
//实现ConnectionListener接口
......
......@@ -105,6 +105,7 @@ public abstract class DataBindingFragment<B extends ViewDataBinding> extends Fra
}
protected void onVisible() {
doInit2();
doInit();
}
......@@ -119,6 +120,29 @@ public abstract class DataBindingFragment<B extends ViewDataBinding> extends Fra
lazyLoad();
}
/**
* 除了第一次加载后,当页面可见回调.
*/
protected void doInit2() {
if (!isPrepared || !isVisible || isFirstLoad) {
return;
}
visibleLoad();
}
/**
* 是否对用户可见.
*
* @return
*/
protected boolean isVb() {
return isPrepared && isVisible;
}
protected void visibleLoad() {
}
protected void lazyLoad() {
}
......
......@@ -59,7 +59,6 @@ public abstract class BasePresenter<V> {
@Override
public void onError(Throwable e) {
Log.d("Photoerror******", e.toString());
ProgressUtil.stopLoad();
processException(e);
}
......
......@@ -12,16 +12,16 @@ public class Constants {
/**
* 测试环境配置.
*/
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String ENVIROMENT = "debug";
public static final String BASE_URL = "http://47.94.101.239:3112";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final boolean IS_DEBUG = true;
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String ENVIROMENT = "debug";
// public static final String BASE_URL = "http://47.94.101.239:3112";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
// public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
// public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
// public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final boolean IS_DEBUG = true;
/**
* uat环境配置.
......@@ -40,16 +40,16 @@ public class Constants {
/**
* 正式环境.
*/
// public static final String ENVIROMENT = "release";
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String BASE_URL = "https://mobile.kf.ai";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
// public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
// public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
// public static final boolean IS_DEBUG = false;
public static final String ENVIROMENT = "release";
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String BASE_URL = "https://mobile.kf.ai";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public static final boolean IS_DEBUG = false;
/**
* 演示环境
......
......@@ -230,6 +230,7 @@
<string name="cancle_order">已取消</string>
<string name="appointment_already">已预约</string>
<string name="not_appointment_already">未预约</string>
<string name="in_server">服务中</string>
<string name="order_doing">进行中</string>
<string name="finish_order">已完成</string>
<string name="order_close">订单关闭</string>
......@@ -464,6 +465,11 @@
<string name="edite">编辑</string>
<string name="modify_order">修改工单</string>
<string name="modify_order_success">工单修改成功!</string>
<string name="all_order">全部工单</string>
<string name="waite_manager_order">待派单</string>
<string name="servering">服务中</string>
<string name="order_success">已完工</string>
<string name="order_closed">已关闭</string>
<!--消息-->
......
......@@ -5,13 +5,14 @@ buildscript {
ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 16
ext.target_sdk_version = 23
ext.version_code = 20
ext.verson_name = "1.9.8"
ext.version_code = 21
ext.verson_name = "1.9.9"
ext.gradle_version = '3.1.4'
ext.isReleaseMinify = true
ext.isDebugMinify = false
ext.arouter_api_version = '1.3.1'
ext.arouter_compiler_version = '1.1.4'
// ext.kotlin_version = '1.2.50'
repositories {
jcenter()
......@@ -23,6 +24,7 @@ buildscript {
dependencies {
classpath "com.android.tools.build:gradle:$gradle_version"
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
// classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
......
......@@ -144,4 +144,8 @@ public class ManagerApiFactory {
public static Observable<Boolean> cancelOrder(int id, String reason, String name) {
return Api.getService(ManagerService.class).cancelOrder(id, reason, name).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> searchOrder(String key, int siteId,int userAccount, int status, int page, int pageSize) {
return Api.getService(ManagerService.class).searchOrder(key, siteId,userAccount, status, page, pageSize).compose(Api.applySchedulers());
}
}
......@@ -310,4 +310,21 @@ public interface ManagerService {
*/
@POST(ManagerConstant.CANCEL_ORDER)
Observable<BaseResponse<Boolean>> cancelOrder(@Query("id") int id, @Query("reason") String reason, @Query("updated") String name);
/**
* 搜索.
*
* @param key
* @param status
* @param page
* @param pageSize
* @return
*/
@GET(ManagerConstant.SEARCH_ORDER)
Observable<BaseResponse<BasePageBean<Order>>> searchOrder(@Query("key") String key,
@Query("siteId") int siteId,
@Query("engineerId") int engineerId,
@Query("status") int status,
@Query("page") int page,
@Query("pageSize") int pageSize);
}
......@@ -13,6 +13,11 @@ public class ManagerConstant {
public final static String[] tabs = {UIUtils.getString(R.string.grab_order), UIUtils.getString(R.string.send_order)
, UIUtils.getString(R.string.subcribe_order), UIUtils.getString(R.string.change_order)};
public final static String[] allTab = {UIUtils.getString(R.string.all_order), UIUtils.getString(R.string.waite_manager_order)
, UIUtils.getString(R.string.not_appointment_already), UIUtils.getString(R.string.appointment_already),
UIUtils.getString(R.string.servering), UIUtils.getString(R.string.order_success)
, UIUtils.getString(R.string.order_cancle), UIUtils.getString(R.string.order_closed)};
public final static String[] GRAB_TAB = {UIUtils.getString(R.string.can_grab_order), UIUtils.getString(R.string.bargain_order)};
public final static int SEND_ORDER = 0;
......@@ -26,6 +31,18 @@ public class ManagerConstant {
public final static int AGIN_ORDER = 6;
public final static int CREATE_ORDER = 7;
public final static int ALL = 0;
public final static int WAITE_MANAGER = 1;
public final static int WAITE_SUBCRIBE = 2;
public final static int AREADY_SUBCRIBE = 3;
public final static int SERVERING = 4;
public final static int FINISH = 5;
public final static int CANLE = 6;
public final static int CLOSE = 7;
public final static String KEY = "key";
/**
* 获取服务站列表.
*/
......@@ -141,4 +158,10 @@ public class ManagerConstant {
* 取消工单.
*/
public static final String CANCEL_ORDER = "api-order" + "/orders/cancel";
/**
* 模糊搜索
*/
public static final String SEARCH_ORDER = "/api-order/" + "orders/provider";
}
package com.dayu.managercenter.presenter.allorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.Order;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface AllOrderContract {
interface View extends BaseView {
String getKey();
void setKey(String key);
void showEngineerDialog(List<String> list, OnOptionsSelectListener onOptionsSelectListener);
}
abstract class Presenter extends BaseListPresenter<View> {
/**
* 获取工单.
*/
public abstract void getOrders();
/**
* 指派工程师.
*/
public abstract void designate(int accountId,int id);
/**
* 获取工程师列表.
*/
public abstract void getEngineers(Order order);
/**
* 再来一单.
*/
public abstract void createAgain(int id);
/**
* 修改工单.
*/
public abstract void modifyOrder(int id);
}
}
package com.dayu.managercenter.presenter.allorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.event.UserInfo;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.managercenter.ui.activity.CreateOrderActivity;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2017/11/8.
*/
public class AllOrderPresenter extends AllOrderContract.Presenter {
public ObservableField<Object> datas = new ObservableField<>();
private Integer mSiteId;
private int mUserId;
private int mPage;
private int mStatus;
private String mUserName;
private int mId;
private Order mOrder;
@Override
public void onAttached() {
UserInfo user = UserManager.getInstance().getUser();
ServiceStation station = StationManager.getInstance().getStation();
mSiteId = user.getSiteId();
mUserId = Integer.parseInt(user.getAccountId());
mUserName = user.getAccountName();
mStatus = mView.getBundle().getInt(Constants.STATE, 0);
mId = station.getId();
}
@Override
public void getOrders() {
mView.showDialog();
ManagerApiFactory.searchOrder(mView.getKey(), mSiteId, mUserId, mStatus, mPage, Constants.PAGESIZE)
.subscribe(baseObserver(orderBasePageBean -> {
datas.set(orderBasePageBean);
mPage++;
}, throwable -> datas.set(Constants.FAILED)));
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void designate(int accountId, int id) {
ManagerApiFactory.designate(id, accountId, mUserName).subscribe(baseObserver(
aBoolean -> {
mView.showToast(R.string.designate_success);
refresh();
}));
}
@Override
public void getEngineers(Order order) {
mOrder = order;
ManagerApiFactory.getEngineers(mId).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, order.getId())));
}
@Override
public void modifyOrder(int id) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.STATE, ManagerConstant.MODIFY_ORDER);
bundle.putInt(Constants.ORDER_ID, id);
mView.startActivity(CreateOrderActivity.class, bundle);
}
@Override
public void createAgain(int id) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.AGIN_ORDER);
mView.startActivity(CreateOrderActivity.class, bundle);
}
private void showEngineerDialog(List<Engineer> engineers, int id) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
if (mOrder.getStatus() == ManagerConstant.WAITE_MANAGER) {
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> designate(engineers.get(options1).getAccountId(), id));
} else {
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, id);
bundle.putInt(Constants.TYPE, ManagerConstant.CHANGE_ORDER_REASON);
mView.startActivity(ChangeReasonActivity.class, bundle);
});
}
}
@Override
public void refresh() {
mPage = 1;
getOrders();
}
@Override
public void loadMore() {
getOrders();
}
}
package com.dayu.managercenter.presenter.base;
import android.os.Bundle;
import com.dayu.common.BaseView;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.event.UserInfo;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.ui.activity.CreateOrderActivity;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import java.util.List;
/**
* Created by luofan
* on 2018/12/20.
*/
public abstract class BaseManagerPresenter<V extends BaseView> extends IBaseManagerPresenter<V> {
private int mId;
private String mUserName;
@Override
public void onAttached() {
ServiceStation station = StationManager.getInstance().getStation();
UserInfo user = UserManager.getInstance().getUser();
mUserName = user.getAccountName();
mId = station.getId();
}
@Override
public void designate(int accountId, int id) {
ManagerApiFactory.designate(id, accountId, mUserName).subscribe(baseObserver(
aBoolean -> {
mView.showToast(R.string.designate_success);
refresh();
}));
}
@Override
public void getEngineers(int id) {
ManagerApiFactory.getEngineers(mId).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
@Override
public void modifyOrder(int id) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.STATE, ManagerConstant.MODIFY_ORDER);
bundle.putInt(Constants.ORDER_ID, id);
mView.startActivity(CreateOrderActivity.class, bundle);
}
@Override
public void createAgain(int id) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.AGIN_ORDER);
mView.startActivity(CreateOrderActivity.class, bundle);
}
private void showEngineerDialog(List<Engineer> engineers, int id) {
// List<String> list = new ArrayList<>();
// for (Engineer info : engineers) {
// list.add(info.getRealName());
// }
// mView.showEngineerDialog(list, (options1, options2, options3, v)
// -> designate(engineers.get(options1).getAccountId(), id));
}
}
package com.dayu.managercenter.presenter.base;
import com.dayu.base.ui.presenter.BaseListPresenter;
/**
* Created by luofan
* on 2018/12/20.
*/
public abstract class IBaseManagerPresenter<V> extends BaseListPresenter<V> {
/**
* 指派工程师.
*/
public abstract void designate(int accountId, int id);
/**
* 获取工程师列表.
*/
public abstract void getEngineers(int id);
/**
* 再来一单.
*/
public abstract void createAgain(int id);
/**
* 修改工单.
*/
public abstract void modifyOrder(int id);
}
package com.dayu.managercenter.presenter.changereason;
import android.databinding.ObservableField;
import android.text.TextUtils;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
......@@ -31,16 +30,13 @@ public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID);
mId = mView.getBundle().getInt(Constants.ID);
mState = mView.getBundle().getInt(Constants.STATE);
mReason.set("");
}
@Override
public void changeEngineer() {
if (TextUtils.isEmpty(mReason.get())) {
ToastUtils.showShortToast("请输入原因");
return;
}
if (!TextUtils.isEmpty(mReason.get()) && UtilsUserAccountMatcher.containsEmoji(mReason.get())) {
if (mReason.get() != null && UtilsUserAccountMatcher.containsEmoji(mReason.get())) {
mView.showToast(R.string.no_emoij);
return;
}
......@@ -60,6 +56,10 @@ public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
@Override
public void cancleOrder(int type) {
if (mReason.get() != null && UtilsUserAccountMatcher.containsEmoji(mReason.get())) {
mView.showToast(R.string.no_emoij);
return;
}
mView.showDialog();
ManagerApiFactory.cancelOrder(mId, mReason.get(), UserManager.getInstance().getUserName())
.subscribe(baseObserver(aBoolean -> {
......
......@@ -79,7 +79,7 @@ public class CreateOrderPresenter extends CreateOrderContract.Presenter {
private UserInfo mUser;
private ServiceStation mStation;
private int mState;
private int mId;
private int mId = -1;
private OrderDetail mDetail;
@Override
......@@ -87,8 +87,10 @@ public class CreateOrderPresenter extends CreateOrderContract.Presenter {
mRole = UserManager.getInstance().getRole();
mUser = UserManager.getInstance().getUser();
mSiteId = UserManager.getInstance().getUser().getSiteId();
mState = mView.getBundle().getInt(Constants.STATE);
mId = mView.getBundle().getInt(Constants.ORDER_ID, -1);
if (mView.getBundle() != null) {
mState = mView.getBundle().getInt(Constants.STATE);
mId = mView.getBundle().getInt(Constants.ORDER_ID, -1);
}
if (mId != -1) {
getOrderInfo(mId);
}
......@@ -170,22 +172,19 @@ public class CreateOrderPresenter extends CreateOrderContract.Presenter {
private void queryProduct(OrderDetail detail, String categorId) {
mView.showDialog();
ManagerApiFactory.queryParentProduct(mSiteId, categorId)
.subscribe(baseObserver(new Consumer<List<Product>>() {
@Override
public void accept(List<Product> products) throws Exception {
mView.setInfo(detail, products);
mDetail = detail;
mSpuServerId = detail.getSpuId();
serverName.set(detail.getSpuName());
serverType.set(detail.getProviderName());
sProduct.set(detail.getCategoryName());
mCategoryId = detail.getCategoryId();
mServerTypeId = detail.getProviderTypeId();
if (!TextUtils.isEmpty(detail.getEngineerName())){
mEngineer = new Engineer();
mEngineer.setRealName(detail.getEngineerName());
mEngineer.setAccountId(detail.getEngineerId());
}
.subscribe(baseObserver(products -> {
mView.setInfo(detail, products);
mDetail = detail;
mSpuServerId = detail.getSpuId();
serverName.set(detail.getSpuName());
serverType.set(detail.getProviderName());
sProduct.set(detail.getCategoryName());
mCategoryId = detail.getCategoryId();
mServerTypeId = detail.getProviderTypeId();
if (!TextUtils.isEmpty(detail.getEngineerName())) {
mEngineer = new Engineer();
mEngineer.setRealName(detail.getEngineerName());
mEngineer.setAccountId(detail.getEngineerId());
}
}));
}
......@@ -318,13 +317,13 @@ public class CreateOrderPresenter extends CreateOrderContract.Presenter {
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.CHANGE_ORDER));
}
});
getDisposable().add(disposable);
mView.dumpBack();
} else {
mView.dumpBack();
Bundle bundle = new Bundle();
bundle.putInt(Constants.TYPE, mType);
bundle.putInt(Constants.STATE, mState);
mView.startActivity(CreateOrderActivity.class);
mView.startActivity(CreateOrderActivity.class,bundle);
}
}));
}
......@@ -435,7 +434,7 @@ public class CreateOrderPresenter extends CreateOrderContract.Presenter {
return null;
}
if (mEngineer != null) {
params.put("engineerName", engineerName.get());
params.put("engineerName", mEngineer.getRealName());
params.put("engineerId", mEngineer.getAccountId());
}
params.put("categoryName", sProduct.get());
......
package com.dayu.managercenter.ui.activity;
import android.content.Context;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.base.ui.adapter.FragmentBaseAdapter;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.databinding.ActivityAllOrderBinding;
import com.dayu.managercenter.ui.fragment.AllOrderFragment;
import com.dayu.utils.TabLayoutUtils;
import com.dayu.utils.UIUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Function;
/**
* 全部工单页面.
* Created by luofan
* on 2018/12/19.
*/
public class AllOrderActivity extends DataBindingActivity<ActivityAllOrderBinding> {
private List<Fragment> mFragments;
private boolean needRefresh;//点击取消是否要刷新.
@Override
public int getLayoutId() {
return R.layout.activity_all_order;
}
@Override
public void initView() {
initFragment();
mBind.ivSaecher.setOnClickListener(v -> {
mBind.etSeacher.requestFocus();
mBind.rlSeacher.setVisibility(View.VISIBLE);
InputMethodManager inputManager = (InputMethodManager) mBind.etSeacher.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(mBind.etSeacher, 0);
});
mBind.tvCancel.setOnClickListener(v -> {
UIUtils.hideSoftInputFromWindow(mActivity);
mBind.rlSeacher.setVisibility(View.GONE);
mBind.etSeacher.setText("");
if (needRefresh) {
setKey();
}
needRefresh = false;
});
mBind.etSeacher.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
setKey();
UIUtils.hideSoftInputFromWindow(mActivity);
needRefresh = true;
mBind.etSeacher.setCursorVisible(false);
return true;
}
return false;
});
mBind.etSeacher.setOnClickListener(v -> mBind.etSeacher.setCursorVisible(true));
}
private void setKey() {
for (Fragment fragment : mFragments) {
((AllOrderFragment) fragment).setKey(mBind.etSeacher.getText().toString().trim());
}
}
private void initFragment() {
List<Integer> status = new ArrayList<>();
status.add(ManagerConstant.ALL);
status.add(ManagerConstant.WAITE_MANAGER);
status.add(ManagerConstant.WAITE_SUBCRIBE);
status.add(ManagerConstant.AREADY_SUBCRIBE);
status.add(ManagerConstant.SERVERING);
status.add(ManagerConstant.FINISH);
status.add(ManagerConstant.CANLE);
status.add(ManagerConstant.CLOSE);
Disposable disposable = Observable.fromIterable(status)
.map((Function<Integer, Fragment>) AllOrderFragment::newInstance).toList()
.map(allOrderFragments -> {
mFragments = allOrderFragments;
return FragmentBaseAdapter.newInstance(getSupportFragmentManager(), allOrderFragments, Arrays.asList(ManagerConstant.allTab));
}).subscribe(fragmentBaseAdapter -> {
mBind.viewpager.setAdapter(fragmentBaseAdapter);
mBind.tab.setupWithViewPager(mBind.viewpager);
mBind.tab.setTabMode(TabLayout.MODE_SCROLLABLE);
mBind.viewpager.setOffscreenPageLimit(mFragments.size());
});
TabLayoutUtils.setIndicator(mBind.tab, 3, 3, R.color.cl_receiving_order_item_data, mActivity);
}
}
......@@ -94,7 +94,9 @@ public class CreateOrderActivity extends BaseActivity<CreateOrderPresenter, Acti
@Override
public void initView() {
mState = getBundle().getInt(Constants.STATE);
if (getBundle() != null) {
mState = getBundle().getInt(Constants.STATE);
}
mBind.toolbar.setNavigationOnClickListener(v -> dumpBack());
mBind.tvTitle.setText(getString(R.string.create_order));
mBind.otherCustomer.setOnCheckedChangeListener((buttonView, isChecked) -> {
......@@ -225,7 +227,7 @@ public class CreateOrderActivity extends BaseActivity<CreateOrderPresenter, Acti
ToastUtils.showShortToast(R.string.please_input_company_name);
return false;
}
if ( UtilsUserAccountMatcher.containsEmoji(mBind.companyName.getText().toString())) {
if (UtilsUserAccountMatcher.containsEmoji(mBind.companyName.getText().toString())) {
showToast(R.string.no_emoij);
return false;
}
......@@ -234,7 +236,7 @@ public class CreateOrderActivity extends BaseActivity<CreateOrderPresenter, Acti
ToastUtils.showShortToast(R.string.please_input_name);
return false;
}
if ( UtilsUserAccountMatcher.containsEmoji(mBind.customerName.getText().toString())) {
if (UtilsUserAccountMatcher.containsEmoji(mBind.customerName.getText().toString())) {
showToast(R.string.no_emoij);
return false;
}
......@@ -250,7 +252,7 @@ public class CreateOrderActivity extends BaseActivity<CreateOrderPresenter, Acti
ToastUtils.showShortToast(R.string.please_input_detail_address_first);
return false;
}
if ( UtilsUserAccountMatcher.containsEmoji(mBind.customerDetailAddress.getText().toString())) {
if (UtilsUserAccountMatcher.containsEmoji(mBind.customerDetailAddress.getText().toString())) {
showToast(R.string.no_emoij);
return false;
}
......
package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.databinding.FragmentRecycleBinding;
import com.dayu.managercenter.presenter.allorder.AllOrderContract;
import com.dayu.managercenter.presenter.allorder.AllOrderPresenter;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.managercenter.ui.adapter.AllOrderAdapter;
import com.dayu.provider.event.SwtichAllOrderEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
/**
* Created by luofan
* on 2018/8/27.
*/
public class AllOrderFragment extends BaseFragment<AllOrderPresenter, FragmentRecycleBinding> implements AllOrderContract.View {
private String mKey = "";
private boolean isRefresh = false;
private int mState;
public static AllOrderFragment newInstance(int status) {
Bundle args = new Bundle();
AllOrderFragment fragment = new AllOrderFragment();
args.putInt(Constants.STATE, status);
fragment.setArguments(args);
return fragment;
}
@Override
public int getLayoutId() {
return R.layout.fragment_recycle;
}
@Override
protected void lazyLoad() {
mPresenter.refresh();
}
@Override
public void initView() {
EventBus.getDefault().register(this);
mState = getArguments().getInt(Constants.STATE);
AllOrderAdapter adapter = new AllOrderAdapter(true, mState);
adapter.setViewType(R.layout.item_manager_order);
mBind.recyclerView.setAdapter(adapter);
mBind.recyclerView.setOnItemClickListener((item, bind) -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (((Order) item).getId()));
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
startActivity(SendOrderDetailActivity.class, bundle);
});
mBind.recyclerView.mCoreAdapter.setOnChildClickListener((view, adapter1, position) -> {
Order order = ((Order) mBind.recyclerView.getDatas().get(position));
int id = order.getId();
if (view.getId() == R.id.item_updata_time) {
showDialog();
mPresenter.getEngineers(order);
} else if (view.getId() == R.id.item_text_phone) {
mPresenter.modifyOrder(id);
} else if (view.getId() == R.id.tv_item_process) {
mPresenter.createAgain(id);
}
});
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public String getKey() {
return mKey;
}
@Override
public void setKey(String key) {
mKey = key;
if (isVb()) {
mPresenter.refresh();
} else {
isRefresh = true;
}
}
@Override
public void showEngineerDialog(List<String> list, OnOptionsSelectListener onOptionsSelectListener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, onOptionsSelectListener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
@Override
protected void visibleLoad() {
if (isRefresh) {
showDialog();
mPresenter.refresh();
isRefresh = false;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichAllOrder(SwtichAllOrderEvent event) {
if (event.getState() == mState || mState == ManagerConstant.ALL) {
mPresenter.refresh();
}
}
}
......@@ -22,6 +22,10 @@
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.CreateOrderActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.managercenter.ui.activity.AllOrderActivity"
android:screenOrientation="portrait" />
</application>
......
<?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>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/rl_title"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title"
android:text="@string/all_order" />
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
<ImageView
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_alignParentBottom="true"
android:src="@drawable/line_shape" />
<ImageView
android:id="@+id/iv_saecher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:src="@drawable/seacher" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_seacher"
style="@style/title"
android:visibility="gone">
<EditText
android:id="@+id/et_seacher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/iv"
android:background="@null"
android:hint="@string/find_customer_mobile"
android:imeOptions="actionSearch"
android:inputType="text"
android:singleLine="true"
android:textSize="16sp" />
<ImageView
android:id="@+id/iv"
style="@style/title_image_back"
android:src="@drawable/seacher" />
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:gravity="center"
android:text="@string/cancle"
android:textColor="@color/cl_black"
android:textSize="@dimen/dp_18"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_alignParentBottom="true"
android:src="@drawable/line_shape" />
</RelativeLayout>
</RelativeLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:background="@color/cl_white"
android:textSize="15sp"
app:tabIndicatorColor="@color/cl_receiving_order_item_data"
app:tabMaxWidth="0dp"
app:tabSelectedTextColor="@color/cl_receiving_order_item_data"
app:tabTextAppearance="@style/TabLayoutTextStyle"
app:tabTextColor="@color/cl_tab_line" />
<ImageView style="@style/line" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -11,8 +11,8 @@
<com.dayu.widgets.LRecyclerView
android:id="@+id/recyclerView"
setPresenter="@{presenter}"
android:layout_width="match_parent"
android:layout_height="match_parent"
setPresenter="@{presenter}"
android:background="#f5f5f5" />
</layout>
\ No newline at end of file
......@@ -224,6 +224,7 @@
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="40dp"
android:visibility="visible"
android:orientation="horizontal">
<TextView
......
......@@ -8,6 +8,7 @@ import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.provider.event.RefreshDetailEvent;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsUserAccountMatcher;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
......@@ -42,6 +43,10 @@ public class EditePresenter extends EditeContract.Presenter {
public void commite() {
HashMap<String, Object> params = new HashMap<>();
params.put("id", mOrderId);
if (info.get() != null && UtilsUserAccountMatcher.containsEmoji(info.get())) {
mView.showToast(R.string.no_emoij);
return;
}
if (mState == 0) {
if (!TextUtils.isEmpty(info.get())) {
params.put("comment", info.get());
......
......@@ -82,15 +82,15 @@ public class MultipleProcessPresenter extends MultipleProcessContract.Presenter
if (mView.getSelectPayer()) {
mView.showNoPayerDialog();
} else {
if (mOrderType == 1) {
mView.showSelectPayerDialog((dialog, confirm) -> {
if (confirm) {
commitePhoto();
}
});
} else {
commitePhoto();
}
// if (mOrderType == 1) {
// mView.showSelectPayerDialog((dialog, confirm) -> {
// if (confirm) {
// commitePhoto();
// }
// });
// } else {
commitePhoto();
// }
}
}
......@@ -195,9 +195,9 @@ public class MultipleProcessPresenter extends MultipleProcessContract.Presenter
} else if (2 == (detail.getRepairType())) {
mRepairType = UIUtils.getString(R.string.payer_baowai);
}
if (mOrderType != 1) {
mView.setRepairType();
}
// if (mOrderType != 1) {
mView.setRepairType();
// }
mNeedEsignature = detail.getNeedEsignature();
if (mNeedEsignature != null && mNeedEsignature == 1) {
mView.showSignature();
......
......@@ -66,7 +66,7 @@ public class MultipleProcessActivity extends BaseActivity<MultipleProcessPresent
private TextView mCashPay;
private TextView mWechatPay;
private TextView mNoPay;
private int mPayType =3;
private int mPayType = 3;
private PhotoViewAdapter mAdapter;
private RecyclerView mPhoto;
......@@ -134,14 +134,14 @@ public class MultipleProcessActivity extends BaseActivity<MultipleProcessPresent
}
});
if (mPresenter.getOrderType() == 1) {
initPhotoView();
mRepairType.setOnClickListener(v -> showPayerDialog());
} else {
setRepairType();
mArrow.setVisibility(View.GONE);
mPayerNotice.setVisibility(View.GONE);
}
// if (mPresenter.getOrderType() == 1) {
// initPhotoView();
// mRepairType.setOnClickListener(v -> showPayerDialog());
// } else {
setRepairType();
mArrow.setVisibility(View.GONE);
mPayerNotice.setVisibility(View.GONE);
// }
mSignature.setOnClickListener(v -> startActivityForReult(SignatureActivity.class, 100));
if (isShowSignature) {
mAllSignature.setVisibility(View.VISIBLE);
......
......@@ -27,7 +27,6 @@ public class OrderRecordActivity extends BaseActivity<OrderRecordPresenter, Acti
implements OrderRecordContract.View {
private OrderAdapter mAdapter;
@Override
public int getLayoutId() {
return R.layout.activity_order_record;
......@@ -76,6 +75,10 @@ public class OrderRecordActivity extends BaseActivity<OrderRecordPresenter, Acti
public void showSearch() {
mBind.rlTitle.setVisibility(View.GONE);
mBind.rlSeacher.setVisibility(View.VISIBLE);
mBind.etSeacher.setFocusable(true);
mBind.etSeacher.requestFocus();
InputMethodManager inputManager = (InputMethodManager) mBind.etSeacher.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(mBind.etSeacher, 0);
MobclickAgent.onEvent(mActivity, "search_order");
}
......
......@@ -64,8 +64,12 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment
tabDesc = new String[]{mActivity.getString(R.string.waite_appointemnt), mActivity.getString(R.string.waite_server), mActivity.getString(R.string.order_exception), mActivity.getString(R.string.cancle_order)};
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
mBind.createOrder.setVisibility(View.VISIBLE);
mBind.createOrder.setOnClickListener(v ->
ARouter.getInstance().build(RouterPath.PATH_MANAGER_CREATE_ORDER).navigation());
mBind.createOrder.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.STATE, 7);
ARouter.getInstance().build(RouterPath.PATH_MANAGER_CREATE_ORDER).with(bundle)
.navigation();
});
}
EventBus.getDefault().register(this);
initData();
......
......@@ -47,6 +47,7 @@
android:layout_centerVertical="true"
android:layout_toRightOf="@id/tv_player"
android:text="*"
android:visibility="gone"
android:textColor="#F74848"
android:textSize="@dimen/sp_15" />
......@@ -69,6 +70,7 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:paddingRight="@dimen/dp_15"
android:visibility="gone"
android:src="@drawable/icon_arrow_right" />
</RelativeLayout>
......@@ -82,6 +84,7 @@
android:layout_height="36dp"
android:layout_marginBottom="@dimen/dp_8"
android:layout_marginLeft="@dimen/dp_15"
android:visibility="gone"
android:layout_marginRight="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_8"
android:text="@string/order_select_payer_notice"
......
package com.dayu.provider.event;
/**
* 人脸认证后刷新我的页面的数据.
* on 2017/10/11.
*/
public class SwtichAllOrderEvent {
private int state;
public SwtichAllOrderEvent(int state) {
this.state = state;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
......@@ -82,7 +82,7 @@ public class UserConstant {
/**
* 活体检测.
*/
public final static String FACE_OCR = "/api-user/" + "/accountExt/engineerMegLiveVerify";
public final static String FACE_OCR = "/api-user/" + "accountExt/engineerMegLiveVerify";
/**
* 忘记密码.
......
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