Commit 4f0bc68c by 罗翻

Merge remote-tracking branch 'remotes/origin/dev'

parents eefe228f a91aa694
Showing with 4259 additions and 80 deletions
......@@ -13,6 +13,7 @@
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/baseSDK" />
<option value="$PROJECT_DIR$/locationComponent" />
<option value="$PROJECT_DIR$/managercenter" />
<option value="$PROJECT_DIR$/messageCenter" />
<option value="$PROJECT_DIR$/orderCenter" />
<option value="$PROJECT_DIR$/pickerview" />
......
......@@ -7,6 +7,7 @@
<module fileurl="file://$PROJECT_DIR$/baseSDK/baseSDK.iml" filepath="$PROJECT_DIR$/baseSDK/baseSDK.iml" />
<module fileurl="file://$PROJECT_DIR$/dayu.iml" filepath="$PROJECT_DIR$/dayu.iml" />
<module fileurl="file://$PROJECT_DIR$/locationComponent/locationComponent.iml" filepath="$PROJECT_DIR$/locationComponent/locationComponent.iml" />
<module fileurl="file://$PROJECT_DIR$/managercenter/managercenter.iml" filepath="$PROJECT_DIR$/managercenter/managercenter.iml" />
<module fileurl="file://$PROJECT_DIR$/messageCenter/messageCenter.iml" filepath="$PROJECT_DIR$/messageCenter/messageCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/orderCenter/orderCenter.iml" filepath="$PROJECT_DIR$/orderCenter/orderCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/pickerview/pickerview.iml" filepath="$PROJECT_DIR$/pickerview/pickerview.iml" />
......
......@@ -27,12 +27,12 @@ android {
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
api fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
implementation files('libs/licensemanager-v1.1.jar')
implementation files('libs/livenessdetection-proguard-2.4.5.jar')
api 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
api files('libs/licensemanager-v1.1.jar')
api files('libs/livenessdetection-proguard-2.4.5.jar')
}
......@@ -87,19 +87,22 @@ repositories {
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
api fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
if (isMessageModule.toBoolean()) {
compile project(':messageCenter')
api project(':messageCenter')
}
if (isUserModule.toBoolean()) {
compile project(':userCenter')
api project(':userCenter')
}
if (isOrderModule.toBoolean()) {
compile project(':orderCenter')
api project(':orderCenter')
}
if (isManagerModule.toBoolean()) {
api project(':managercenter')
}
// compile(name: 'orderCenter-debug', ext: 'aar')
// compile(name: 'userCenter-debug', ext: 'aar')
......
......@@ -110,13 +110,13 @@
public void openFileChooser(...);
}
#-------------------------------------------定制化区域----------------------------------------------
#---------------------------------1.实体类---------------------------------
-keep public class * extends com.dayu.base.ui.presenter.BasePresenter
-keep class com.dayu.bigfish.api.protocol.** { *; }
-keep class com.dayu.base.api.protocol.** { *; }
-keep class com.dayu.message.data.protocol.** { *; }
-keep class com.dayu.managercenter.data.** { *; }
-keep class com.dayu.order.api.protocol.** { *; }
-keep class com.dayu.order.sqlbean.** { *; }
-keep class com.dayu.provider.event.** { *; }
......@@ -190,7 +190,8 @@ public static java.lang.String TABLENAME;
#环信
-keep class com.hyphenate.** {*;}
-dontwarn com.hyphenate.**
-keep class com.superrtc.** {*;}
-dontwarn com.hyphenate.**
#高德地图
-keep class com.amap.api.location.**{*;}
......@@ -236,7 +237,10 @@ public static final int *;
-keep class * implements com.alibaba.android.arouter.facade.template.IProvider
-dontwarn com.alibaba.**
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-ignorewarnings
#---------------------------------3.与js互相调用的类------------------------
......
......@@ -10,13 +10,19 @@ import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.widget.Toast;
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.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.managercenter.ui.activity.ManagerActivity;
import com.dayu.managercenter.ui.activity.ServiceStationActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.activity.SmsLoginActivity;
import com.dayu.utils.LogUtils;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.hyphenate.EMCallBack;
......@@ -43,12 +49,14 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
MobclickAgent.openActivityDurationTrack(false);
mActivity = this;
String[] mPerArr = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.CAMERA};
, Manifest.permission.CAMERA};
MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() {
@Override
public void onPermissionGranted() {
doJump();
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> doJump());
}
@Override
......@@ -63,22 +71,44 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
}
private void doJump() {
Intent intent;
if (UserManager.getInstance().hasUserInfo()) {
UserInfo info = UserManager.getInstance().getUser();
UserInfo info = UserManager.getInstance().getUser();
if (info != null) {
loginHx(info.getHxAccount(), info.getHxPwd());
intent = new Intent(InitializeActivity.this, MainActivity.class);
}
if (UserManager.getInstance().hasUserInfo()) {
switch (UserManager.getInstance().getRole()) {
case Constants.MANAGER:
case Constants.MANAGER_NOSITE_ENGINEER:
if (StationManager.getInstance().haveData()) {
Intent intent1 = new Intent(InitializeActivity.this, ManagerActivity.class);
startActivity(intent1);
} else {
ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
}
break;
case Constants.ENGINEER:
Intent intent1 = new Intent(InitializeActivity.this, MainActivity.class);
startActivity(intent1);
break;
case Constants.MANAGER_ENGINEER:
Intent intent2;
if (StationManager.getInstance().haveData()) {
intent2 = new Intent(InitializeActivity.this, MainActivity.class);
startActivity(intent2);
} else {
intent2 = new Intent(InitializeActivity.this, ServiceStationActivity.class);
}
startActivity(intent2);
break;
default:
break;
}
} else {
intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
Intent intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
startActivity(intent);
}
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
aLong -> {
startActivity(intent);
finish();
}
);
finish();
}
public void loginHx(String hxAccount, String hxPwd) {
......
......@@ -35,7 +35,7 @@ public class MainPresenter extends MainContract.Presenter {
public void onAttached() {
mUser = UserManager.getInstance().getUser();
mAccountId = Integer.parseInt(mUser.getAccountId());
mSiteId = Integer.parseInt(mUser.getSiteId());
mSiteId = mUser.getSiteId();
request();
}
......
......@@ -18,6 +18,7 @@ import com.dayu.utils.AppManager;
import com.dayu.utils.AppUtils;
import com.dayu.utils.DataCleanManager;
import com.dayu.utils.SPUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.hyphenate.chat.EMClient;
......@@ -92,6 +93,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void exite() {
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
StationManager.getInstance().clear();
AppManager.getInstance().finishAllActivity();
mView.startActivity(SmsLoginActivity.class);
MobclickAgent.onEvent(MyApplication.getContext(), "login_out");
......
......@@ -33,6 +33,7 @@ import com.dayu.common.Constants;
import com.dayu.event.DownloadBean;
import com.dayu.event.UserInfo;
import com.dayu.location.base.LocationUtils;
import com.dayu.managercenter.ui.fragment.ManagerFragment;
import com.dayu.message.ui.fragment.HomeMessageFragment;
import com.dayu.order.ui.activity.ReceivingActivity;
import com.dayu.order.ui.fragment.HomeOrderFragment;
......@@ -40,7 +41,9 @@ import com.dayu.provider.event.RefreshReceivingNum;
import com.dayu.provider.event.SwtichFragment;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.fragment.HomePersonFragment;
import com.dayu.utils.TimeUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener;
import com.umeng.analytics.MobclickAgent;
......@@ -65,11 +68,12 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private TextView[] mTabs;
private NotificationManager notificationManager;
private NotificationCompat.Builder builder;
private ManagerFragment managerFragment;
private HomeFirstTabFragment firstFragment;
private HomeOrderFragment secondFragment;
private HomeMessageFragment thirdFragment;
private HomePersonFragment fourFragment;
private int mFirstPositon = 1;
private int mFirstPositon = 0;
@Override
public int getLayoutId() {
......@@ -78,11 +82,19 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
public void initView() {
firstFragment = HomeFirstTabFragment.newInstance();
secondFragment = HomeOrderFragment.newInstance();
thirdFragment = HomeMessageFragment.newInstance();
fourFragment = HomePersonFragment.newInstance();
mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
firstFragment = HomeFirstTabFragment.newInstance();
mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
mFirstPositon = 1;
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
managerFragment = ManagerFragment.newInstance();
mFragments = new Fragment[]{managerFragment, secondFragment, thirdFragment, fourFragment};
mFirstPositon=0;
mBind.tabFirst.setText(getString(R.string.send_order));
}
mTabs = new TextView[]{mBind.tabFirst, mBind.tabSecond, mBind.tabThird, mBind.tabFour};
addFragment();
initListener();
......@@ -295,7 +307,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
public void onResume() {
super.onResume();
// BadgeNumberManager.from(mActivity).setBadgeNumber(0);
BadgeNumberManager.from(mActivity).setBadgeNumber(0);
MobclickAgent.onResume(this);
}
......@@ -308,9 +320,10 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
protected void onDestroy() {
super.onDestroy();
LocationUtils.destroy();
EventBus.getDefault().unregister(this);
TimeUtils.onDestory();
super.onDestroy();
}
@Override
......
......@@ -7,6 +7,7 @@ import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
......@@ -21,6 +22,8 @@ import com.dayu.utils.AppManager;
import com.dayu.utils.SPUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
import com.dayu.utils.badgeNumberManger.BadgeNumberUtils;
import com.dayu.widgets.LicenceDialog;
import com.google.gson.Gson;
import com.hyphenate.EMConnectionListener;
......@@ -89,6 +92,7 @@ public class HxManager {
@Override
public void onMessageReceived(List<EMMessage> messages) {
//收到消息
// boolean flag = false; //语音是否播报
for (EMMessage message : messages) {
String messagebody = message.getBody().toString();
String content = messagebody.substring(5, messagebody.length() - 1);
......@@ -121,6 +125,10 @@ public class HxManager {
if (!(boolean) SPUtils.get(Constants.HX_STATE, true)) {
return;
}
if (info.getCategory() == 1 && (info.getFunctionType() == 2)) {
MediaPlayer player = MediaPlayer.create(mContext, R.raw.new_order);
player.start();
}
Intent intent = new Intent(mContext, MainActivity.class);
intent.putExtra(Constants.MESSAGE_INFO, info);
PendingIntent pi = PendingIntent.getActivity(mContext,
......@@ -150,8 +158,8 @@ public class HxManager {
notificationManager.notify(0, builder.build());
}
mCount++;
// BadgeNumberManager.from(mContext).setBadgeNumber(mCount);
// BadgeNumberUtils.setBadgeNumberXiaoMi(notification, messages.size());
BadgeNumberManager.from(mContext).setBadgeNumber(mCount);
BadgeNumberUtils.setBadgeNumberXiaoMi(notification, mCount);
}
}
}
......@@ -200,7 +208,7 @@ public class HxManager {
Observable.timer(1, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(l -> {
ToastUtils.showShortToast("您的账号在另一台设备中登录");
ToastUtils.showShortToast(R.string.account_notice);
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
AppManager.getInstance().finishAllActivity();
......
......@@ -3,11 +3,9 @@
<data>
<import type="com.dayu.bigfish.presenter.main.MainPresenter"/>
<variable
name="presenter"
type="MainPresenter"/>
type="com.dayu.bigfish.presenter.main.MainPresenter"/>
</data>
<LinearLayout
......
......@@ -4,11 +4,9 @@
<data>
<import type="com.dayu.bigfish.presenter.setting.SettingPresenter" />
<variable
name="presenter"
type="SettingPresenter" />
type="com.dayu.bigfish.presenter.setting.SettingPresenter" />
</data>
<LinearLayout
......
......@@ -40,35 +40,35 @@ android {
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:27.1.1'
testImplementation 'junit:junit:4.12'
api 'com.android.support:design:27.1.1'
//mutidex
compile 'com.android.support:multidex:1.0.3'
api 'com.android.support:multidex:1.0.3'
//eventBus
compile 'org.greenrobot:eventbus:3.1.1'
api 'org.greenrobot:eventbus:3.1.1'
//retrofit
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
api 'com.squareup.retrofit2:retrofit:2.4.0'
api 'com.squareup.retrofit2:converter-gson:2.4.0'
api 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
//图片选择
compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
api 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
//ARouter
compile "com.alibaba:arouter-api:$arouter_api_version"
api "com.alibaba:arouter-api:$arouter_api_version"
//greendao数据库
compile 'org.greenrobot:greendao:3.2.0'
api 'org.greenrobot:greendao:3.2.0'
//选择器
// compile 'com.contrarywind:Android-PickerView:3.2.7'
//jsbridge
compile 'com.github.lzyzsd:jsbridge:1.0.4'
api 'com.github.lzyzsd:jsbridge:1.0.4'
//zxing
compile 'com.google.zxing:core:3.3.2'
compile 'com.journeyapps:zxing-android-embedded:3.5.0'
api 'com.google.zxing:core:3.3.2'
api 'com.journeyapps:zxing-android-embedded:3.5.0'
compile project(':locationComponent')
compile project(':pickerview')
api project(':locationComponent')
api project(':pickerview')
}
......@@ -3,6 +3,7 @@ package com.dayu.base.api;
import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants;
import com.dayu.utils.UIUtils;
/**
* Created by luofan on 2017/11/15.
......@@ -82,6 +83,9 @@ public class ServerException extends Exception {
case "USER0065":
message = BaseApplication.getContext().getString(R.string.old_pwd_error);
break;
case "USER0084":
message = BaseApplication.getContext().getString(R.string.engineer_or_manager_not_exite);
break;
case "DETECT_ERROR00003":
message = BaseApplication.getContext().getString(R.string.error_detect_face);
break;
......@@ -98,7 +102,10 @@ public class ServerException extends Exception {
case "SETTLEMENT0001":
message = BaseApplication.getContext().getString(R.string.perameter_is_null);
break;
/** 店长*/
case "KAORDER0014":
message = UIUtils.getString(R.string.bargain_order);
break;
/**全局错误*/
case "GLOBAL0001":
message = BaseApplication.getContext().getString(R.string.global0001); //参数错误
......
......@@ -102,6 +102,23 @@ public class Constants {
/***********************其他配置**********************************/
public final static int PAGESIZE = 20;
public final static int NOT_LOGIN = -1;
/**
* 店长.
*/
public final static int MANAGER = 1;
/**
* 工程师.
*/
public final static int ENGINEER = 2;
/**
* 店长和工程师.
*/
public final static int MANAGER_ENGINEER = 3;
/**
* 店长和没有加入站点的工程师.
*/
public final static int MANAGER_NOSITE_ENGINEER = 4;
public final static String BUNDLE = "bundle";
public final static String ID = "id";
//订单详情
......@@ -157,6 +174,8 @@ public class Constants {
public static final String HX_STATE = "hx_state";
public static final String STATE = "state";
public static final String CETIFICATION_STATE = "cetificaiton_state";//1:接单跳转0:待预约,登录页,个人中心跳转
......
package com.dayu.event;
/**
* Created by luofan
* on 2018/8/27.
*/
public class ServiceStation {
private int id;
private int providerId;
private String name;
private int provinceId;
private String provinceName;
private int cityId;
private String cityName;
private int districtId;
private String districtName;
private String address;
private String businessLicenceUrl;
private int status;
private Object createTime;
private String telephone;
private int starScore;
private Integer accountId;
private String providerRealName;
private String providerName;
private Object providerTypes;
private Object siteQualifications;
private int appointmentStatus;
private Object tag;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getProviderId() {
return providerId;
}
public void setProviderId(int providerId) {
this.providerId = providerId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getProvinceId() {
return provinceId;
}
public void setProvinceId(int provinceId) {
this.provinceId = provinceId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public int getCityId() {
return cityId;
}
public void setCityId(int cityId) {
this.cityId = cityId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public int getDistrictId() {
return districtId;
}
public void setDistrictId(int districtId) {
this.districtId = districtId;
}
public String getDistrictName() {
return districtName;
}
public void setDistrictName(String districtName) {
this.districtName = districtName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBusinessLicenceUrl() {
return businessLicenceUrl;
}
public void setBusinessLicenceUrl(String businessLicenceUrl) {
this.businessLicenceUrl = businessLicenceUrl;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Object getCreateTime() {
return createTime;
}
public void setCreateTime(Object createTime) {
this.createTime = createTime;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public int getStarScore() {
return starScore;
}
public void setStarScore(int starScore) {
this.starScore = starScore;
}
public Integer getAccountId() {
return accountId;
}
public void setAccountId(Integer accountId) {
this.accountId = accountId;
}
public String getProviderRealName() {
return providerRealName;
}
public void setProviderRealName(String providerRealName) {
this.providerRealName = providerRealName;
}
public String getProviderName() {
return providerName;
}
public void setProviderName(String providerName) {
this.providerName = providerName;
}
public Object getProviderTypes() {
return providerTypes;
}
public void setProviderTypes(Object providerTypes) {
this.providerTypes = providerTypes;
}
public Object getSiteQualifications() {
return siteQualifications;
}
public void setSiteQualifications(Object siteQualifications) {
this.siteQualifications = siteQualifications;
}
public int getAppointmentStatus() {
return appointmentStatus;
}
public void setAppointmentStatus(int appointmentStatus) {
this.appointmentStatus = appointmentStatus;
}
public Object getTag() {
return tag;
}
public void setTag(Object tag) {
this.tag = tag;
}
}
package com.dayu.event;
import java.util.List;
/**
* 储存用户信息的类
*
* @author wangceyu
* on 2017/8/28.
* on 2017/8/28.
*/
public class UserInfo {
......@@ -16,7 +18,7 @@ public class UserInfo {
/**
* 用户所属服务商id
*/
private String siteId;
private Integer siteId;
/**
* 成功时返回的token
*/
......@@ -31,6 +33,15 @@ public class UserInfo {
private String accountName;
private int status;
private int detectStatus;
private List<Integer> roles;
public List<Integer> getRoles() {
return roles;
}
public void setRoles(List<Integer> roles) {
this.roles = roles;
}
public int getDetectStatus() {
return detectStatus;
......@@ -64,11 +75,11 @@ public class UserInfo {
this.accountId = accountId;
}
public String getSiteId() {
public Integer getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
public void setSiteId(Integer siteId) {
this.siteId = siteId;
}
......
......@@ -6,6 +6,7 @@ import android.databinding.Observable;
import android.graphics.Typeface;
import android.text.TextUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
......@@ -188,4 +189,9 @@ public class BindingUtils {
e.printStackTrace();
}
}
@BindingAdapter({"drawStar"})
public static void drawStar(LinearLayout layout, String lev) {
UIUtils.drawStars(layout, lev, "5");
}
}
package com.dayu.utils;
import com.dayu.event.ServiceStation;
import com.google.gson.Gson;
/**
* Created by luofan
* on 2018/9/3.
*/
public class StationManager {
private static class StationManagerHolder {
private static StationManager instance = new StationManager();
}
private StationManager() {
}
public static StationManager getInstance() {
return StationManager.StationManagerHolder.instance;
}
public void svaeStation(ServiceStation station) {
if (station != null) {
SPUtils.put("SERVICE_STATION", new Gson().toJson(station));
}
}
public ServiceStation getStation() {
return new Gson().fromJson((String) SPUtils.get("big_fish", "SERVICE_STATION", ""), ServiceStation.class);
}
public boolean haveData() {
ServiceStation station = getStation();
return !(station == null || station.getId() == 0);
}
public void clear(){
SPUtils.remove("SERVICE_STATION");
}
}
package com.dayu.utils;
import android.os.CountDownTimer;
/**
* Created by luofan
* on 2018/8/30.
*/
public class TimeUtils {
private static CountDownTimer mTimer;
public static CountDownTimer startTimer(long millisInFuture, long countDownInterval, OnCountDownCallBack callBack) {
mTimer = getTimer(millisInFuture, countDownInterval, callBack);
mTimer.start();
return mTimer;
}
private static CountDownTimer getTimer(long millisInFuture, long interval, OnCountDownCallBack callBack) {
return new CountDownTimer(millisInFuture, interval) {
@Override
public void onTick(long millisUntilFinished) {
int day = 0;
int hour = 0;
int minute = (int) (millisUntilFinished / interval / 60);
int second = (int) (millisUntilFinished / interval % 60);
if (minute > 60) {
hour = minute / 60;
minute = minute % 60;
}
if (hour > 24) {
day = hour / 24;
hour = hour % 24;
}
if (callBack != null) {
callBack.onProcess(day, hour, minute, second);
}
}
@Override
public void onFinish() {
if (callBack != null) {
callBack.onFinish();
}
}
};
}
public static void onDestory() {
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
public interface OnCountDownCallBack {
void onProcess(int day, int hour, int minute, int second);
void onFinish();
}
}
......@@ -3,15 +3,25 @@ package com.dayu.utils;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Paint;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.CycleInterpolator;
import android.view.animation.TranslateAnimation;
import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
......@@ -148,6 +158,81 @@ public class UIUtils {
imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
}
/**
* drawStars.
*
* @param starLinearLayout .
* @param lev .
* @param totalLevel .
*/
public static void drawStars(LinearLayout starLinearLayout, String lev, String totalLevel) {
Activity mActivity = AppManager.getInstance().currentActivity();
String level = "0";
if (!TextUtils.isEmpty(lev)) {
level = lev;
}
int max = Integer.parseInt(totalLevel);
int beginNum = 0;
int endNum = max;
boolean isNedHalf = false;
if (!TextUtils.isEmpty(level)) {
if (Float.parseFloat(level) > max) {
beginNum = max;
endNum = max - beginNum;
} else {
Float levelf = Float.parseFloat(level);
int leveli = Math.round(levelf);
if (leveli > levelf) {
beginNum = leveli - 1;
endNum = (max - 1) - beginNum;
isNedHalf = true;
} else {
beginNum = leveli;
endNum = max - beginNum;
}
}
}
starLinearLayout.removeAllViews();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, 0, dp2px(6), 0);
for (int i = 0; i < beginNum; i++) {
ImageView starImg = new ImageView(mActivity);
Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.
person_xingxing);
starImg.setImageBitmap(bm);
starLinearLayout.addView(starImg, layoutParams);
}
if (isNedHalf) {
ImageView starImg = new ImageView(mActivity);
Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.person_banxing);
starImg.setImageBitmap(bm);
starLinearLayout.addView(starImg, layoutParams);
}
for (int i = 0; i < endNum; i++) {
ImageView starImg = new ImageView(mActivity);
Bitmap bm = BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.
person_xing);
starImg.setImageBitmap(bm);
starLinearLayout.addView(starImg, layoutParams);
}
}
public static SpannableStringBuilder setNumColor(String str, int color) {
SpannableStringBuilder style = new SpannableStringBuilder(str);
for (int i = 0; i < str.length(); i++) {
char a = str.charAt(i);
if (a >= '0' && a <= '9') {
style.setSpan(new ForegroundColorSpan(color), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
return style;
}
}
......@@ -2,6 +2,7 @@ package com.dayu.utils;
import android.text.TextUtils;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.google.gson.Gson;
......@@ -64,10 +65,59 @@ public class UserManager {
UserInfo userInfo = getUser();
if (userInfo != null) {
//有数据
return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getSiteId())
&& !TextUtils.isEmpty(userInfo.getAccountName());
return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getAccountName())
&& userInfo.getRoles() != null;
}
return false;
}
public boolean isManager() {
UserInfo userInfo = getUser();
return userInfo.getRoles().contains(3);
}
public int getRole() {
boolean isEngineer = false;
boolean isManager = false;
UserInfo userInfo = getUser();
if (userInfo != null && userInfo.getRoles().contains(2)) {
isEngineer = true;
}
if (userInfo != null && userInfo.getRoles().contains(3)) {
isManager = true;
}
if (isEngineer && isManager) {
if (userInfo.getSiteId() == -1) {
return Constants.MANAGER_NOSITE_ENGINEER;
} else {
return Constants.MANAGER_ENGINEER;
}
} else if (isEngineer) {
return Constants.ENGINEER;
} else if (isManager) {
return Constants.MANAGER;
} else {
return Constants.NOT_LOGIN;
}
}
public int getRole(UserInfo userInfo) {
boolean isEngineer = false;
boolean isManager = false;
if (userInfo != null && userInfo.getRoles().contains(2)) {
isEngineer = true;
}
if (userInfo != null && userInfo.getRoles().contains(3)) {
isManager = true;
}
if (isEngineer && isManager) {
return Constants.MANAGER_ENGINEER;
} else if (isEngineer) {
return Constants.ENGINEER;
} else if (isManager) {
return Constants.MANAGER;
} else {
return Constants.NOT_LOGIN;
}
}
}
......@@ -167,6 +167,11 @@ public class UtilsDate {
return (second - first) / 1000;
}
public static long timeSub(String endTime) {
long first = stringtoDate(endTime, FORMAT_ONE).getTime();
return first - System.currentTimeMillis();
}
/**
* 获得某月的天数
*
......@@ -324,7 +329,7 @@ public class UtilsDate {
}
public static long dayDiffCurr(String first,String second) {
public static long dayDiffCurr(String first, String second) {
Date firstDate = stringtoDate(first, LONG_DATE_FORMAT);
Date secondDate = stringtoDate(second, LONG_DATE_FORMAT);
return (firstDate.getTime() - secondDate.getTime()) / 86400000;
......@@ -1454,7 +1459,6 @@ public class UtilsDate {
}
@SuppressLint("SimpleDateFormat")
public static String format(long date, String pattern) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat(pattern);
......@@ -1598,6 +1602,7 @@ public class UtilsDate {
/**
* 判断是否今天,明天,否则返回时间.
*
* @param time
* @return
*/
......@@ -1616,6 +1621,5 @@ public class UtilsDate {
}
}
private static ThreadLocal<SimpleDateFormat> DateLocal = new ThreadLocal<>();
}
......@@ -30,6 +30,7 @@ public class CustomDialog extends Dialog implements View.OnClickListener {
private int positiveColor;
private boolean flag;
private View line;
private int negativeColor;
public CustomDialog(Context context) {
super(context);
......@@ -69,6 +70,12 @@ public class CustomDialog extends Dialog implements View.OnClickListener {
return this;
}
public CustomDialog setNegativeButtonColor(int colorId) {
this.negativeColor = colorId;
return this;
}
public CustomDialog setNegativeButton(String name) {
this.negativeName = name;
return this;
......@@ -79,6 +86,7 @@ public class CustomDialog extends Dialog implements View.OnClickListener {
return this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......@@ -106,6 +114,10 @@ public class CustomDialog extends Dialog implements View.OnClickListener {
submitTxt.setTextColor(positiveColor);
}
if (negativeColor != 0) {
cancelTxt.setTextColor(negativeColor);
}
if (!TextUtils.isEmpty(negativeName)) {
cancelTxt.setText(negativeName);
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="2dp" />
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/bg_button" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp"/>
<solid android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="@color/editext_color" />
</shape>
\ No newline at end of file
......@@ -36,6 +36,7 @@
<color name="light_grey">#FF666666</color>
<color name="bg_button">#FF3FAAFC</color>
<color name="editext_color">#FFB6B6B6</color>
<color name="view_color">#E6E6E6 </color>
......
......@@ -112,6 +112,7 @@
<string name="enviroment_debug">测试环境%1$s</string>
<string name="enviroment_uat">UAT环境%1$s</string>
<string name="enviroment_demons">演示环境%1$s</string>
<string name="account_notice">您的账号在另一台设备中登录</string>
<!--提现账户-->
<string name="title_withdrawals">提现账户</string>
<string name="alipay_account">支付宝账号</string>
......@@ -169,6 +170,30 @@
<string name="send_code_agian">秒后可重发</string>
<string name="login">登录</string>
<!--派单-->
<string name="send_order">派单</string>
<string name="grab_order">抢单</string>
<string name="subcribe_order">预约审核</string>
<string name="change_order">可改派</string>
<string name="swtich_service_station">切换服务站</string>
<string name="can_grab_order">可抢单</string>
<string name="bargain_order">已议价</string>
<string name="order_bargain_price">发单价:</string>
<string name="bargain_price">议价</string>
<string name="bargain_now">立即议价</string>
<string name="receive_order_now">立即接单</string>
<string name="wait_comform">确认中</string>
<string name="out_of_date">已过期</string>
<string name="other_get">他人承接</string>
<string name="grab_time">还剩余%1$d天%2$d小时%3$d分%4$d秒"</string>
<string name="designate_success">工程师指派成功</string>
<string name="engineer">&#160;&#160;&#160;&#160;</string>
<string name="change">改派</string>
<string name="bargain_notice">如果您的报价得到“%1$s”同意,该任务将由您承接。点击“提交报价”等待处理吧。注:提交报价需要等待,可能会被其他人抢单哦</string>
<string name="receive_notice">如果您同意“%1$s”发布的任务和报价,点击“确定接单”按钮,您可以马上开始进行工作。</string>
<string name="bargain_titile">回复报价</string>
<string name="bargain_comform">提交报价</string>
<string name="left_time">剩余时间</string>
<!--工单-->
<string name="order_title">我的工单</string>
......@@ -284,12 +309,13 @@
<string name="modify_part_info">修改信息</string>
<string name="customer_acceptance">客户验收</string>
<string name="scan_code_for_appointment">请扫描二维码关注大鱼服务公众号</string>
<string name="scan_code_for_appointment_two">点击-我的服务-进行绑定登录后,选择工单验收</string>
<string name="scan_code_for_appointment_two">点击-查询工单-进行绑定登录后,选择工单验收</string>
<string name="order_record">工单记录</string>
<string name="order_num">工单编号</string>
<string name="order_state">工单状态</string>
<string name="server_name">服务名称</string>
<string name="prodcut">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="photo">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="prodcut_type">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="door_time">上门时间</string>
<string name="order_remark">工单备注</string>
......@@ -302,8 +328,9 @@
<string name="lookforword_time">期望时间</string>
<string name="money_info">费用信息</string>
<string name="prodcut_info">产品信息</string>
<string name="prodcut_brand">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="prodcut_num">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="prodcut_types">产品分类</string>
<string name="prodcut_brand">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="prodcut_num">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="quality_assurance_info">质保信息</string>
<string name="sn_num">SN&#160;&#160;&#160;&#160;&#160;&#160;</string>
<string name="charge_record">收费记录</string>
......@@ -330,7 +357,7 @@
<string name="payer_dialog_content">您还没有选择费用承担方,请选择后再提交验收</string>
<string name="payer_dialog_title">未选择费用承担方</string>
<string name="payer_select_title">确认操作</string>
<string name="payer_select_content">您修改了费用承担方,可能会导致费用争议。修改后不能调整,确认此操作吗?</string>
<string name="payer_select_content">提交后费用承担方将不能修改,确认提交吗?</string>
<string name="failed_get_address">获取地址失败</string>
<string name="check_initial_state">查看初始状态</string>
<string name="reassignment_reason">改派原因</string>
......@@ -363,6 +390,22 @@
<string name="download_gaode_notice">您还未安装高德地图~</string>
<string name="sop_title">标准操作规范SOP~</string>
<string name="process_notice">温馨提示:点击屏幕底部“提交验收”按钮,申请费用。</string>
<string name="next_step_process_order">您的工单已全部完成,点击下一步去提交验收</string>
<string name="create_time">下单时间</string>
<string name="designate_order">立即指派</string>
<string name="designate">指派</string>
<string name="order_price">授权单价</string>
<string name="refuse">拒绝</string>
<string name="change_engineer">改派工程师</string>
<string name="change_engineer_name">改派工程师(%1$s)</string>
<string name="designate_engineer">指派工程师</string>
<string name="comform_receive_order">确定接单</string>
<string name="send_order_price">&#160;&#160;&#160;&#160;</string>
<string name="send_order_price_trim">发单价</string>
<string name="my_price">您的报价</string>
<string name="bao_price">报价</string>
<string name="bargain_dialog_error">您的报价不能低于发单方的价格</string>
<string name="login_out">退出登录</string>
<!--消息-->
<string name="message_system">系统通知</string>
......@@ -496,6 +539,7 @@
<string name="engineer_identity_auditing">您的身份认证正在审核中,请耐心等待</string>
<string name="engineer_identity_not_audite">您还没有进行身份认证</string>
<string name="engineer_not_have_site">您未加入服务站,请联系站点</string>
<string name="engineer_or_manager_not_exite">工程师账号或店长账号不存在</string>
<string name="audite_tip">资料已经提交审核\n审核结果会通过短信通知您</string>
<string name="audite_tip_title">提交成功</string>
<string name="audite_tip_submite_title">重新提交</string>
......
......@@ -155,4 +155,9 @@
<!--光标样式-->
<attr name="vcv_et_cursor" format="reference" />
</declare-styleable>
<style name="MyEditText" parent="AppTheme">
<item name="colorControlNormal">@color/default_editext_color</item>
<item name="colorControlActivated">@color/default_editext_color</item>
</style>
</resources>
......@@ -5,15 +5,14 @@ buildscript {
ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 16
ext.target_sdk_version = 23
ext.version_code = 15
ext.verson_name = "1.9.2"
ext.gradle_version = '3.0.1'
ext.version_code = 16
ext.verson_name = "1.9.3"
ext.gradle_version = '3.1.4'
ext.isReleaseMinify = true
ext.isDebugMinify = true
ext.arouter_api_version = '1.3.1'
ext.arouter_compiler_version = '1.1.4'
repositories {
jcenter()
google()
......
......@@ -5,6 +5,8 @@ isUserModule=true
isMessageModule=true
##工单模块
isOrderModule=true
##店长模块
isManagerModule=true
##maven依赖
mavenMode=false
BASE_URL=http://47.94.101.239:3112
......
......@@ -25,9 +25,9 @@ android {
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation files('libs/Amap_2DMap_V5.2.0_20170627.jar')
api files('libs/Amap_2DMap_V5.2.0_20170627.jar')
}
if (isManagerModule.toBoolean()) {
apply plugin: 'com.android.library'
} else {
apply plugin: 'com.android.application'
}
android {
compileSdkVersion compile_sdk_version
buildToolsVersion build_tools_version
defaultConfig {
minSdkVersion min_sdk_version
targetSdkVersion target_sdk_version
versionCode version_code
versionName verson_name
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled isReleaseMinify
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
dexOptions {
preDexLibraries = false
}
sourceSets {
main {
if (isMessageModule.toBoolean()) {
manifest.srcFile 'src/main/release/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/debug/AndroidManifest.xml'
}
}
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
api project(':provider')
}
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
package com.dayu.managercenter;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.dayu.managercenter.test", appContext.getPackageName());
}
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.managercenter">
<application
android:name="com.dayu.common.BaseApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.dayu.managercenter.ui.activity.ManagerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.activity.ServiceStationActivity" />
<activity android:name=".ui.activity.SendOrderDetailActivity" />
<activity android:name=".ui.activity.SubOrderDetailActivity" />
<activity android:name=".ui.activity.PreviewActivty" />
<activity android:name=".ui.activity.ChangeReasonActivity" />
</application>
</manifest>
package com.dayu.managercenter.api;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.data.Bargain;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.SpInfo;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* 全局model类.
*/
public class ManagerApiFactory {
public static Observable<List<ServiceStation>> getStations(int id) {
return Api.getService(ManagerService.class).getServiceStations(id).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getOrders(int page, int pageSize, int siteId, int status) {
return Api.getService(ManagerService.class).getOrders(page, pageSize, status, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<GrabOrder>> getGrapOrder(int page, int pageSize, int siteId) {
return Api.getService(ManagerService.class).getGrapOrder(page, pageSize, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<GrabOrder>> getBarginOrder(int page, int pageSize, int siteId) {
return Api.getService(ManagerService.class).getBarginOrder(page, pageSize, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getEuOrder(int page, int pageSize, int siteId, int status, int createdSource) {
return Api.getService(ManagerService.class).getEuOrder(page, pageSize, siteId, status, createdSource).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> getOrderInfo(int orderId) {
return Api.getService(ManagerService.class).getOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> getKaOrderInfo(int orderId) {
return Api.getService(ManagerService.class).getKaOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<List<Engineer>> getEngineers(int siteId) {
return Api.getService(ManagerService.class).getEngineers(siteId).compose(Api.applySchedulers());
}
public static Observable<Boolean> designate(int id, int engineerId, String updated) {
return Api.getService(ManagerService.class).designate(id, engineerId, updated).compose(Api.applySchedulers());
}
public static Observable<Boolean> bargain(RequestBody body) {
return Api.getService(ManagerService.class).bargain(body).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Bargain>> getBargainPrice(int spSiteId, int kaOrderId) {
return Api.getService(ManagerService.class).getBargainPrice(spSiteId, kaOrderId).compose(Api.applySchedulers());
}
public static Observable<Boolean> receiveOrder(int kaOrderId, int providerSiteId, String providerSiteName) {
return Api.getService(ManagerService.class).receiveOrder(kaOrderId, providerSiteId, providerSiteName).compose(Api.applySchedulers());
}
public static Observable<SpInfo> querySpInfo(int accountId) {
return Api.getService(ManagerService.class).querySpInfo(accountId).compose(Api.applySchedulers());
}
public static Observable<Boolean> refuse(int orderId, String createBy, String reason) {
return Api.getService(ManagerService.class).refuse(orderId, createBy, reason).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getDesignateList(int siteId, int changeEngineerStatus, int page, int pageSize) {
return Api.getService(ManagerService.class).getDesignateList(siteId, changeEngineerStatus, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Boolean> changeEngineer(int id, String reason, int engineerId) {
return Api.getService(ManagerService.class).changeEngineer(id, reason, engineerId).compose(Api.applySchedulers());
}
}
package com.dayu.managercenter.api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Bargain;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.data.SpInfo;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
/**
* Created by luofan on 2017/11/09.
*/
public interface ManagerService {
/**
* 获取服务站列表.
*
* @param id
* @return
*/
@GET(ManagerConstant.SERVICE_STATIONS)
Observable<BaseResponse<List<ServiceStation>>> getServiceStations(@Path("accountId") int id);
/**
* 获取工单列表.
*
* @param page
* @param pageSize
* @param status
* @param siteId
* @return
*/
@GET(ManagerConstant.ORDER_LIST)
Observable<BaseResponse<BasePageBean<Order>>> getOrders(@Query("page") int page, @Query("pageSize") int pageSize, @Query("status") int status, @Query("siteId") int siteId);
/**
* 获取抢单列表.
*
* @param page
* @param pageSize
* @param siteId
* @return
*/
@GET(ManagerConstant.GRAP_ORDER_LIST)
Observable<BaseResponse<BasePageBean<GrabOrder>>> getGrapOrder(@Query("page") int page, @Query("pageSize") int pageSize, @Query("siteId") int siteId);
/**
* 获取议价列表.
*
* @param page
* @param pageSize
* @param siteId
* @return
*/
@GET(ManagerConstant.BARGIN_LIST)
Observable<BaseResponse<BasePageBean<GrabOrder>>> getBarginOrder(@Query("page") int page, @Query("pageSize") int pageSize, @Query("siteId") int siteId);
/**
* 获取用户预约列表.
*
* @param page
* @param pageSize
* @param siteId
* @param status
* @param createdSource
* @return
*/
@GET(ManagerConstant.EU_ORDER)
Observable<BaseResponse<BasePageBean<Order>>> getEuOrder(@Query("page") int page, @Query("pageSize") int pageSize, @Query("siteId") int siteId, @Query("status") int status, @Query("createdSource") int createdSource);
/**
* 获取工单详情信息.
*
* @param orderId
* @return
*/
@GET(ManagerConstant.ORDER_DETAILS)
Observable<BaseResponse<OrderDetail>> getOrderInfo(@Path("orderId") int orderId);
/**
* 获取服务单信息.
*
* @param orderId
* @return
*/
@GET(ManagerConstant.KA_ORDER_DETAILS)
Observable<BaseResponse<OrderDetail>> getKaOrderInfo(@Path("orderId") int orderId);
/**
* 获取工程师列表.
*
* @param siteId
* @return
*/
@GET(ManagerConstant.ENGINEER_LIST)
Observable<BaseResponse<List<Engineer>>> getEngineers(@Query("siteId") int siteId);
/**
* 指派工程师.
*
* @param id
* @param engineerId
* @param updated 指派人.
* @return
*/
@POST(ManagerConstant.DESIGNATE)
Observable<BaseResponse<Boolean>> designate(@Query("id") int id, @Query("engineerId") int engineerId, @Query("updated") String updated);
/**
* 议价.
*
* @param body
* @return
*/
@POST(ManagerConstant.BARGAIN)
Observable<BaseResponse<Boolean>> bargain(@Body RequestBody body);
/**
* 获取议价.
*
* @return
*/
@GET(ManagerConstant.BARGAIN)
Observable<BaseResponse<BasePageBean<Bargain>>> getBargainPrice(@Query("spSiteId") int spSiteId, @Query("kaOrderId") int kaOrderId);
/**
* 接单
*
* @param kaOrderId
* @param providerSiteId
* @param providerSiteName
* @return
*/
@POST(ManagerConstant.RECEIVE_ORDER)
Observable<BaseResponse<Boolean>> receiveOrder(@Query("kaOrderId") int kaOrderId, @Query("providerSiteId") int providerSiteId, @Query("providerSiteName") String providerSiteName);
/**
* 查询sp信息.
*
* @param accountId
* @return
*/
@GET(ManagerConstant.QUERY_SP)
Observable<BaseResponse<SpInfo>> querySpInfo(@Path("accountId") int accountId);
/**
* 拒绝.
*
* @param orderId
* @param createBy
* @param reason
* @return
*/
@POST(ManagerConstant.REFUSE)
Observable<BaseResponse<Boolean>> refuse(@Query("orderId") int orderId, @Query("createBy") String createBy, @Query("reason") String reason);
/**
* 获取可改派列表.
*
* @param siteId
* @param changeEngineerStatus
* @param page
* @param pageSize
* @return
*/
@GET(ManagerConstant.DESIGNATE_LIST)
Observable<BaseResponse<BasePageBean<Order>>> getDesignateList(@Query("siteId") int siteId, @Query("changeEngineerStatus") int changeEngineerStatus, @Query("page") int page, @Query("pageSize") int pageSize);
/**
* 改派工程师.
*
* @param id
* @param reason
* @param engineerId
* @return
*/
@POST(ManagerConstant.CHANGE_ENGINEER)
Observable<BaseResponse<Boolean>> changeEngineer(@Query("id") int id, @Query("reason") String reason, @Query("engineerId") int engineerId);
}
package com.dayu.managercenter.common;
import com.dayu.managercenter.R;
import com.dayu.utils.UIUtils;
/**
* Created by luofan
* on 2018/2/9.
*/
public class ManagerConstant {
public final static String[] tabs = {UIUtils.getString(R.string.send_order), UIUtils.getString(R.string.grab_order)
, UIUtils.getString(R.string.subcribe_order), UIUtils.getString(R.string.change_order)};
public final static String[] GRAB_TAB = {UIUtils.getString(R.string.can_grab_order), UIUtils.getString(R.string.bargain_order)};
public final static int SEND_ORDER = 0;
public final static int GRAB_ORDER = 1;
public final static int BARGAIN_ORDER = 11;
public final static int Eu_ORDER = 2;
public final static int CHANGE_ORDER = 3;
/**
* 获取服务站列表.
*/
public final static String SERVICE_STATIONS = "/api-user/" + "serviceProviderSite/serverListByShopKeeper/{accountId}";
/**
* 获取工单列表.
*/
public final static String ORDER_LIST = "/api-order/" + "/orders/provider";
/**
* 获取抢单列表.
*/
public final static String GRAP_ORDER_LIST = "/api-count/" + "kaOrderService/waitProcess";
/**
* 获取议价列表.
*/
public final static String BARGIN_LIST = "api-ka-order/" + "kaFlashOrder/bargaining";
/**
* 获取用户预约列表.
*/
public final static String EU_ORDER = "api-order/" + "euOrders/provider";
/**
* 获取工程师列表.
*/
public final static String ENGINEER_LIST = "api-user/" + "engineerInfo/selectEngineerListByCategoryIdAndServiceType";
/**
* 工单详情信息,包含评价,投诉,服务记录.
*/
public static final String ORDER_DETAILS = "/api-order/" + "orders/{orderId}/detail";
/**
* 获取服务单信息.
*/
public static final String KA_ORDER_DETAILS = "/api-ka-order/" + "kaFlashOrder/orderDetail/id/{orderId}";
/**
* 指派工程师.
*/
public static final String DESIGNATE = "/api-order/" + "orders/assign";
/**
* 议价.
*/
public static final String BARGAIN = "api-ka-order/" + "kaOrderBargain";
/**
* 接单.
*/
public static final String RECEIVE_ORDER = "api-ka-order/" + "kaFlashOrder/spRobOrders";
/**
* 查询sp信息.
*/
public static final String QUERY_SP = "/api-user/" + "serviceProviderInfo/queryLegalProviderInfo/accountId/{accountId}";
/**
* eu单拒绝.
*/
public static final String REFUSE = "/api-order/" + "euOrders/refuse";
/**
* 获取可改派列表.
*/
public static final String DESIGNATE_LIST = "/api-order/" + "orders/provider";
/**
* 改派工程师.
*/
public static final String CHANGE_ENGINEER = "/api-order/" + "orders/reassignment";
}
package com.dayu.managercenter.data;
/**
* Created by luofan
* on 2018/9/4.
*/
public class Bargain {
/**
* id : 332
* spProviderId : 448
* spProviderName : null
* spSiteId : 590
* spSiteName : 隆鼎(北京)
* companyId : 77
* kaOrderId : 1996
* price : 112.0
* createTime : 2018-09-04 14:45:06
* created : null
* result : 0
* kaAccountId : null
* kaAcceptTime : null
*/
private int id;
private int spProviderId;
private Object spProviderName;
private int spSiteId;
private String spSiteName;
private int companyId;
private int kaOrderId;
private double price;
private String createTime;
private Object created;
private int result;
private Object kaAccountId;
private Object kaAcceptTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getSpProviderId() {
return spProviderId;
}
public void setSpProviderId(int spProviderId) {
this.spProviderId = spProviderId;
}
public Object getSpProviderName() {
return spProviderName;
}
public void setSpProviderName(Object spProviderName) {
this.spProviderName = spProviderName;
}
public int getSpSiteId() {
return spSiteId;
}
public void setSpSiteId(int spSiteId) {
this.spSiteId = spSiteId;
}
public String getSpSiteName() {
return spSiteName;
}
public void setSpSiteName(String spSiteName) {
this.spSiteName = spSiteName;
}
public int getCompanyId() {
return companyId;
}
public void setCompanyId(int companyId) {
this.companyId = companyId;
}
public int getKaOrderId() {
return kaOrderId;
}
public void setKaOrderId(int kaOrderId) {
this.kaOrderId = kaOrderId;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Object getCreated() {
return created;
}
public void setCreated(Object created) {
this.created = created;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public Object getKaAccountId() {
return kaAccountId;
}
public void setKaAccountId(Object kaAccountId) {
this.kaAccountId = kaAccountId;
}
public Object getKaAcceptTime() {
return kaAcceptTime;
}
public void setKaAcceptTime(Object kaAcceptTime) {
this.kaAcceptTime = kaAcceptTime;
}
}
package com.dayu.managercenter.data;
/**
* Created by luofan
* on 2018/8/31.
*/
public class Engineer {
private int accountId;
private String realName;
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
}
package com.dayu.managercenter.data;
/**
* Created by luofan
* on 2018/8/30.
*/
public class GrabOrder {
/**
* id : 1937
* companyId : 188
* companyName : 四皇
* kaSpuId : 241
* kaSpuName : 维修小米电视
* providerTypeId : 2
* providerTypeName : 维修
* provinceId : 1
* provinceName : 北京市
* cityId : 2
* cityName : 北京城区
* districtId : 3
* districtName : 东城区
* address : 123123
* paymentPrice : 90000.0
* billPrice : null
* engineerName : null
* engineerTelephone : null
* goodNum : 1
* createTime : 2018-08-29 16:58:29
* appointmentTime : 2018-08-31 20:00:00
* categoryThreeId : 1142
* categoryThreeName : 小米电视
* price : null
* siteId : 590
* siteName : 隆鼎(北京)
*/
private int id;
private int companyId;
private String companyName;
private int kaSpuId;
private String kaSpuName;
private int providerTypeId;
private String providerTypeName;
private int provinceId;
private String provinceName;
private int cityId;
private String cityName;
private int districtId;
private String districtName;
private String address;
private double paymentPrice;
private Double billPrice;
private Object engineerName;
private Object engineerTelephone;
private int goodNum;
private String createTime;
private String appointmentTime;
private int categoryThreeId;
private String categoryThreeName;
private Double price;
private int siteId;
private String siteName;
private Integer status;
private Integer kaTypeStatus;
private Integer providerSiteId;
public Integer getKaTypeStatus() {
return kaTypeStatus;
}
public void setKaTypeStatus(Integer kaTypeStatus) {
this.kaTypeStatus = kaTypeStatus;
}
public Integer getProviderSiteId() {
return providerSiteId;
}
public void setProviderSiteId(Integer providerSiteId) {
this.providerSiteId = providerSiteId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getCompanyId() {
return companyId;
}
public void setCompanyId(int companyId) {
this.companyId = companyId;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public int getKaSpuId() {
return kaSpuId;
}
public void setKaSpuId(int kaSpuId) {
this.kaSpuId = kaSpuId;
}
public String getKaSpuName() {
return kaSpuName;
}
public void setKaSpuName(String kaSpuName) {
this.kaSpuName = kaSpuName;
}
public int getProviderTypeId() {
return providerTypeId;
}
public void setProviderTypeId(int providerTypeId) {
this.providerTypeId = providerTypeId;
}
public String getProviderTypeName() {
return providerTypeName;
}
public void setProviderTypeName(String providerTypeName) {
this.providerTypeName = providerTypeName;
}
public int getProvinceId() {
return provinceId;
}
public void setProvinceId(int provinceId) {
this.provinceId = provinceId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public int getCityId() {
return cityId;
}
public void setCityId(int cityId) {
this.cityId = cityId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public int getDistrictId() {
return districtId;
}
public void setDistrictId(int districtId) {
this.districtId = districtId;
}
public String getDistrictName() {
return districtName;
}
public void setDistrictName(String districtName) {
this.districtName = districtName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public double getPaymentPrice() {
return paymentPrice;
}
public void setPaymentPrice(double paymentPrice) {
this.paymentPrice = paymentPrice;
}
public Double getBillPrice() {
return billPrice;
}
public void setBillPrice(Double billPrice) {
this.billPrice = billPrice;
}
public Object getEngineerName() {
return engineerName;
}
public void setEngineerName(Object engineerName) {
this.engineerName = engineerName;
}
public Object getEngineerTelephone() {
return engineerTelephone;
}
public void setEngineerTelephone(Object engineerTelephone) {
this.engineerTelephone = engineerTelephone;
}
public int getGoodNum() {
return goodNum;
}
public void setGoodNum(int goodNum) {
this.goodNum = goodNum;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getAppointmentTime() {
return appointmentTime;
}
public void setAppointmentTime(String appointmentTime) {
this.appointmentTime = appointmentTime;
}
public int getCategoryThreeId() {
return categoryThreeId;
}
public void setCategoryThreeId(int categoryThreeId) {
this.categoryThreeId = categoryThreeId;
}
public String getCategoryThreeName() {
return categoryThreeName;
}
public void setCategoryThreeName(String categoryThreeName) {
this.categoryThreeName = categoryThreeName;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public int getSiteId() {
return siteId;
}
public void setSiteId(int siteId) {
this.siteId = siteId;
}
public String getSiteName() {
return siteName;
}
public void setSiteName(String siteName) {
this.siteName = siteName;
}
}
package com.dayu.managercenter.data;
/**
* Created by luofan
* on 2018/9/3.
*/
public class SpInfo {
/**
* id : 448
* accountId : 1267
* accountUrl : null
* realName : null
* identity : null
* identityUrl : null
* name : 菏泽市牡丹区隆鼎家用电器经营部
* aduitStatus : 2
* createTime : 2018-08-02 11:13:40
* created : null
* updateTime : 2018-08-02 11:17:56
* updated : 系统管理员
* abbreviation : 隆鼎家用电器
* establish : 2017
* registeredCapital : 100
* briefIntroduction : 家用电器销售及家电代理服务,维修
* serviceScope : 家用电器销售及家电代理服务,维修
* businessLicense : http://dl.kf.ai/test/sp/account/busnessHeaderImg/a9f8e3398eb17c8ce46d33a4b9392d00.png?x-oss-process=style/pic
* creditCode : 92371702MA3F0X647Q
* legalPerson : 陈晶晶
* idNumber : 372901198912048742
* taskId : 153317962201000001
* certifiedStatus : 1
* signStatus : 1
* templateId : 51
* type : 2
* mobile : null
* userPwd : null
* pwdSalt : null
* provinceId : 18309
* provinceName : 山东省
* cityId : 20187
* cityName : 菏泽市
* districtId : 20188
* districtName : 牡丹区
* address : 居然之家1—1—023号
* switchPrice : 2
* customerTypeId : 100
* customerTypeName : 标准
* accountType : 3
*/
private int id;
private int accountId;
private Object accountUrl;
private Object realName;
private Object identity;
private Object identityUrl;
private String name;
private int aduitStatus;
private String createTime;
private Object created;
private String updateTime;
private String updated;
private String abbreviation;
private String establish;
private int registeredCapital;
private String briefIntroduction;
private String serviceScope;
private String businessLicense;
private String creditCode;
private String legalPerson;
private String idNumber;
private String taskId;
private int certifiedStatus;
private int signStatus;
private int templateId;
private int type;
private Object mobile;
private Object userPwd;
private Object pwdSalt;
private int provinceId;
private String provinceName;
private int cityId;
private String cityName;
private int districtId;
private String districtName;
private String address;
private int switchPrice;
private int customerTypeId;
private String customerTypeName;
private int accountType;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public Object getAccountUrl() {
return accountUrl;
}
public void setAccountUrl(Object accountUrl) {
this.accountUrl = accountUrl;
}
public Object getRealName() {
return realName;
}
public void setRealName(Object realName) {
this.realName = realName;
}
public Object getIdentity() {
return identity;
}
public void setIdentity(Object identity) {
this.identity = identity;
}
public Object getIdentityUrl() {
return identityUrl;
}
public void setIdentityUrl(Object identityUrl) {
this.identityUrl = identityUrl;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAduitStatus() {
return aduitStatus;
}
public void setAduitStatus(int aduitStatus) {
this.aduitStatus = aduitStatus;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Object getCreated() {
return created;
}
public void setCreated(Object created) {
this.created = created;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getEstablish() {
return establish;
}
public void setEstablish(String establish) {
this.establish = establish;
}
public int getRegisteredCapital() {
return registeredCapital;
}
public void setRegisteredCapital(int registeredCapital) {
this.registeredCapital = registeredCapital;
}
public String getBriefIntroduction() {
return briefIntroduction;
}
public void setBriefIntroduction(String briefIntroduction) {
this.briefIntroduction = briefIntroduction;
}
public String getServiceScope() {
return serviceScope;
}
public void setServiceScope(String serviceScope) {
this.serviceScope = serviceScope;
}
public String getBusinessLicense() {
return businessLicense;
}
public void setBusinessLicense(String businessLicense) {
this.businessLicense = businessLicense;
}
public String getCreditCode() {
return creditCode;
}
public void setCreditCode(String creditCode) {
this.creditCode = creditCode;
}
public String getLegalPerson() {
return legalPerson;
}
public void setLegalPerson(String legalPerson) {
this.legalPerson = legalPerson;
}
public String getIdNumber() {
return idNumber;
}
public void setIdNumber(String idNumber) {
this.idNumber = idNumber;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public int getCertifiedStatus() {
return certifiedStatus;
}
public void setCertifiedStatus(int certifiedStatus) {
this.certifiedStatus = certifiedStatus;
}
public int getSignStatus() {
return signStatus;
}
public void setSignStatus(int signStatus) {
this.signStatus = signStatus;
}
public int getTemplateId() {
return templateId;
}
public void setTemplateId(int templateId) {
this.templateId = templateId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public Object getMobile() {
return mobile;
}
public void setMobile(Object mobile) {
this.mobile = mobile;
}
public Object getUserPwd() {
return userPwd;
}
public void setUserPwd(Object userPwd) {
this.userPwd = userPwd;
}
public Object getPwdSalt() {
return pwdSalt;
}
public void setPwdSalt(Object pwdSalt) {
this.pwdSalt = pwdSalt;
}
public int getProvinceId() {
return provinceId;
}
public void setProvinceId(int provinceId) {
this.provinceId = provinceId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public int getCityId() {
return cityId;
}
public void setCityId(int cityId) {
this.cityId = cityId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public int getDistrictId() {
return districtId;
}
public void setDistrictId(int districtId) {
this.districtId = districtId;
}
public String getDistrictName() {
return districtName;
}
public void setDistrictName(String districtName) {
this.districtName = districtName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getSwitchPrice() {
return switchPrice;
}
public void setSwitchPrice(int switchPrice) {
this.switchPrice = switchPrice;
}
public int getCustomerTypeId() {
return customerTypeId;
}
public void setCustomerTypeId(int customerTypeId) {
this.customerTypeId = customerTypeId;
}
public String getCustomerTypeName() {
return customerTypeName;
}
public void setCustomerTypeName(String customerTypeName) {
this.customerTypeName = customerTypeName;
}
public int getAccountType() {
return accountType;
}
public void setAccountType(int accountType) {
this.accountType = accountType;
}
}
package com.dayu.managercenter.data;
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;//1未完成2已完成
private String brandName;
private String sn;
/**
* 处理工单获取信息使用.
*/
private String customerCheckComment;
private List<Pic> listPic;
private Integer needSerialNumPic;//1需要;2不需要.
private String serialNumPicUrl;
private int accountType; // 3:无权查看.
public int getAccountType() {
return accountType;
}
public void setAccountType(int accountType) {
this.accountType = accountType;
}
public Integer getNeedSerialNumPic() {
return needSerialNumPic;
}
public void setNeedSerialNumPic(Integer needSerialNumPic) {
this.needSerialNumPic = needSerialNumPic;
}
public String getSerialNumPicUrl() {
return serialNumPicUrl;
}
public void setSerialNumPicUrl(String serialNumPicUrl) {
this.serialNumPicUrl = serialNumPicUrl;
}
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
package com.dayu.managercenter.presenter.bargainorder;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.GrabOrder;
/**
* Created by luo on 2016/8/4.
*/
public interface BargainContract {
interface View extends BaseView {
void showReceiveDialog(GrabOrder order);
}
abstract class Presenter extends BaseListPresenter<View> {
/**
* 获取抢单列表.
*/
public abstract void getBargainOrders();
/**
* 接单.
*/
public abstract void receive(int id);
}
}
package com.dayu.managercenter.presenter.bargainorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
/**
* Created by luofan
* on 2017/11/8.
*/
public class BargainPresenter extends BargainContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
private int mId;
private ServiceStation mStation;
@Override
public void onAttached() {
mStation = StationManager.getInstance().getStation();
mId = mStation.getId();
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getBargainOrders() {
ManagerApiFactory.getBarginOrder(mPage, Constants.PAGESIZE, mId).subscribe(
baseObserver(orders -> datas.set(orders)
, error -> datas.set(Constants.FAILED))
);
}
@Override
public void receive(int id) {
ManagerApiFactory.receiveOrder(id, mStation.getId(), mStation.getName()).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> {
EventBus.getDefault().post(new ManagerReceiveEvent());
EventBus.getDefault().post(new DesignateEvent());
});
}));
}
@Override
public void refresh() {
mPage = 1;
getBargainOrders();
}
@Override
public void loadMore() {
getBargainOrders();
}
}
package com.dayu.managercenter.presenter.changeorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface ChangeOrderContract {
interface View extends BaseView {
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getDesignateList();
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.changeorder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.data.Engineer;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.utils.StationManager;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ChangeOrderPresenter extends ChangeOrderContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private ServiceStation mStation;
private int mPage;
@Override
public void onAttached() {
mStation = StationManager.getInstance().getStation();
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getDesignateList() {
mView.showDialog();
ManagerApiFactory.getDesignateList(mStation.getId(), 1, mPage, Constants.PAGESIZE).subscribe(baseObserver(
orderBasePageBean -> datas.set(orderBasePageBean),
error -> datas.set(Constants.FAILED)));
}
@Override
public void getEngineers(int id) {
mView.showDialog();
ManagerApiFactory.getEngineers(mStation.getId()).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
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)
-> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, id);
mView.startActivity(ChangeReasonActivity.class, bundle);
});
}
@Override
public void refresh() {
mPage = 1;
getDesignateList();
}
@Override
public void loadMore() {
getDesignateList();
}
}
package com.dayu.managercenter.presenter.changereason;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
* on 2016/8/4.
*/
public interface ChangeReasonContract {
interface View extends BaseView {
void dumpToDetail();
}
abstract class Presenter extends BasePresenter<View> {
public abstract void changeEngineer();
}
}
package com.dayu.managercenter.presenter.changereason;
import android.databinding.ObservableField;
import android.text.TextUtils;
import com.dayu.common.Constants;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.provider.event.RefreshManagerEvent;
import com.dayu.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
public ObservableField<String> mReason = new ObservableField<>();
private int mAccountId;
private int mId;
private int mState;
@Override
public void onAttached() {
mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID);
mId = mView.getBundle().getInt(Constants.ID);
mState = mView.getBundle().getInt(Constants.STATE);
}
@Override
public void changeEngineer() {
if (TextUtils.isEmpty(mReason.get())) {
ToastUtils.showShortToast("请输入改派原因");
return;
}
mView.showDialog();
ManagerApiFactory.changeEngineer(mId, mReason.get(), mAccountId).subscribe(
baseObserver(aBoolean -> {
ToastUtils.showShortToast("改派成功");
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.CHANGE_ORDER));
if (mState == 1) {
mView.dumpToDetail();
} else {
mView.dumpBack();
}
})
);
}
}
package com.dayu.managercenter.presenter.graborder;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.GrabOrder;
/**
* Created by luo on 2016/8/4.
*/
public interface GrabContract {
interface View extends BaseView {
void showBargainDialog(GrabOrder order);
void showReceiveDialog(GrabOrder order);
}
abstract class Presenter extends BaseListPresenter<View> {
/**
* 获取抢单列表.
*/
public abstract void getGrapOrders();
public abstract void querySpInfo();
/**
* 议价.
*/
public abstract void bargain(String price, GrabOrder order);
/**
* 接单.
*/
public abstract void receive(GrabOrder order);
}
}
package com.dayu.managercenter.presenter.graborder;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.data.SpInfo;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
public class GrabPresenter extends GrabContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
private int mId;
private ServiceStation mStation;
private SpInfo mSpInfo;
private int mAccountId;
@Override
public void onAttached() {
mStation = StationManager.getInstance().getStation();
mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId());
mId = mStation.getId();
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getGrapOrders() {
ManagerApiFactory.getGrapOrder(mPage, Constants.PAGESIZE, mId).subscribe(
baseObserver(orders -> datas.set(orders)
, error -> datas.set(Constants.FAILED))
);
}
@Override
public void querySpInfo() {
mView.showDialog();
ManagerApiFactory.querySpInfo(mAccountId).subscribe(baseObserver(
spInfo -> mSpInfo = spInfo));
}
@Override
public void bargain(String price, GrabOrder order) {
mView.showDialog();
HashMap<String, Object> params = new HashMap<>();
params.put("companyId", order.getCompanyId());
params.put("kaOrderId", order.getId());
params.put("price", price);
params.put("result", 0);
params.put("spProviderId", mSpInfo.getId());
params.put("spProviderName", mSpInfo.getName());
params.put("spSiteId", order.getSiteId());
params.put("spSiteName", order.getSiteName());
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (order.getId()));
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread())
.subscribe(l -> EventBus.getDefault().post(new RefreshGrabEvent(1)));
}));
}
@Override
public void receive(GrabOrder order) {
ManagerApiFactory.receiveOrder(order.getId(), order.getSiteId(), order.getSiteName()).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
refresh();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, order.getId());
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> EventBus.getDefault().post(new ManagerReceiveEvent()));
}));
}
@Override
public void refresh() {
mPage = 1;
getGrapOrders();
}
@Override
public void loadMore() {
getGrapOrders();
}
}
package com.dayu.managercenter.presenter.manager;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
*/
public interface ManagerContract {
interface View extends BaseView {
}
abstract class Presenter extends BasePresenter<View> {
}
}
package com.dayu.managercenter.presenter.manager;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ManagerPresenter extends ManagerContract.Presenter {
@Override
public void onAttached() {
}
}
package com.dayu.managercenter.presenter.senddetail;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.OrderDetail;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface SendDetailContract {
interface View extends BaseView {
void getData(OrderDetail detail);
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
void showBargainDialog();
void showReceiveDialog();
}
abstract class Presenter extends BasePresenter<View> {
/**
* 获取工单详情.
*/
public abstract void getOrderInfo(int accountType, int state);
public abstract void designate(int accountId);
public abstract void getEngineers();
/**
* 指派或改派工程师
*/
public abstract void managerOrder();
public abstract void querySpInfo(int state);
/**
* 议价.
*/
public abstract void bargain(String price, OrderDetail order);
/**
* 接单.
*/
public abstract void receive(int id);
/**
* 获取报价.
* @param kaOrderId id.
*/
public abstract void getBargainPrice(int kaOrderId);
}
}
package com.dayu.managercenter.presenter.senddetail;
import android.databinding.ObservableField;
import android.os.Bundle;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
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.OrderDetail;
import com.dayu.managercenter.data.SpInfo;
import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.provider.event.DesignateEvent;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.StationManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
public class SendDetailPresenter extends SendDetailContract.Presenter {
public ObservableField<OrderDetail> item = new ObservableField<>();
public ObservableField<String> price = new ObservableField<>();
private int mId;
private int mStationId;
private String mAccountId;
private String mAccountName;
private ServiceStation mStation;
private int mState;
private SpInfo mSpInfo;
@Override
public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID);
mState = mView.getBundle().getInt(Constants.STATE);
mStation = StationManager.getInstance().getStation();
mStationId = mStation.getId();
mAccountId = UserManager.getInstance().getUser().getAccountId();
mAccountName = UserManager.getInstance().getUser().getAccountName();
}
@Override
public void getOrderInfo(int accountType, int state) {
mView.showDialog();
Observable<OrderDetail> observable;
if (state == ManagerConstant.GRAB_ORDER || state == ManagerConstant.BARGAIN_ORDER) {
observable = ManagerApiFactory.getKaOrderInfo(mId);
} else {
observable = ManagerApiFactory.getOrderInfo(mId);
}
observable.subscribe(baseObserver(
orderDetail -> {
if (orderDetail.getSpus() != null) {
for (Spu spu : orderDetail.getSpus()) {
spu.setAccountType(accountType);
}
}
getBargainPrice(orderDetail.getId());
mView.getData(orderDetail);
}));
}
@Override
public void designate(int accountId) {
mView.showDialog();
ManagerApiFactory.designate(mId, accountId, mAccountName).subscribe(baseObserver(
aBoolean -> {
mView.showToast(R.string.designate_success);
mView.dumpBack();
EventBus.getDefault().post(new DesignateEvent());
}));
}
@Override
public void getEngineers() {
mView.showDialog();
ManagerApiFactory.getEngineers(mStationId).subscribe(baseObserver(this::showEngineerDialog));
}
private void showEngineerDialog(List<Engineer> engineers) {
List<String> list = new ArrayList<>();
for (Engineer info : engineers) {
list.add(info.getRealName());
}
mView.showEngineerDialog(list, (options1, options2, options3, v)
-> {
if (mState == ManagerConstant.CHANGE_ORDER) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
bundle.putInt(Constants.ID, mId);
bundle.putInt(Constants.STATE, 1);
mView.startActivityForReult(ChangeReasonActivity.class, bundle, 100);
} else {
designate(engineers.get(options1).getAccountId());
}
});
}
@Override
public void managerOrder() {
}
@Override
public void querySpInfo(int state) {
mView.showDialog();
ManagerApiFactory.querySpInfo(Integer.parseInt(mAccountId)).subscribe(baseObserver(
spInfo -> {
mSpInfo = spInfo;
getOrderInfo(spInfo.getAccountType(), state);
}));
}
@Override
public void bargain(String price, OrderDetail order) {
mView.showDialog();
HashMap<String, Object> params = new HashMap<>();
params.put("companyId", order.getKaCompanyId());
params.put("kaOrderId", order.getId());
params.put("price", price);
params.put("result", 0);
params.put("spProviderId", mSpInfo.getId());
params.put("spProviderName", mSpInfo.getName());
params.put("spSiteId", mStation.getId());
params.put("spSiteName", mStation.getName());
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, (order.getId()));
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
EventBus.getDefault().post(new RefreshGrabEvent(1));
mView.dumpBack();
}));
}
@Override
public void receive(int id) {
ManagerApiFactory.receiveOrder(id, mStation.getId(), mStation.getName()).subscribe(baseObserver(aBoolean -> {
ToastUtils.showLongToast("接单成功");
mView.dumpBack();
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, id);
bundle.putInt(Constants.STATE, ManagerConstant.SEND_ORDER);
mView.startActivity(SendOrderDetailActivity.class, bundle);
Observable.timer(500, TimeUnit.MILLISECONDS).subscribe(l -> {
EventBus.getDefault().post(new ManagerReceiveEvent());
EventBus.getDefault().post(new DesignateEvent());
});
}));
}
@Override
public void getBargainPrice(int kaOrderId) {
ManagerApiFactory.getBargainPrice(mStationId, kaOrderId).subscribe(baseObserver(detail -> {
if (detail.getData() != null && detail.getData().size() > 0) {
price.set(detail.getData().get(0).getPrice() + "元");
}
}));
}
}
package com.dayu.managercenter.presenter.sendorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface SendOrderContract {
interface View extends BaseView {
void showEngineerDialog(List<String> list, OnOptionsSelectListener onOptionsSelectListener);
}
abstract class Presenter extends BaseListPresenter<View> {
/**
* 获取派单列表.
*/
public abstract void getSendOrder();
/**
* 指派工程师.
*/
public abstract void designate(int accountId,int id);
/**
* 获取工程师列表.
*/
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.sendorder;
import android.databinding.ObservableField;
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.data.Engineer;
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 SendOrderPresenter extends SendOrderContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
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 ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getSendOrder() {
ManagerApiFactory.getOrders(mPage, Constants.PAGESIZE, mId, 1).subscribe(
baseObserver(list -> datas.set(list)
, error -> datas.set(Constants.FAILED))
);
}
@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)));
}
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));
}
@Override
public void refresh() {
mPage = 1;
getSendOrder();
}
@Override
public void loadMore() {
getSendOrder();
}
}
package com.dayu.managercenter.presenter.servicestation;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.event.ServiceStation;
/**
* Created by luo on 2016/8/4.
*/
public interface ServiceStationContract {
interface View extends BaseView {
}
abstract class Presenter extends BaseListPresenter<View> {
/**
* 获取服务站列表.
*
* @param id
*/
public abstract void getStations(int id);
/**
* 切换服务站.
*/
public abstract void selectStation(ServiceStation station);
}
}
package com.dayu.managercenter.presenter.servicestation;
import android.databinding.ObservableField;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.ui.activity.ManagerActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.utils.AppManager;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ServiceStationPresenter extends ServiceStationContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mAccountId;
@Override
public void onAttached() {
mView.showDialog();
String accountId = UserManager.getInstance().getUser().getAccountId();
mAccountId = Integer.parseInt(accountId);
getStations(mAccountId);
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getStations(int id) {
ManagerApiFactory.getStations(id).subscribe(baseObserver(
serviceStation -> datas.set(serviceStation)
, error -> datas.set(Constants.FAILED)));
}
@Override
public void selectStation(ServiceStation station) {
ServiceStation last = StationManager.getInstance().getStation();
if (last != null && station.getId() == last.getId()) {
mView.dumpBack();
} else {
mView.showDialog();
StationManager.getInstance().svaeStation(station);
AppManager.getInstance().finishAllActivity();
if (UserManager.getInstance().getRole() == Constants.ENGINEER
|| UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
} else if (UserManager.getInstance().getRole() == Constants.MANAGER_NOSITE_ENGINEER
|| UserManager.getInstance().getRole() == Constants.MANAGER) {
mView.startActivity(ManagerActivity.class);
}
}
}
@Override
public void refresh() {
getStations(mAccountId);
}
}
package com.dayu.managercenter.presenter.subcribeorder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface SubcribeOrderContract {
interface View extends BaseView {
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BaseListPresenter<View> {
public abstract void getSubcribeOrder();
public abstract void refuse(int id);
public abstract void designate(int id, int accountId);
/**
* 获取工程师列表.
*/
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.subcribeorder;
import android.databinding.ObservableField;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R;
import com.dayu.managercenter.api.ManagerApiFactory;
import com.dayu.managercenter.data.Engineer;
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 SubcribeOrderPresenter extends SubcribeOrderContract.Presenter {
private ObservableField<Object> datas = new ObservableField<>();
private int mPage;
private int mId;
private String mName;
@Override
public void onAttached() {
ServiceStation station = StationManager.getInstance().getStation();
mName = UserManager.getInstance().getUser().getAccountName();
mId = station.getId();
}
@Override
public ObservableField<Object> getSourceDatas() {
return datas;
}
@Override
public void getSubcribeOrder() {
mView.showDialog();
ManagerApiFactory.getEuOrder(mPage, Constants.PAGESIZE, mId, 8, 5).subscribe(baseObserver(
orders -> datas.set(orders), error -> datas.set(Constants.FAILED)));
}
@Override
public void refuse(int id) {
mView.showDialog();
ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
mView.showToast("工单已拒绝");
refresh();
}));
}
@Override
public void designate(int accountId, int id) {
mView.showDialog();
ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.designate_success);
refresh();
}));
}
@Override
public void getEngineers(int id) {
mView.showDialog();
ManagerApiFactory.getEngineers(mId).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
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));
}
@Override
public void refresh() {
mPage = 1;
getSubcribeOrder();
}
@Override
public void loadMore() {
getSubcribeOrder();
}
}
package com.dayu.managercenter.presenter.subdetail;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import com.dayu.managercenter.data.OrderDetail;
import java.util.List;
/**
* Created by luo on 2016/8/4.
*/
public interface SubDetailContract {
interface View extends BaseView {
void getData(OrderDetail detail);
void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
}
abstract class Presenter extends BasePresenter<View> {
/**
* 获取工单详情.
*/
public abstract void getOrderInfo();
public abstract void refuse(int id);
public abstract void designate(int id, int accountId);
public abstract void getEngineers(int id);
}
}
package com.dayu.managercenter.presenter.subdetail;
import com.dayu.common.Constants;
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.provider.event.RefreshManagerEvent;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2017/11/8.
*/
public class SubDetailPresenter extends SubDetailContract.Presenter {
private int mId;
private String mName;
private Integer mSiteId;
@Override
public void onAttached() {
mId = mView.getBundle().getInt(Constants.ID);
mName = UserManager.getInstance().getUser().getAccountName();
mSiteId = UserManager.getInstance().getUser().getSiteId();
getOrderInfo();
}
@Override
public void getOrderInfo() {
mView.showDialog();
ManagerApiFactory.getOrderInfo(mId).subscribe(baseObserver(
orderDetail -> mView.getData(orderDetail)));
}
@Override
public void refuse(int id) {
mView.showDialog();
ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
mView.showToast("工单已拒绝");
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
mView.dumpBack();
}));
}
@Override
public void designate(int accountId,int id) {
mView.showDialog();
ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.designate_success);
EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
mView.dumpBack();
}));
}
@Override
public void getEngineers(int id) {
ManagerApiFactory.getEngineers(mSiteId).subscribe(baseObserver(
engineers -> showEngineerDialog(engineers, id)));
}
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.ui.activity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityChangeReasonBinding;
import com.dayu.managercenter.presenter.changereason.ChangeReasonContract;
import com.dayu.managercenter.presenter.changereason.ChangeReasonPresenter;
/**
* Created by luofan
* on 2017/11/8.
*/
public class ChangeReasonActivity extends BaseActivity<ChangeReasonPresenter, ActivityChangeReasonBinding>
implements ChangeReasonContract.View {
@Override
public int getLayoutId() {
return R.layout.activity_change_reason;
}
@Override
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void dumpToDetail() {
setResult(111);
finish();
}
}
package com.dayu.managercenter.ui.activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.Window;
import android.view.WindowManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.managercenter.R;
import com.dayu.managercenter.ui.fragment.ManagerFragment;
import com.dayu.provider.router.RouterPath;
/**
* Created by luofan
* on 2018/2/7.
*/
@Route(path = RouterPath.PATH_MANAGER)
public class ManagerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_manager);
initView();
}
public void initView() {
getSupportFragmentManager().beginTransaction()
.add(R.id.fl_content, ManagerFragment.newInstance())
.commit();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 不退出程序,进入后台
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
}
package com.dayu.managercenter.ui.activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityPicPreviewBinding;
import com.dayu.utils.GlideImageLoader;
import java.util.ArrayList;
/**
* 选中图片页面
* on 2016/12/2.
* Created by MrWang
*/
public class PreviewActivty extends DataBindingActivity<ActivityPicPreviewBinding> {
private MyPageAdapter adapter;
private Context mContext;
public ArrayList<String> mInfos = new ArrayList<>();
@Override
public int getLayoutId() {
return R.layout.activity_pic_preview;
}
@Override
public void initView() {
mContext = this;
mInfos = getIntent().getStringArrayListExtra(Constants.BUNDLE_KEY_ID);
adapter = new MyPageAdapter(mInfos);
mBind.vpPreview.setAdapter(adapter);
mBind.vpPreview.setCurrentItem(getIntent().getIntExtra(Constants.BUNDLE_KEY_ID, 0));
mBind.titileBack.setOnClickListener(o -> finish());
}
class MyPageAdapter extends PagerAdapter {
private ArrayList<String> listViews;
public MyPageAdapter(ArrayList<String> listViews) {
this.listViews = listViews;
}
public int getCount() {
return listViews.size();
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
GlideImageLoader.load(mContext, listViews.get(position), imageView);
container.addView(imageView);
return imageView;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
}
package com.dayu.managercenter.ui.activity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.event.ServiceStation;
import com.dayu.managercenter.R;
import com.dayu.managercenter.databinding.ActivityServiceStationBinding;
import com.dayu.managercenter.presenter.servicestation.ServiceStationContract;
import com.dayu.managercenter.presenter.servicestation.ServiceStationPresenter;
import com.dayu.provider.router.RouterPath;
/**
* Created by luofan
* on 2018/8/27.
*/
@Route(path = RouterPath.PATH_SERVICESTATION)
public class ServiceStationActivity extends BaseActivity<ServiceStationPresenter, ActivityServiceStationBinding> implements ServiceStationContract.View {
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.activity_service_station;
}
@Override
public void initView() {
if (getBundle() != null) {
int state = getBundle().getInt(Constants.STATE);
if (state == 1) {
mBind.toolbar.setNavigationIcon(R.drawable.back_btn_normal);
mBind.toolbar.setNavigationOnClickListener(v -> finish());
}
}
mBind.recyclerView.setOnItemClickListener((item, bind) ->
mPresenter.selectStation((ServiceStation) item));
}
}
package com.dayu.managercenter.ui.activity;
import android.content.Intent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.managercenter.R;
import com.dayu.managercenter.data.OrderDetail;
import com.dayu.managercenter.databinding.ActivitySubOrderDetailBinding;
import com.dayu.managercenter.presenter.subdetail.SubDetailContract;
import com.dayu.managercenter.presenter.subdetail.SubDetailPresenter;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsScreen;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan
* on 2018/9/3.
*/
public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, ActivitySubOrderDetailBinding> implements SubDetailContract.View {
private boolean mFlag;
private int mIvWeight;
@Override
public void setPresenter() {
}
@Override
public int getLayoutId() {
return R.layout.activity_sub_order_detail;
}
@Override
public void initView() {
mIvWeight = (UtilsScreen.getScreenWidth(mActivity) - UtilsScreen.dip2px(mActivity, 20)) / 5;
mBind.llPhoto.removeAllViews();
}
@Override
public void getData(OrderDetail detail) {
mBind.setItem(detail);
mBind.toolbar.setNavigationIcon(R.drawable.back_btn_normal);
mBind.toolbar.setNavigationOnClickListener(v -> finish());
mBind.tvLookMore.setOnClickListener(o -> lookMore());
mBind.orderRemark.post(() -> {
if (UIUtils.isOverFlowed(mBind.orderRemark)) {
mBind.tvLookMore.setVisibility(View.VISIBLE);
} else {
mBind.tvLookMore.setVisibility(View.GONE);
}
});
mBind.refuse.setOnClickListener(v -> mPresenter.refuse(detail.getId()));
mBind.designate.setOnClickListener(v -> mPresenter.getEngineers(detail.getId()));
initPhoto(detail.getAccessories(), mBind.llPhoto);
}
public void initPhoto(List<OrderDetail.accessories> list, LinearLayout layout) {
layout.removeAllViews();
ArrayList<String> pics = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
ImageView view = new ImageView(mActivity);
view.setLayoutParams(new RelativeLayout.LayoutParams(mIvWeight, mIvWeight));
view.setPadding(0, 0, 10, 0);
String path = list.get(i).getUrl();
pics.add(path);
GlideImageLoader.load(mActivity, path, view);
view.setOnClickListener(v -> dumpPic(pics));
layout.addView(view);
}
}
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);
}
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 void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
.setContentTextSize(18)
.setLineSpacingMultiplier(2.0f)
.build();
pvOptions.setPicker(list);
pvOptions.show();
}
}
package com.dayu.managercenter.ui.adapter;
import android.graphics.Color;
import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.view.View;
import com.dayu.base.ui.adapter.BaseViewHolder;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.managercenter.R;
import com.dayu.managercenter.data.GrabOrder;
import com.dayu.managercenter.databinding.ItemGrabBargainBinding;
import com.dayu.managercenter.presenter.graborder.GrabPresenter;
import com.dayu.utils.TimeUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsDate;
/**
* Created by luofan
* on 2018/8/29.
*/
public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBinding> {
private int state;
private int mSiteId;
public GrabOrderAdapter(boolean needFoot, int state) {
super(needFoot);
this.state = state;
mSiteId = UserManager.getInstance().getUser().getSiteId();
}
@Override
protected void onBind(ItemGrabBargainBinding holder, GrabOrder item, int position) {
String address = item.getProvinceName() + item.getCityName() +
item.getDistrictName() + item.getAddress();
holder.serverName.setText(item.getKaSpuName());
holder.companyName.setText(item.getCompanyName());
holder.grabAddress.setText(address);
holder.createTime.setText(item.getCreateTime());
if (state == 0) {
setTime(item.getAppointmentTime(), holder, position);
holder.leftTime.setVisibility(View.VISIBLE);
holder.tvBargin.setVisibility(View.VISIBLE);
holder.arrow.setVisibility(View.VISIBLE);
holder.orderState.setVisibility(View.GONE);
holder.tvGrapPrice.setVisibility(View.GONE);
holder.grapPrice.setVisibility(View.GONE);
holder.tvBargin.setText(UIUtils.getString(R.string.send_order_price_trim));
holder.barginPrice.setText("¥" + item.getPaymentPrice());
} else {
holder.leftTime.setVisibility(View.GONE);
holder.bargain.setVisibility(View.GONE);
holder.orderState.setVisibility(View.VISIBLE);
holder.tvGrapPrice.setVisibility(View.VISIBLE);
holder.grapPrice.setVisibility(View.VISIBLE);
holder.tvBargin.setText(UIUtils.getString(R.string.bao_price));
holder.tvGrapPrice.setText(UIUtils.getString(R.string.send_order_price));
holder.barginPrice.setText("¥" + item.getPrice());
holder.grapPrice.setText("¥" + item.getPaymentPrice());
if (item.getStatus() != null && item.getStatus() == 1) {
holder.orderState.setText(UIUtils.getString(R.string.wait_comform));
holder.receiveOrder.setVisibility(View.VISIBLE);
holder.arrow.setVisibility(View.VISIBLE);
} else if (item.getStatus() != null && item.getStatus() == 10) {
holder.orderState.setText(UIUtils.getString(R.string.order_cancle));
holder.receiveOrder.setVisibility(View.GONE);
holder.arrow.setVisibility(View.GONE);
} else if (item.getStatus() != null && item.getStatus() == 11) {
holder.orderState.setText(UIUtils.getString(R.string.out_of_date));
holder.receiveOrder.setVisibility(View.GONE);
holder.arrow.setVisibility(View.GONE);
} else if (item.getKaTypeStatus() != null && item.getKaTypeStatus() == 1
&& item.getProviderSiteId() != mSiteId && item.getStatus() == 1) {
holder.orderState.setText(UIUtils.getString(R.string.other_get));
holder.receiveOrder.setVisibility(View.GONE);
holder.arrow.setVisibility(View.GONE);
}
}
holder.bargain.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.bargain, this, position);
}
});
holder.receiveOrder.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.receiveOrder, this, position);
}
});
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
super.onViewRecycled(holder);
if (holder.mBind instanceof ItemGrabBargainBinding) {
CountDownTimer timer = (CountDownTimer) ((ItemGrabBargainBinding) holder.mBind).leftTime.getTag();
if (timer != null) {
timer.cancel();
}
timer = null;
}
}
private void setTime(String endTime, ItemGrabBargainBinding holder, int position) {
long time = UtilsDate.timeSub(endTime);
CountDownTimer timer = TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
@Override
public void onProcess(int day, int hour, int minute, int second) {
String str = UIUtils.getString(R.string.grab_time);
String result = String.format(str, day, hour, minute, second);
holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
}
@Override
public void onFinish() {
((GrabPresenter) mPresenter).getGrapOrders();
}
});
holder.leftTime.setTag(timer);
}
}
package com.dayu.managercenter.ui.adapter;
import android.text.TextUtils;
import android.view.View;
import android.widget.LinearLayout;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.managercenter.R;
import com.dayu.managercenter.common.ManagerConstant;
import com.dayu.managercenter.data.Order;
import com.dayu.managercenter.databinding.ItemManagerOrderBinding;
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/8/29.
*/
public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBinding> {
private int state;
public ManagerOrderAdapter(boolean needFoot, int state) {
super(needFoot);
this.state = state;
}
@Override
protected void onBind(ItemManagerOrderBinding holder, Order item, int position) {
String address = item.getProvinceName() + item.getCityName() +
item.getDistrictName() + item.getAddress();
holder.itemTextWeixiuLeixing.setText(item.getCategoryName());
holder.itemTextWeixiu.setText(item.getProviderName());
holder.tvOrderDetail.setText(item.getSpuName());
holder.itemTextDizhi.setText(address);
holder.tvOrderTime.setText(mContext.getString(R.string.have_appointment));
if (TextUtils.isEmpty(item.getSpuName())) {
holder.tvOrderDetail.setText(mContext.getString(R.string.no_server));
} else {
holder.tvOrderDetail.setText(item.getSpuName());
}
if (item.getCreatedSource() == 2 || item.getCreatedSource() == 3 || item.getCreatedSource() == 4) {
Order.SpusBean spu;
if (item.getSpus().size() == 0) {
return;
} else {
spu = item.getSpus().get(0);
}
if (TextUtils.isEmpty(spu.getKaSpuName())) {
holder.tvOrderDetail.setText(mContext.getString(R.string.no_server));
} else {
holder.tvOrderDetail.setText(spu.getKaSpuName());
}
holder.itemTextWeixiu.setText(spu.getProviderTypeName());
holder.itemTextWeixiuLeixing.setText(spu.getCategoryThreeName());
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);
}
holder.itemTextPhone.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.itemTextPhone, this, position);
}
});
holder.itemUpdataTime.setOnClickListener(v -> {
if (mOnChildClickListener != null) {
mOnChildClickListener.OnChildClick(holder.itemUpdataTime, this, position);
}
});
String time = item.getAppointmentTime();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
param.topMargin = 0;
holder.llWeixiu.setLayoutParams(param);
switch (state) {
case ManagerConstant.SEND_ORDER:
holder.itemTextPhone.setText(mContext.getString(R.string.designate));
holder.itemUpdataTime.setVisibility(View.GONE);
holder.orderLineOne.setVisibility(View.GONE);
holder.tvOrderDetail.setVisibility(View.VISIBLE);
break;
case ManagerConstant.Eu_ORDER:
param.topMargin = UIUtils.dp2px(10);
holder.llWeixiu.setLayoutParams(param);
holder.itemTextPhone.setText(mContext.getString(R.string.refuse));
holder.itemUpdataTime.setText(mContext.getString(R.string.designate));
holder.itemUpdataTime.setVisibility(View.VISIBLE);
holder.orderLineOne.setVisibility(View.VISIBLE);
holder.tvOrderDetail.setVisibility(View.GONE);
break;
case ManagerConstant.CHANGE_ORDER:
holder.itemTextPhone.setText(UIUtils.getString(R.string.change_engineer));
holder.itemUpdataTime.setVisibility(View.GONE);
holder.orderLineOne.setVisibility(View.GONE);
holder.tvOrderDetail.setVisibility(View.VISIBLE);
if (item.getStatus() == 2) {
time = item.getAppointmentTime();
holder.tvOrderTime.setText(mContext.getString(R.string.have_appointment));
} else if (item.getStatus() == 3) {
time = item.getConfirmDoorTime();
holder.tvOrderTime.setText(mContext.getString(R.string.tv_home_tab_one_subscribe_time));
}
break;
default:
break;
}
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);
}
}
}
package com.dayu.managercenter.ui.fragment;
import android.os.Bundle;
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.GrabOrder;
import com.dayu.managercenter.databinding.FragmentRecycleBinding;
import com.dayu.managercenter.presenter.bargainorder.BargainContract;
import com.dayu.managercenter.presenter.bargainorder.BargainPresenter;
import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
import com.dayu.managercenter.ui.adapter.GrabOrderAdapter;
import com.dayu.provider.event.ManagerReceiveEvent;
import com.dayu.provider.event.RefreshGrabEvent;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
/**
* Created by luofan
* on 2018/8/27.
*/
public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecycleBinding> implements BargainContract.View {
private int mSiteId;
public static BargainFragment newInstance() {
Bundle args = new Bundle();
BargainFragment fragment = new BargainFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.fragment_recycle;
}
@Override
protected void lazyLoad() {
mPresenter.getBargainOrders();
}
@Override
public void initView() {
mSiteId = UserManager.getInstance().getUser().getSiteId();
EventBus.getDefault().register(this);
GrabOrderAdapter adapter = new GrabOrderAdapter(true, 1);
adapter.setViewType(R.layout.item_grab_bargain);
mBind.recyclerView.setAdapter(adapter);
mBind.recyclerView.setOnItemClickListener((ite, bind) -> {
GrabOrder item = (GrabOrder) ite;
boolean flag = item.getKaTypeStatus() != null && item.getKaTypeStatus() == 1
&& item.getProviderSiteId() != mSiteId;
if ((item.getStatus() == 1 && !flag)) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ID, item.getId());
bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
startActivity(SendOrderDetailActivity.class, bundle);
}
});
adapter.setOnChildClickListener((view, adapter1, position) -> {
GrabOrder order = (GrabOrder) mBind.recyclerView.getDatas().get(position);
if (view.getId() == R.id.receive_order) {
showReceiveDialog(order);
}
});
}
@Override
public void showReceiveDialog(GrabOrder order) {
String s = UIUtils.getString(R.string.receive_notice);
String result = String.format(s, order.getCompanyName());
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, result
, (dialog, confirm) -> {
if (confirm) {
showDialog();
mPresenter.receive(order.getId());
}
});
customDialog.setTitle(getString(R.string.comform_receive_order))
.setPositiveButton(getString(R.string.comform_receive_order))
.setNegativeButton(getString(R.string.think_again))
.setNegativeButtonColor(R.color.default_editext_color);
customDialog.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(RefreshGrabEvent event) {
mPresenter.refresh();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void swtichfragment(ManagerReceiveEvent event) {
mPresenter.refresh();
}
}
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