Commit ae60479a by 罗翻

增加ordercenter和loctionlib

parent 279c9f45
Showing with 887 additions and 1198 deletions
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android {
......@@ -44,17 +42,18 @@ android {
release {
signingConfig android.signingConfigs.release
minifyEnabled true
shrinkResources true //是否清理无用资源,依赖于minifyEnabled
shrinkResources false //是否清理无用资源,依赖于minifyEnabled
zipAlignEnabled true //是否启用zipAlign压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig android.signingConfigs.release
minifyEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
//jni库的调用会到资源文件夹下libs里面找so文件
......@@ -63,11 +62,6 @@ android {
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
dataBinding {
enabled = true
......@@ -81,36 +75,31 @@ android {
}
}
greendao {
schemaVersion 2
daoPackage 'com.dayu.bigfish.greendao'
targetGenDir 'src/main/java'
}
repositories {
mavenCentral()
maven { url 'https://maven.google.com' }
flatDir{
dirs 'libs'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
//greendao数据库
compile 'org.greenrobot:greendao:3.2.0'
//日期选择器
compile 'com.contrarywind:Android-PickerView:3.2.7'
//jsbridge
compile 'com.github.lzyzsd:jsbridge:1.0.4'
annotationProcessor project(':apt')
compile project(':annotation_lib')
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
compile project(':provider')
if (isMessageModule.toBoolean()) {
compile project(':messageCenter')
}
if (isUserModule.toBoolean()) {
compile project(':userCenter')
}
if (isOrderModule.toBoolean()) {
compile project(':orderCenter')
}
// compile(name: 'provider-debug', ext: 'aar')
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
}
......@@ -113,9 +113,9 @@
#-------------------------------------------定制化区域----------------------------------------------
#---------------------------------1.实体类---------------------------------
-keep class com.dayu.bigfish.bean.** { *; }
-keep class com.dayu.bigfish.base.** { *; }
#TODO
#-keep class com.dayu.bigfish.bean.** { *; }
#-keep class com.dayu.bigfish.base.** { *; }
#-------------------------------------------------------------------------
......@@ -231,13 +231,19 @@ public static final int *;
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
-keep class * implements com.alibaba.android.arouter.facade.template.IProvider
#---------------------------------3.与js互相调用的类------------------------
#---------------------------------4.反射相关的类和方法-----------------------
#-dontwarn com.alibaba.**
#-ignorewarnings
......
......@@ -119,96 +119,18 @@
android:name=".InitializeActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.LoginActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name=".ui.ReceivingActivity"
android:screenOrientation="portrait"
android:theme="@style/Transparent" />
<activity
android:name=".ui.OrderRecordActivity"
android:screenOrientation="portrait"
android:theme="@style/Transparent" />
<activity
android:name=".ui.SettingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.SubcribeTimeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.OrderDetailsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.ProcessOrderActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name=".ui.PreviewActivty"
android:screenOrientation="portrait" />
<activity
android:name=".ui.AboutUsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.CommonSubmiteActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.AccountBalanceActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.WithdrawalsActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.AgreementActivity"
android:name=".ui.FeedBackActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.message.ui.activity.MessageDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.SopWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.PersonInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.ModifyPersonInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.usercenter.ui.activity.MyHeaderIvActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.ServerInstructionActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.WebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.KaAddressActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.ReturnPartActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.LogisticsInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.QrCodeActivity"
android:screenOrientation="portrait" />
<service android:name="com.dayu.base.api.DownloadService" />
<receiver android:name=".utils.NetworkConnectChangedReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
</application>
......
......@@ -15,7 +15,7 @@ import android.widget.Toast;
import com.dayu.usercenter.ui.activity.LoginActivity;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.utils.MPermissionUtils;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.umeng.analytics.MobclickAgent;
......
......@@ -8,12 +8,12 @@ import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Handler;
import com.dayu.bigfish.greendao.GreenDaoManager;
import com.dayu.bigfish.utils.LocationUtils;
import com.dayu.bigfish.utils.NetworkConnectChangedReceiver;
import com.dayu.bigfish.utils.managers.HxManager;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants;
import com.dayu.location.base.LocationUtils;
import com.dayu.order.greendao.GreenDaoManager;
import com.dayu.utils.NetworkConnectChangedReceiver;
import com.umeng.analytics.MobclickAgent;
import com.umeng.analytics.MobclickAgent.EScenarioType;
import com.umeng.commonsdk.UMConfigure;
......
......@@ -3,15 +3,6 @@ package com.dayu.bigfish.api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.bigfish.bean.ErrorOrder;
import com.dayu.bigfish.bean.KaAddress;
import com.dayu.bigfish.bean.LogsticsInfo;
import com.dayu.bigfish.bean.Order;
import com.dayu.bigfish.bean.OrderDetail;
import com.dayu.bigfish.bean.OrderPart;
import com.dayu.bigfish.bean.ServerInstruction;
import com.dayu.bigfish.bean.ShipperCompany;
import com.dayu.bigfish.bean.Tab;
import com.dayu.bigfish.bean.VersionInfo;
import com.dayu.common.Constants;
import com.dayu.message.data.protocol.NewMessage;
......@@ -26,7 +17,6 @@ import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
......@@ -65,85 +55,6 @@ public interface APIService {
@GET(Constants.UPGRADE_VERSION)
Observable<BaseResponse<VersionInfo>> getVersionInfo(@Query("appId") String appId, @Query("versionCode") String versionCode);
/**
* 获取异常订单列表.
*
* @param siteId
* @return
*/
@GET(Constants.ERROR_ORDER)
Observable<BaseResponse<List<ErrorOrder>>> getErrorOrders(@Query("engineerId") int userId, @Query("siteId") int siteId);
/**
* 工程师接单
*
* @param orderId
* @param engineerId
* @return
*/
@GET(Constants.ORDER_RECEIVING)
Observable<BaseResponse<Boolean>> receiveOrder(@Path("orderId") int orderId,
@Path("engineerId") int engineerId);
/**
* 预约上门时间.
*
* @param orderId
* @param doorTime
* @param doorComment
* @return
*/
@POST(Constants.SUBCRIBE_TIME)
Observable<BaseResponse<Boolean>> subcriceTime(@Query("orderId") int orderId,
@Query("doorTime") String doorTime,
@Query("doorComment") String doorComment);
/**
* 我已出发.
*
* @param body
* @return
*/
@POST(Constants.START_ORDER)
Observable<BaseResponse<Integer>> startOrder(@Body RequestBody body);
/**
* 开始服务.
*
* @param body
* @return
*/
@POST(Constants.START_SERVE)
Observable<BaseResponse<Integer>> startServer(@Body RequestBody body);
/**
* 获取工单详情信息.
*
* @param orderId
* @return
*/
@GET(Constants.ORDER_DETAILS)
Observable<BaseResponse<OrderDetail>> getOrderInfo(@Path("orderId") int orderId);
/**
* 提交工单.
*
* @param orderInfo
* @return
*/
@POST(Constants.ORDER_FINISH)
Observable<BaseResponse<Integer>> commitOrder(@Body RequestBody orderInfo);
/**
* 单表查询工单记录.
*
* @param id
* @return
*/
@GET(Constants.SELECT_ORDER_LITTLE)
Observable<BaseResponse<OrderDetail>> queryOrderInfo(@Path("id") int id);
/**
* 意见反馈.
*
......@@ -153,32 +64,6 @@ public interface APIService {
@POST(Constants.SET_IDEA_COMMIT)
Observable<BaseResponse<Boolean>> postFeedBack(@Body RequestBody body);
/**
* 获取工单记录列表.
*
* @param state
* @param engineerId
* @param siteId
* @param page
* @param pageSize
* @return
*/
@GET(Constants.ORDERS)
Observable<BaseResponse<BasePageBean<Order>>> getOrders(@Query("state") int state,
@Query("engineerId") int engineerId,
@Query("siteId") int siteId,
@Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 获取tab数量.
*
* @param userId
* @return
*/
@GET(Constants.TAB_NUM)
Observable<BaseResponse<Tab>> getTabNum(@Path("userId") int userId, @Path("siteId") int siteId);
/**
* 获取环信信息.
......@@ -226,124 +111,6 @@ public interface APIService {
Observable<BaseResponse<List<String>>> uploadPhoto(
@Part MultipartBody.Part part);
/**
* 获取服务说明.
*
* @param id
* @return
*/
@GET(Constants.ORDER_INSTRUCTION)
Observable<BaseResponse<BasePageBean<ServerInstruction>>> getInstruction(@Query("kaSpuId") long id, @Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 获取厂商收货地址.
*
* @param companyId
* @return
*/
@GET(Constants.KA_ADDRESS)
Observable<BaseResponse<KaAddress>> getKaAddress(@Path("companyId") int companyId);
/**
* 申请备件.
*
* @param spOrderId
* @param spComment
* @param createBy
* @return
*/
@POST(Constants.APPLY_ONE_PART)
Observable<BaseResponse<Boolean>> applyPart(@Query("spOrderId") long spOrderId,
@Query("spComment") String spComment,
@Query("createBy") String createBy,
@Query("accountId") long accountId);
/**
* 取消申请备件.
*
* @param partsId
* @param modifyBy
* @return
*/
@PUT(Constants.CANCLE_APPLY_PART)
Observable<BaseResponse<Boolean>> cancleApply(@Query("partsId") int partsId,
@Query("modifyBy") String modifyBy);
/**
* sp主动寄回备件.
*
* @param body
* @return
*/
@POST(Constants.RETURN_PART_SELF)
Observable<BaseResponse<Boolean>> returnPartSelf(@Body RequestBody body);
/**
* sp按ka要求寄回备件.
*
* @param body
* @return
*/
@PUT(Constants.RETURN_PART_BY_KA)
Observable<BaseResponse<Boolean>> returnPartByKA(@Body RequestBody body);
/**
* 收到备件.
*
* @param partsId
* @param modifyBy
* @return
*/
@PUT(Constants.RECEIVE_PART)
Observable<BaseResponse<Boolean>> receivePart(@Query("partsId") int partsId,
@Query("modifyBy") String modifyBy);
/**
* 拒绝申请备件.
*
* @param kaOrderSparePartsId
* @param reason
* @return
*/
@POST(Constants.REFUSE_ONE_PART)
Observable<BaseResponse<Boolean>> refusePart(@Query("kaOrderSparePartsId") long kaOrderSparePartsId,
@Query("reason") String reason);
/**
* 获取备件列表.
*
* @param spOrderId
* @param sources
* @return
*/
@GET(Constants.QUERY_PART_LIST)
Observable<BaseResponse<List<OrderPart>>> queryPart(@Query("spOrderId") long spOrderId, @Query("sources") int sources);
/**
* 修改备件信息.
*
* @param body
* @return
*/
@PUT(Constants.MODIFY_PART)
Observable<BaseResponse<Boolean>> modifyPart(@Body RequestBody body);
/**
* 查询物流信息.
*
* @return
*/
@GET(Constants.QUERY_LOGISTICS_INFO)
Observable<BaseResponse<LogsticsInfo>> queryLogistics(@Query("com") String com, @Query("num") String num);
/**
* 查询物流公司.
*
* @return
*/
@GET(Constants.QUERY_SHIPPER_COMPANY)
Observable<BaseResponse<List<ShipperCompany>>> queryShipperCompany();
@Streaming
@GET
......
package com.dayu.bigfish.api;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.bigfish.bean.ErrorOrder;
import com.dayu.bigfish.bean.KaAddress;
import com.dayu.bigfish.bean.LogsticsInfo;
import com.dayu.bigfish.bean.Order;
import com.dayu.bigfish.bean.OrderDetail;
import com.dayu.bigfish.bean.OrderPart;
import com.dayu.bigfish.bean.ServerInstruction;
import com.dayu.bigfish.bean.ShipperCompany;
import com.dayu.bigfish.bean.Tab;
import com.dayu.bigfish.bean.VersionInfo;
import com.dayu.message.data.protocol.NewMessage;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
......@@ -40,120 +26,12 @@ public class ApiFactory {
return Api.getService(APIService.class).getVersionInfo(appId, versionCode).compose(Api.applySchedulers());
}
public static Observable<List<ErrorOrder>> getErrorOrders(int userId, int siteId) {
return Api.getService(APIService.class).getErrorOrders(userId, siteId).compose(Api.applySchedulers());
}
public static Observable<Boolean> receiveOrder(int orderId, int engineerId) {
return Api.getService(APIService.class).receiveOrder(orderId, engineerId).compose(Api.applySchedulers());
}
public static Observable<Boolean> subcriceTime(int orderId, String doorTime, String doorComment) {
return Api.getService(APIService.class).subcriceTime(orderId, doorTime, doorComment).compose(Api.applySchedulers());
}
public static Observable<Integer> startOrder(RequestBody body) {
return Api.getService(APIService.class).startOrder(body).compose(Api.applySchedulers());
}
public static Observable<Integer> startServer(RequestBody body) {
return Api.getService(APIService.class).startServer(body).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> getOrderInfo(int orderId) {
return Api.getService(APIService.class).getOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<Integer> commitOrder(RequestBody orderInfo) {
return Api.getService(APIService.class).commitOrder(orderInfo).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> queryOrderInfo(int orderId) {
return Api.getService(APIService.class).queryOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<Boolean> postFeedBack(RequestBody body) {
return Api.getService(APIService.class).postFeedBack(body).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getOrders(int state, int engineerId, int siteId, int page, int pageSize) {
return Api.getService(APIService.class).getOrders(state, engineerId, siteId, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Tab> getTabNum(int userId, int siteId) {
return Api.getService(APIService.class).getTabNum(userId, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<NewMessage>> getHxMessage(String hxAccount, int category, int page, int pageSize) {
return Api.getService(APIService.class).getHxMessage(hxAccount, category, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Integer> getHxNum(String hxAccount) {
return Api.getService(APIService.class).getHxNum(hxAccount).compose(Api.applySchedulers());
}
public static Observable<List<String>> uploadPhoto(MultipartBody.Part[] partMap) {
return Api.getService(APIService.class).uploadPhoto(partMap).compose(Api.applySchedulers());
}
public static Observable<List<String>> uploadPhoto(MultipartBody.Part part) {
return Api.getService(APIService.class).uploadPhoto(part).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<ServerInstruction>> getInstruction(long id, int page, int pageSize) {
return Api.getService(APIService.class).getInstruction(id, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<KaAddress> getKaAddress(int companyId) {
return Api.getService(APIService.class).getKaAddress(companyId).compose(Api.applySchedulers());
}
public static Observable<Boolean> applyPart(long spOrderId, String spComment, String createBy, long accountId) {
return Api.getService(APIService.class).applyPart(spOrderId, spComment, createBy, accountId).compose(Api.applySchedulers());
}
public static Observable<Boolean> cancleApply(int partsId, String modifyBy) {
return Api.getService(APIService.class).cancleApply(partsId, modifyBy).compose(Api.applySchedulers());
}
public static Observable<Boolean> returnPartSelf(RequestBody body) {
return Api.getService(APIService.class).returnPartSelf(body).compose(Api.applySchedulers());
}
public static Observable<Boolean> returnPartByKA(RequestBody body) {
return Api.getService(APIService.class).returnPartByKA(body).compose(Api.applySchedulers());
}
public static Observable<Boolean> receivePart(int partsId, String modifyBy) {
return Api.getService(APIService.class).receivePart(partsId, modifyBy).compose(Api.applySchedulers());
}
public static Observable<Boolean> refusePart(long kaOrderSparePartsId, String reason) {
return Api.getService(APIService.class).refusePart(kaOrderSparePartsId, reason).compose(Api.applySchedulers());
}
public static Observable<List<OrderPart>> queryPart(long spOrderId, int sources) {
return Api.getService(APIService.class).queryPart(spOrderId, sources).compose(Api.applySchedulers());
}
public static Observable<Boolean> modifyPart(RequestBody body) {
return Api.getService(APIService.class).modifyPart(body).compose(Api.applySchedulers());
}
public static Observable<LogsticsInfo> queryLogistics(String com, String num) {
return Api.getService(APIService.class).queryLogistics(com, num).compose(Api.applySchedulers());
}
public static Observable<List<ShipperCompany>> queryShipperCompany() {
return Api.getService(APIService.class).queryShipperCompany().compose(Api.applySchedulers());
}
}
package com.dayu.bigfish.bean;
/**
* Created by luofan on 2017/11/14.
*/
public class AlipayInfo {
/**
* id : 2
* accountId : 454
* alipayAccount : guj
* alipayName : chj
* alipayMobile : 13567810832
* createTime : 2017-11-02 10:06:36
* updateTime : 2017-11-02 11:02:19
*/
private int id;
private int accountId;
private String alipayAccount;
private String alipayName;
private String alipayMobile;
private String createTime;
private String updateTime;
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 String getAlipayAccount() {
return alipayAccount;
}
public void setAlipayAccount(String alipayAccount) {
this.alipayAccount = alipayAccount;
}
public String getAlipayName() {
return alipayName;
}
public void setAlipayName(String alipayName) {
this.alipayName = alipayName;
}
public String getAlipayMobile() {
return alipayMobile;
}
public void setAlipayMobile(String alipayMobile) {
this.alipayMobile = alipayMobile;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}
package com.dayu.bigfish.presenter.feedBack;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
* on 2016/8/4.
*/
public interface FeedBackContract {
interface View extends BaseView {
}
abstract class Presenter extends BasePresenter<View> {
public abstract void commite();
/**
* 提交反馈意见.
*/
public abstract void comFirmSuggist();
}
}
package com.dayu.bigfish.presenter.feedBack;
import android.databinding.ObservableField;
import android.text.TextUtils;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsUserAccountMatcher;
import org.json.JSONObject;
import java.util.HashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
public class FeedBackPresenter extends FeedBackContract.Presenter {
private String mUserName;
private String mUserMobile;
public ObservableField<String> mComment = new ObservableField<>();
public ObservableField<String> mTitle = new ObservableField<>();
public ObservableField<String> mHint = new ObservableField<>();
@Override
public void onAttached() {
mUserName = UserManager.getInstance().getUser().getAccountName();
mUserMobile = UserManager.getInstance().getUserPhone();
mHint.set(UIUtils.getString(R.string.tv_idea_text_hint));
mTitle.set(UIUtils.getString(R.string.tv_idea));
}
@Override
public void commite() {
if (TextUtils.isEmpty(mComment.get())) {
mView.showToast(R.string.input_content);
return;
}
if (UtilsUserAccountMatcher.containsEmoji(mComment.get())) {
ToastUtils.showShortToast(R.string.no_emoij);
return;
}
comFirmSuggist();
}
@Override
public void comFirmSuggist() {
HashMap<String, Object> params = new HashMap<>();
params.put("comment", mComment.get());
params.put("created", mUserName);
params.put("deal", 2);
params.put("mobile", mUserMobile);
params.put("platform", 1);
params.put("status", 1);
params.put("suggestName", mUserName);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ApiFactory.postFeedBack(body).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.commite_success);
mView.dumpBack();
}));
}
}
package com.dayu.bigfish.presenter.homefirsttab;
import com.app.annotation.apt.InstanceFactory;
/**
* Created by luofan on 2017/11/8.
*/
@InstanceFactory
public class HomeFirstPresenter extends HomeFirstContract.Presenter {
@Override
......
......@@ -2,12 +2,12 @@ package com.dayu.bigfish.presenter.main;
import android.databinding.ObservableField;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.bigfish.utils.AppUtils;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.utils.AppUtils;
import com.dayu.utils.SPUtils;
import com.dayu.utils.UserManager;
......@@ -21,7 +21,6 @@ import okhttp3.RequestBody;
* Created by luofan
* on 2017/11/8.
*/
@InstanceFactory
public class MainPresenter extends MainContract.Presenter {
/**
* 待接单数目.
......@@ -83,14 +82,14 @@ public class MainPresenter extends MainContract.Presenter {
@Override
public void getReceiveOrder(int state, int userId, int siteId, int pagerId, int pagerSize) {
ApiFactory.getOrders(state, userId, siteId, pagerId, pagerSize).subscribe(baseObserver(
OrderApiFactory.getOrders(state, userId, siteId, pagerId, pagerSize).subscribe(baseObserver(
orders -> tabRecive.set(orders.getTotalRows() + "")));
}
@Override
public void getHxNum(String accountId) {
ApiFactory.getHxNum(accountId).subscribe(baseObserver(integer -> {
if (integer.intValue() > 0) {
if (integer > 0) {
mView.isShowRedIcon(true);
}
}));
......
......@@ -7,17 +7,17 @@ import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.event.UserInfo;
import com.dayu.bigfish.ui.AboutUsActivity;
import com.dayu.bigfish.ui.CommonSubmiteActivity;
import com.dayu.bigfish.ui.FeedBackActivity;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.usercenter.ui.activity.LoginActivity;
import com.dayu.bigfish.utils.AppUtils;
import com.dayu.bigfish.utils.DataCleanManager;
import com.dayu.utils.AppManager;
import com.dayu.utils.AppUtils;
import com.dayu.utils.DataCleanManager;
import com.dayu.utils.SPUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
......@@ -33,7 +33,6 @@ import io.reactivex.Observable;
* Created by luofan
* on 2017/11/8.
*/
@InstanceFactory
public class SettingPresenter extends SettingContract.Presenter {
public ObservableBoolean buttonState = new ObservableBoolean();
private String mHxAccount;
......@@ -92,7 +91,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void exite() {
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
MyApplication.getAppContext().exiteAllActivity();
AppManager.getInstance().finishAllActivity();
mView.startActivity(LoginActivity.class);
MobclickAgent.onEvent(MyApplication.getContext(), "login_out");
}
......@@ -138,7 +137,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void dumpToFeed() {
Bundle bundle = new Bundle();
bundle.putInt(Constants.TYPE, Constants.FEED_BACK);
mView.startActivity(CommonSubmiteActivity.class, bundle);
mView.startActivity(FeedBackActivity.class, bundle);
MobclickAgent.onEvent(MyApplication.getContext(), "feed_back");
}
......
package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.databinding.ActivityFeedbackBinding;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmiteContract;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmitePresenter;
import com.dayu.bigfish.presenter.feedBack.FeedBackContract;
import com.dayu.bigfish.presenter.feedBack.FeedBackPresenter;
/**
* Created by luofan
* on 2017/11/8.
*/
public class CommonSubmiteActivity extends BaseActivity<CommonSubmitePresenter, ActivityFeedbackBinding>
implements CommonSubmiteContract.View {
public class FeedBackActivity extends BaseActivity<FeedBackPresenter, ActivityFeedbackBinding>
implements FeedBackContract.View {
@Override
public int getLayoutId() {
......
......@@ -16,28 +16,29 @@ import android.view.View;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.api.DownloadService;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.BuildConfig;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.base.api.DownloadService;
import com.dayu.bigfish.bean.InformBean;
import com.dayu.bigfish.bean.VersionInfo;
import com.dayu.event.DownloadBean;
import com.dayu.bigfish.bean.event.RefreshReceivingNum;
import com.dayu.bigfish.bean.event.SwtichFragment;
import com.dayu.bigfish.databinding.ActivityMainBinding;
import com.dayu.bigfish.presenter.main.MainContract;
import com.dayu.bigfish.presenter.main.MainPresenter;
import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment;
import com.dayu.common.Constants;
import com.dayu.event.DownloadBean;
import com.dayu.event.RefreshReceivingNum;
import com.dayu.location.base.LocationUtils;
import com.dayu.message.ui.fragment.HomeMessageFragment;
import com.dayu.bigfish.ui.fragment.HomeOrderFragment;
import com.dayu.order.event.SwtichFragment;
import com.dayu.order.ui.activity.ReceivingActivity;
import com.dayu.order.ui.fragment.HomeOrderFragment;
import com.dayu.provider.router.BaseRouterPath;
import com.dayu.usercenter.ui.fragment.HomePersonFragment;
import com.dayu.provider.router.RouterPath;
import com.dayu.widgets.listener.onDownloadListener;
import com.dayu.bigfish.utils.LocationUtils;
import com.dayu.common.Constants;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener;
import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
......@@ -50,7 +51,7 @@ import java.io.File;
* Created by luofan
* on 2017/11/20.
*/
@Route(path = RouterPath.PATH_MAIN)
@Route(path = BaseRouterPath.PATH_MAIN)
public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBinding> implements MainContract.View {
private int mPosition = 0;
private FragmentManager mFragmentManger;
......
......@@ -6,7 +6,7 @@ import com.dayu.bigfish.R;
import com.dayu.bigfish.databinding.ActivitySettingBinding;
import com.dayu.bigfish.presenter.setting.SettingContract;
import com.dayu.bigfish.presenter.setting.SettingPresenter;
import com.dayu.provider.router.RouterPath;
import com.dayu.provider.router.BaseRouterPath;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener;
......@@ -14,7 +14,7 @@ import com.dayu.widgets.listener.OnCloseListener;
* 设置页面
* 2017/9/2.
*/
@Route(path = RouterPath.PATH_SETTING)
@Route(path = BaseRouterPath.PATH_SETTING)
public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySettingBinding>
implements SettingContract.View {
......
package com.dayu.bigfish.utils;
import android.util.Base64;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* AES加解密的工具,主要用来解密导航文件
*/
public class AESTool {
public final String KEY_ALGORITHM = "AES";
public final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";
public AESTool() {
}
private Key toKey(byte[] key) throws Exception {
SecretKey secretKey = new SecretKeySpec(key, KEY_ALGORITHM);
return secretKey;
}
public byte[] encrypt(byte[] data, byte[] key) throws Exception {
Key k = toKey(key);
Cipher cipher;
try {
cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, k);
byte[] cryptograph = cipher.doFinal(data);
return Base64.encode(data, Base64.DEFAULT);
} catch (NoSuchAlgorithmException e) {
throw new Exception("15", e);
} catch (NoSuchPaddingException e) {
throw new Exception("15", e);
} catch (InvalidKeyException e) {
throw new Exception("15", e);
} catch (IllegalBlockSizeException e) {
throw new Exception("15", e);
} catch (BadPaddingException e) {
throw new Exception("15", e);
}
}
public byte[] decrypt(byte[] data, byte[] key) throws Exception {
Key k = toKey(key);
Cipher cipher = null;
try {
cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, k);
return cipher.doFinal(Base64.decode(data, Base64.DEFAULT));
} catch (NoSuchAlgorithmException e) {
throw new Exception("5", e);
} catch (NoSuchPaddingException e) {
throw new Exception("5", e);
} catch (InvalidKeyException e) {
throw new Exception("5", e);
} catch (IllegalBlockSizeException e) {
throw new Exception("5", e);
} catch (BadPaddingException e) {
throw new Exception("5", e);
}
}
/**
* 输入流进行加密并保存到输出流
*
* @param salt (密钥),需要通过MD5Tool.getMD5Str("字符密钥")转换为字节数组
* @param is 输入流
* @param out 输出流
* @throws Exception
*/
public void encryptFile(byte[] salt, InputStream is, OutputStream out)
throws Exception {
CipherInputStream cis = null;
try {
Key k = toKey(salt);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, k);
cis = new CipherInputStream(is, cipher);
byte[] buffer = new byte[1024];
int r;
while ((r = cis.read(buffer)) > 0) {
out.write(buffer, 0, r);
}
} catch (Exception e) {
throw e;
} finally {
if (cis != null) {
cis.close();
}
}
}
/**
* 输入流进行解密并保存到输出流
*
* @param salt(密钥),需要通过MD5Tool.getMD5Str("字符密钥")转换为字节数组
* @param is 输入流
* @param out 输出流
* @throws Exception
*/
public void decryptFile(byte[] salt, InputStream is, OutputStream out) throws Exception {
CipherOutputStream cos = null;
try {
Key k = toKey(salt);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, k);
cos = new CipherOutputStream(out, cipher);
byte[] buffer = new byte[1024];
int r;
while ((r = is.read(buffer)) >= 0) {
cos.write(buffer, 0, r);
}
} catch (Exception e) {
throw e;
} finally {
if (cos != null) {
cos.close();
}
}
}
/**
* 文件file进行加密并保存目标文件destFile中
*
* @param salt(密钥),需要通过MD5Tool.getMD5Str("字符密钥")转换为字节数组
* @param file 待转换文件路径
* @param destFile 转换后文件路径
* @throws Exception
*/
public void encryptFile(byte[] salt, String file, String destFile)
throws Exception {
InputStream is = null;
OutputStream out = null;
CipherInputStream cis = null;
try {
Key k = toKey(salt);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, k);
is = new FileInputStream(file);
out = new FileOutputStream(destFile);
cis = new CipherInputStream(is, cipher);
byte[] buffer = new byte[1024];
//全部加密
int r;
while ((r = cis.read(buffer)) > 0) {
out.write(buffer, 0, r);
}
} catch (Exception e) {
throw e;
} finally {
if (cis != null) {
cis.close();
}
if (is != null) {
is.close();
}
if (out != null) {
out.close();
}
}
}
/**
* 文件采用AES算法解密文件
*
* @param salt(密钥),需要通过MD5Tool.getMD5Str("字符密钥")转换为字节数组
* @param file 待解密文件路径
* @param dest 解密后文件路径
* @throws Exception
*/
public void decryptFile(byte[] salt, String file, String dest) throws Exception {
InputStream is = null;
OutputStream out = null;
CipherOutputStream cos = null;
try {
Key k = toKey(salt);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, k);
is = new FileInputStream(file);
out = new FileOutputStream(dest);
cos = new CipherOutputStream(out, cipher);
byte[] buffer = new byte[1024];
int r;
while ((r = is.read(buffer)) >= 0) {
cos.write(buffer, 0, r);
}
} catch (Exception e) {
throw e;
} finally {
if (cos != null) {
cos.close();
}
if (out != null) {
out.close();
}
if (is != null) {
is.close();
}
}
}
public static void main(String[] args) {
AESTool t = new AESTool();
byte[] b = new byte[0];
try {
b = t.encrypt
("{\"searchText\":\"广告\"}".getBytes(),
"dyfewfwefwefwefewfweffwessssssss".getBytes());
} catch (Exception e) {
e.printStackTrace();
}
String s = new String(b);
System.out.println(s);
/*byte[] b2=t.decrypt(s.getBytes(), "dyfewfwefwefwefewfweffwe".getBytes());
String s2 = new String(b2);
System.out.println(s2);
s="LZvVzaoZ55wP6jwLWhGF6N9vAQ1Aak4Dm4zdeXXjVkk=";
b2=t.decrypt(s.getBytes(), "dyfewfwefwefwefewfweffwe".getBytes());
s2 = new String(b2);
System.out.println(s2);*/
}
}
package com.dayu.bigfish.utils;
import android.support.v7.util.DiffUtil;
import com.dayu.bigfish.bean.Order;
import java.util.List;
/**
* Created by luofan on 2017/12/24.
*/
public class DiffCallBack<M> extends DiffUtil.Callback {
private List<M> mOldDatas;
private List<M> mNewDatas;
public DiffCallBack(List<M> olddatas, List<M> newDatas) {
this.mOldDatas = olddatas;
this.mNewDatas = newDatas;
}
@Override
public int getOldListSize() {
return mOldDatas != null ? mOldDatas.size() : 0;
}
@Override
public int getNewListSize() {
return mNewDatas != null ? mNewDatas.size() : 0;
}
@Override
public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
if (mNewDatas.get(0) instanceof Order) {
return ((Order) mOldDatas.get(oldItemPosition)).getId() == ((Order) mNewDatas.get(oldItemPosition)).getId();
} else {
return false;
}
}
@Override
public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
if (mNewDatas.get(0) instanceof Order) {
return ((Order) mOldDatas.get(oldItemPosition)).getId() == ((Order) mNewDatas.get(oldItemPosition)).getId();
} else {
return false;
}
}
}
package com.dayu.bigfish.utils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;
/**
* 解压缩的工具类,主要解压被服务器压缩过的资源
*/
public class JSONDateZip {
public static byte[] unzip(byte[] buf) throws Exception {
ByteArrayOutputStream output = null;
try {
Inflater inflater = new Inflater();
inflater.setInput(buf, 0, buf.length);
output = new ByteArrayOutputStream();
byte[] result = new byte[1024];
int size = -1;
while (size != 0) {
size = inflater.inflate(result, 0, result.length);
output.write(result, 0, size);
}
inflater.end();
result = output.toByteArray();
return result;
} catch (Exception e) {
throw new Exception(e);
} finally {
try {
if (output != null) {
output.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static byte[] zip(byte[] input) throws Exception {
ByteArrayOutputStream output = null;
try {
Deflater deflater = new Deflater();
deflater.setInput(input);
deflater.finish();
output = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
while (!deflater.finished()) {
int byteCount = deflater.deflate(buf);
output.write(buf, 0, byteCount);
}
deflater.end();
return output.toByteArray();
} catch (Exception e) {
throw new Exception(e);
} finally {
try {
if (output != null) {
output.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String args[]) {
}
}
package com.dayu.bigfish.utils.managers;
import android.util.LruCache;
/**
* Created by luofan on 2017/11/24.
*/
public class MemoryCacheManager {
private static class Holder {
public static final MemoryCacheManager instance = new MemoryCacheManager();
}
public static MemoryCacheManager getInstance() {
return Holder.instance;
}
private MemoryCacheManager() {
}
final static int cacheSize = (int) (Runtime.getRuntime().maxMemory() / 1024) / 8;
static LruCache<String, Object> mMemoryCache = new LruCache<String, Object>(
cacheSize);
public static void add(String key, Object mObject) {
mMemoryCache.put(key, mObject);
}
public static Object get(String key) {
return mMemoryCache.get(key);
}
}
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360">
<shape
android:innerRadiusRatio="2.5"
android:shape="ring"
android:thicknessRatio="10"
android:useLevel="false">
<gradient
android:centerColor="?attr/colorPrimary"
android:centerY="0.50"
android:endColor="?attr/colorWhite"
android:startColor="?attr/colorPrimaryDark"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
\ No newline at end of file
......@@ -6,7 +6,7 @@
<variable
name="presenter"
type="com.dayu.bigfish.presenter.commonSubmite.CommonSubmitePresenter" />
type="com.dayu.bigfish.presenter.feedBack.FeedBackPresenter" />
</data>
<LinearLayout
......
......@@ -7,11 +7,6 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
<declare-styleable name="CircleHead">
<attr name="circleBorderHeadWidth" format="dimension"/>
<attr name="ringHeadColor" format="color"/>
......
......@@ -17,7 +17,7 @@ android {
buildTypes {
release {
minifyEnabled true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
......@@ -52,5 +52,13 @@ dependencies {
compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
//ARouter
compile "com.alibaba:arouter-api:$arouter_api_version"
implementation files('libs/hyphenatechat_3.3.4.jar')
//greendao数据库
compile 'org.greenrobot:greendao:3.2.0'
//选择器
compile 'com.contrarywind:Android-PickerView:3.2.7'
//jsbridge
compile 'com.github.lzyzsd:jsbridge:1.0.4'
compile project(':locationLibrary')
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.baselibrary">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<service android:name="com.dayu.base.api.DownloadService" />
<receiver android:name="com.dayu.utils.NetworkConnectChangedReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
</application>
</manifest>
......@@ -105,7 +105,7 @@ public class Api {
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String token = (String) SPUtils.get(BaseConstant.TOKEN, "");
// token = "8f2896af061e477faacd0b284aa62865";
token="8eff783de36e4d2a8b7bc66709edfc42";
if (!TextUtils.isEmpty(token) && !request.url().toString().contains(Constants.BASE_URL + Constants.LOGIN_URL)) {
request = request.newBuilder()
.header(BaseConstant.TOKEN, token)
......
......@@ -7,21 +7,24 @@ import android.os.Bundle;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
import com.dayu.common.BaseConstant;
import com.dayu.common.BaseView;
import com.dayu.common.Constants;
import com.dayu.utils.AppManager;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.TUtil;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType;
;
/**
* Created by luofan on 17/11/02.
* Created by luofan
* on 17/11/02.
*/
public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends DataBindingActivity<B>
implements BaseView {
......@@ -141,9 +144,10 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> {
if (confirm) {
// EMClient.getInstance().logout(true);
// UserManager.getInstance().clearUserInfo();
BaseApplication.getBaseApp().exiteAllActivity();
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
AppManager.getInstance().finishAllActivity();
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
}
dialog.dismiss();
......
......@@ -7,14 +7,16 @@ import android.os.Bundle;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
import com.dayu.common.BaseConstant;
import com.dayu.common.BaseView;
import com.dayu.common.Constants;
import com.dayu.utils.AppManager;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.TUtil;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType;
......@@ -134,10 +136,9 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi
CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> {
if (confirm) {
// UserManager.getInstance().clearUserInfo();
// EMClient.getInstance().logout(true);
// UserManager.getInstance().clearUserInfo();
BaseApplication.getBaseApp().exiteAllActivity();
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
}
dialog.dismiss();
......
......@@ -8,8 +8,7 @@ import android.support.multidex.MultiDex;
import android.support.multidex.MultiDexApplication;
import com.alibaba.android.arouter.launcher.ARouter;
import java.util.Stack;
import com.dayu.utils.AppManager;
/**
* Created by luofan
......@@ -18,7 +17,6 @@ import java.util.Stack;
public class BaseApplication extends MultiDexApplication {
private static Context mContext;
private Stack<Activity> store;
private static BaseApplication myApplication;
@Override
......@@ -27,7 +25,6 @@ public class BaseApplication extends MultiDexApplication {
MultiDex.install(this);
myApplication = this;
mContext = this.getApplicationContext();
store = new Stack<>();
registerActivityLifecycleCallbacks(new SwitchBackgroundCallbacks());
//ARouter初始化
ARouter.openLog(); // 打印日志
......@@ -35,23 +32,6 @@ public class BaseApplication extends MultiDexApplication {
ARouter.init(this);
}
/**
* 退出所有activity.
*/
public void exiteAllActivity() {
for (Activity activity : store) {
activity.finish();
}
}
/**
* 获取当前的Activity
*
* @return
*/
public Activity getCurActivity() {
return store.lastElement();
}
public static Context getContext() {
return mContext;
......@@ -65,7 +45,7 @@ public class BaseApplication extends MultiDexApplication {
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
store.add(activity);
AppManager.getInstance().addActivity(activity);
}
@Override
......@@ -95,7 +75,7 @@ public class BaseApplication extends MultiDexApplication {
@Override
public void onActivityDestroyed(Activity activity) {
store.remove(activity);
AppManager.getInstance().remove(activity);
}
}
}
package com.dayu.bigfish.bean.event;
package com.dayu.event;
/**
* 刷新各tab状态的数量
......
package com.dayu.bigfish.utils.managers;
package com.dayu.utils;
import android.app.Activity;
import android.app.ActivityManager;
......@@ -7,7 +7,7 @@ import android.content.Context;
import java.util.Stack;
public class AppManager {
private static Stack<Activity> activityStack = new Stack<Activity>();
private static Stack<Activity> activityStack = new Stack<>();
private static AppManager instance;
private AppManager() {
......@@ -16,7 +16,7 @@ public class AppManager {
/**
* 单一实例
*/
public static AppManager getAppManager() {
public static AppManager getInstance() {
if (instance == null) {
instance = new AppManager();
}
......@@ -28,12 +28,22 @@ public class AppManager {
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
activityStack = new Stack<>();
}
activityStack.add(activity);
}
/**
* 移除activity
*/
public void remove(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<>();
}
activityStack.remove(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity() {
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.telephony.TelephonyManager;
import com.dayu.bigfish.MyApplication;
import com.dayu.common.BaseApplication;
/**
* Created by luofan on 2017/11/7.
......@@ -16,7 +17,7 @@ public class AppUtils {
*/
public static String getIMEI() {
TelephonyManager telephonyManager = (TelephonyManager) MyApplication.getAppContext().getSystemService(MyApplication.getAppContext().TELEPHONY_SERVICE);
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getBaseApp().getSystemService(BaseApplication.getContext().TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
return imei;
......@@ -29,7 +30,7 @@ public class AppUtils {
*/
public static String getPackageNum() {
try {
PackageInfo packageInfo = MyApplication.getAppContext().getPackageManager().getPackageInfo(MyApplication.getAppContext().getPackageName(), 0);
PackageInfo packageInfo = BaseApplication.getContext().getPackageManager().getPackageInfo(BaseApplication.getContext().getPackageName(), 0);
String packageName = packageInfo.versionName;
return packageName;
} catch (PackageManager.NameNotFoundException e) {
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.content.Context;
import android.os.Environment;
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.content.Context;
import android.support.annotation.DrawableRes;
......@@ -7,7 +7,7 @@ import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.dayu.bigfish.R;
import com.dayu.baselibrary.R;
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
......@@ -26,7 +26,7 @@ public class GlideImageLoader {
public static void load(Context context, String imageRes, ImageView view) {
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.mipmap.camera)
.placeholder(R.drawable.camera)
.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(context)
.load(imageRes)
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
/**
* Created by luofan on 2017/11/24.
......
......@@ -11,7 +11,6 @@ import java.util.List;
* @author itheima
* @time 2017-8-20 上午11:33:49
* @des 日志级别是LEVEL_ALL显示所有信息,包括System.out.println信息
* @des 日志级别是LEVEL_OFF关闭所有信息,包括System.out.println信息
*/
public class LogUtils {
/** 日志输出时的TAG */
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.annotation.TargetApi;
import android.app.Activity;
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
/**
* Created by yu on 2017/10/24.
......@@ -13,8 +13,6 @@ import android.net.wifi.WifiManager;
import android.os.Parcelable;
import android.util.Log;
import com.dayu.utils.ToastUtils;
/**
* 网络改变监控广播
* <p>
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.text.Html;
import android.text.Spannable;
......@@ -8,8 +8,6 @@ import android.text.TextUtils;
import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan;
import com.dayu.utils.UIUtils;
import java.text.DecimalFormat;
public class StringUtils {
......
......@@ -32,6 +32,10 @@ public class UserManager {
}
}
public void saveUserForJson(String json){
SPUtils.put("USER_INFO",json);
}
public UserInfo getUser() {
return new Gson().fromJson((String) SPUtils.get("big_fish", "USER_INFO", ""), UserInfo.class);
}
......
package com.dayu.bigfish.utils;
package com.dayu.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
......
package com.dayu.bigfish.ui.views;
package com.dayu.widgets;
import android.content.Context;
import android.graphics.Canvas;
......@@ -9,7 +9,8 @@ import android.graphics.PathEffect;
import android.util.AttributeSet;
import android.view.View;
import com.dayu.bigfish.R;
import com.dayu.baselibrary.R;
/**
* Created by luofan on 2018/1/23.
......
......@@ -8,6 +8,11 @@
<item name="colorAccent">@color/cl_accent</item>
</style>
<style name="Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
<style name="title">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/size_main_title</item>
......
......@@ -10,11 +10,13 @@
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
##模块化开关,单独调试时 false,作为模块 true
##用户模块
isUserModule=false
isUserModule=true
##消息模块
isMessageModule=true
##工单模块
isOrderModule=false
isOrderModule=true
##maven依赖
mavenMode=false
apply plugin: 'com.android.library'
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
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
# 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.location;
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() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.dayu.location.test", appContext.getPackageName());
}
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.location">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"/>
</manifest>
package com.dayu.bigfish.utils;
package com.dayu.location.base;
import android.content.Context;
import android.os.Handler;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.dayu.utils.LogUtils;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
/**
* Created by luofan on 2017/11/21.
......@@ -22,9 +18,10 @@ public class LocationUtils {
public static AMapLocationClientOption mLocationOption = null;
public static AMapLocation sLocation = null;
private static boolean flag = true;
private static Disposable mDisposable;
// private static Disposable mDisposable;
private static long time;
private static MyLocationListener mListener;
private static Handler mHandler;
/**
* @param context
......@@ -78,16 +75,19 @@ public class LocationUtils {
return;
}
flag = true;
// 刷新有时不回调.
mDisposable = Observable.timer(8000, TimeUnit.MILLISECONDS)
.subscribe(aLong -> {
mHandler = new Handler();
//刷新有时不回调.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (flag) {
// ToastUtils.showShortToast("获取定位失败");
mListener.result(null);
flag = false;
mlocationClient.stopLocation();
}
});
}
}, 8000);
time = System.currentTimeMillis();
mlocationClient.setLocationListener(new AMapLocationListener() {
......@@ -99,13 +99,10 @@ public class LocationUtils {
mlocationClient.stopLocation();
sLocation = location;
mListener.result(location);
LogUtils.d(System.currentTimeMillis() - time + " " +location.toString());
} else if ((location == null && flag)) {
LogUtils.d("location:" + location.getErrorCode());
flag = false;
mlocationClient.stopLocation();
mListener.result(location);
// ToastUtils.showShortToast("定位失败了");
}
}
});
......@@ -118,9 +115,7 @@ public class LocationUtils {
* @Description: 销毁定位,必须在退出程序时调用,否则定位会发生异常
*/
public static void destroy() {
if (mDisposable != null) {
mDisposable.dispose();
}
mHandler = null;
mlocationClient.onDestroy();
}
......
<resources>
<string name="app_name">LocationLibrary</string>
</resources>
package com.dayu.location;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
\ No newline at end of file
......@@ -58,10 +58,6 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
compile project(':provider')
......
......@@ -10,8 +10,8 @@ import com.dayu.common.Constants;
import com.dayu.message.R;
import com.dayu.message.data.protocol.NewMessage;
import com.dayu.message.databinding.ActivityMessageDetailBinding;
import com.dayu.provider.common.ProviderConstant;
import com.dayu.provider.router.RouterPath;
import com.dayu.provider.common.ProviderConstant123;
import com.dayu.provider.router.BaseRouterPath;
import com.dayu.utils.UtilsDate;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
......@@ -79,8 +79,8 @@ public class MessageDetailActivity extends DataBindingActivity<ActivityMessageDe
}
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, id);
ARouter.getInstance().build(RouterPath.PATH_ORDER_DETAIL)
.withBundle(ProviderConstant.BUNDLE, bundle)
ARouter.getInstance().build(BaseRouterPath.PATH_ORDER_DETAIL)
.withBundle(ProviderConstant123.BUNDLE, bundle)
.navigation();
MobclickAgent.onEvent(mActivity, "message_check_order");
}
......
......@@ -6,6 +6,7 @@
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name="com.dayu.message.ui.activity.TestActivity" />
<activity android:name=".ui.activity.MessageDetailActivity"/>
</application>
</manifest>
......@@ -3,6 +3,7 @@ if (isOrderModule.toBoolean()) {
} else {
apply plugin: 'com.android.application'
}
apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion compile_sdk_version
......@@ -55,13 +56,15 @@ android {
}
}
greendao {
schemaVersion 2
daoPackage 'com.dayu.order.greendao'
targetGenDir 'src/main/java'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
compile project(':provider')
......
......@@ -7,12 +7,56 @@
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ui.activity.TestActivity">
<activity
android:name=".ui.activity.TestActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.activity.applyAndRefuseActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SopWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SubcribeTimeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ReceivingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ProcessOrderActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.PreviewActivty"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.OrderRecordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.KaAddressActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.LogisticsInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.QrCodeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.OrderDetailsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ReturnPartActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ServerInstructionActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.WebViewActivity"
android:screenOrientation="portrait" />
</application>
</manifest>
package com.dayu.order.api;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.order.api.protocol.ErrorOrder;
import com.dayu.order.api.protocol.KaAddress;
import com.dayu.order.api.protocol.LogsticsInfo;
import com.dayu.order.api.protocol.Order;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.OrderPart;
import com.dayu.order.api.protocol.ServerInstruction;
import com.dayu.order.api.protocol.ShipperCompany;
import com.dayu.order.api.protocol.Tab;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2018/2/8.
*/
public class OrderApiFactory {
public static Observable<Integer> startOrder(RequestBody body) {
return Api.getService(OrderService.class).startOrder(body).compose(Api.applySchedulers());
}
public static Observable<Integer> startServer(RequestBody body) {
return Api.getService(OrderService.class).startServer(body).compose(Api.applySchedulers());
}
public static Observable<List<ErrorOrder>> getErrorOrders(int userId, int siteId) {
return Api.getService(OrderService.class).getErrorOrders(userId, siteId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<Order>> getOrders(int state, int engineerId, int siteId, int page, int pageSize) {
return Api.getService(OrderService.class).getOrders(state, engineerId, siteId, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<Boolean> receiveOrder(int orderId, int engineerId) {
return Api.getService(OrderService.class).receiveOrder(orderId, engineerId).compose(Api.applySchedulers());
}
public static Observable<Boolean> subcriceTime(int orderId, String doorTime, String doorComment) {
return Api.getService(OrderService.class).subcriceTime(orderId, doorTime, doorComment).compose(Api.applySchedulers());
}
public static Observable<Integer> commitOrder(RequestBody orderInfo) {
return Api.getService(OrderService.class).commitOrder(orderInfo).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> queryOrderInfo(int orderId) {
return Api.getService(OrderService.class).queryOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<Tab> getTabNum(int userId, int siteId) {
return Api.getService(OrderService.class).getTabNum(userId, siteId).compose(Api.applySchedulers());
}
public static Observable<OrderDetail> getOrderInfo(int orderId) {
return Api.getService(OrderService.class).getOrderInfo(orderId).compose(Api.applySchedulers());
}
public static Observable<BasePageBean<ServerInstruction>> getInstruction(long id, int page, int pageSize) {
return Api.getService(OrderService.class).getInstruction(id, page, pageSize).compose(Api.applySchedulers());
}
public static Observable<KaAddress> getKaAddress(int companyId) {
return Api.getService(OrderService.class).getKaAddress(companyId).compose(Api.applySchedulers());
}
public static Observable<Boolean> applyPart(long spOrderId, String spComment, String createBy, long accountId) {
return Api.getService(OrderService.class).applyPart(spOrderId, spComment, createBy, accountId).compose(Api.applySchedulers());
}
public static Observable<Boolean> cancleApply(int partsId, String modifyBy) {
return Api.getService(OrderService.class).cancleApply(partsId, modifyBy).compose(Api.applySchedulers());
}
public static Observable<Boolean> returnPartSelf(RequestBody body) {
return Api.getService(OrderService.class).returnPartSelf(body).compose(Api.applySchedulers());
}
public static Observable<Boolean> returnPartByKA(RequestBody body) {
return Api.getService(OrderService.class).returnPartByKA(body).compose(Api.applySchedulers());
}
public static Observable<Boolean> receivePart(int partsId, String modifyBy) {
return Api.getService(OrderService.class).receivePart(partsId, modifyBy).compose(Api.applySchedulers());
}
public static Observable<Boolean> refusePart(long kaOrderSparePartsId, String reason) {
return Api.getService(OrderService.class).refusePart(kaOrderSparePartsId, reason).compose(Api.applySchedulers());
}
public static Observable<List<OrderPart>> queryPart(long spOrderId, int sources) {
return Api.getService(OrderService.class).queryPart(spOrderId, sources).compose(Api.applySchedulers());
}
public static Observable<Boolean> modifyPart(RequestBody body) {
return Api.getService(OrderService.class).modifyPart(body).compose(Api.applySchedulers());
}
public static Observable<LogsticsInfo> queryLogistics(String com, String num) {
return Api.getService(OrderService.class).queryLogistics(com, num).compose(Api.applySchedulers());
}
public static Observable<List<ShipperCompany>> queryShipperCompany() {
return Api.getService(OrderService.class).queryShipperCompany().compose(Api.applySchedulers());
}
}
package com.dayu.order.api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.common.Constants;
import com.dayu.order.api.protocol.ErrorOrder;
import com.dayu.order.api.protocol.KaAddress;
import com.dayu.order.api.protocol.LogsticsInfo;
import com.dayu.order.api.protocol.Order;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.OrderPart;
import com.dayu.order.api.protocol.ServerInstruction;
import com.dayu.order.api.protocol.ShipperCompany;
import com.dayu.order.api.protocol.Tab;
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.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
/**
* Created by luofan
* on 2018/2/8.
*/
public class OrderService {
interface OrderService {
/**
* 我已出发.
*
* @param body
* @return
*/
@POST(Constants.START_ORDER)
Observable<BaseResponse<Integer>> startOrder(@Body RequestBody body);
/**
* 开始服务.
*
* @param body
* @return
*/
@POST(Constants.START_SERVE)
Observable<BaseResponse<Integer>> startServer(@Body RequestBody body);
/**
* 获取工单记录列表.
*
* @param state
* @param engineerId
* @param siteId
* @param page
* @param pageSize
* @return
*/
@GET(Constants.ORDERS)
Observable<BaseResponse<BasePageBean<Order>>> getOrders(@Query("state") int state,
@Query("engineerId") int engineerId,
@Query("siteId") int siteId,
@Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 获取异常订单列表.
*
* @param siteId
* @return
*/
@GET(Constants.ERROR_ORDER)
Observable<BaseResponse<List<ErrorOrder>>> getErrorOrders(@Query("engineerId") int userId, @Query("siteId") int siteId);
/**
* 工程师接单
*
* @param orderId
* @param engineerId
* @return
*/
@GET(Constants.ORDER_RECEIVING)
Observable<BaseResponse<Boolean>> receiveOrder(@Path("orderId") int orderId,
@Path("engineerId") int engineerId);
/**
* 预约上门时间.
*
* @param orderId
* @param doorTime
* @param doorComment
* @return
*/
@POST(Constants.SUBCRIBE_TIME)
Observable<BaseResponse<Boolean>> subcriceTime(@Query("orderId") int orderId,
@Query("doorTime") String doorTime,
@Query("doorComment") String doorComment);
/**
* 提交工单.
*
* @param orderInfo
* @return
*/
@POST(Constants.ORDER_FINISH)
Observable<BaseResponse<Integer>> commitOrder(@Body RequestBody orderInfo);
/**
* 单表查询工单记录.
*
* @param id
* @return
*/
@GET(Constants.SELECT_ORDER_LITTLE)
Observable<BaseResponse<OrderDetail>> queryOrderInfo(@Path("id") int id);
/**
* 获取tab数量.
*
* @param userId
* @return
*/
@GET(Constants.TAB_NUM)
Observable<BaseResponse<Tab>> getTabNum(@Path("userId") int userId, @Path("siteId") int siteId);
/**
* 获取工单详情信息.
*
* @param orderId
* @return
*/
@GET(Constants.ORDER_DETAILS)
Observable<BaseResponse<OrderDetail>> getOrderInfo(@Path("orderId") int orderId);
/**
* 获取服务说明.
*
* @param id
* @return
*/
@GET(Constants.ORDER_INSTRUCTION)
Observable<BaseResponse<BasePageBean<ServerInstruction>>> getInstruction(@Query("kaSpuId") long id, @Query("page") int page,
@Query("pageSize") int pageSize);
/**
* 获取厂商收货地址.
*
* @param companyId
* @return
*/
@GET(Constants.KA_ADDRESS)
Observable<BaseResponse<KaAddress>> getKaAddress(@Path("companyId") int companyId);
/**
* 申请备件.
*
* @param spOrderId
* @param spComment
* @param createBy
* @return
*/
@POST(Constants.APPLY_ONE_PART)
Observable<BaseResponse<Boolean>> applyPart(@Query("spOrderId") long spOrderId,
@Query("spComment") String spComment,
@Query("createBy") String createBy,
@Query("accountId") long accountId);
/**
* 取消申请备件.
*
* @param partsId
* @param modifyBy
* @return
*/
@PUT(Constants.CANCLE_APPLY_PART)
Observable<BaseResponse<Boolean>> cancleApply(@Query("partsId") int partsId,
@Query("modifyBy") String modifyBy);
/**
* sp主动寄回备件.
*
* @param body
* @return
*/
@POST(Constants.RETURN_PART_SELF)
Observable<BaseResponse<Boolean>> returnPartSelf(@Body RequestBody body);
/**
* sp按ka要求寄回备件.
*
* @param body
* @return
*/
@PUT(Constants.RETURN_PART_BY_KA)
Observable<BaseResponse<Boolean>> returnPartByKA(@Body RequestBody body);
/**
* 收到备件.
*
* @param partsId
* @param modifyBy
* @return
*/
@PUT(Constants.RECEIVE_PART)
Observable<BaseResponse<Boolean>> receivePart(@Query("partsId") int partsId,
@Query("modifyBy") String modifyBy);
/**
* 拒绝申请备件.
*
* @param kaOrderSparePartsId
* @param reason
* @return
*/
@POST(Constants.REFUSE_ONE_PART)
Observable<BaseResponse<Boolean>> refusePart(@Query("kaOrderSparePartsId") long kaOrderSparePartsId,
@Query("reason") String reason);
/**
* 获取备件列表.
*
* @param spOrderId
* @param sources
* @return
*/
@GET(Constants.QUERY_PART_LIST)
Observable<BaseResponse<List<OrderPart>>> queryPart(@Query("spOrderId") long spOrderId, @Query("sources") int sources);
/**
* 修改备件信息.
*
* @param body
* @return
*/
@PUT(Constants.MODIFY_PART)
Observable<BaseResponse<Boolean>> modifyPart(@Body RequestBody body);
/**
* 查询物流信息.
*
* @return
*/
@GET(Constants.QUERY_LOGISTICS_INFO)
Observable<BaseResponse<LogsticsInfo>> queryLogistics(@Query("com") String com, @Query("num") String num);
/**
* 查询物流公司.
*
* @return
*/
@GET(Constants.QUERY_SHIPPER_COMPANY)
Observable<BaseResponse<List<ShipperCompany>>> queryShipperCompany();
}
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
/**
* Created by luofan on 2017/11/19.
*/
public class ErrorOrder {
private int id;
private String orderNum;
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
/**
* Created by luofan on 2018/1/19.
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
/**
* 工单列表,异常单列表,工单记录列表的bean
* Created by luofan on 2017/11/14.
*/
public class Order {
/**
* id : 20
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
import java.io.Serializable;
import java.util.List;
......@@ -6,7 +6,6 @@ import java.util.List;
/**
* Created by luofan on 2017/11/14.
*/
public class OrderDetail implements Serializable {
private int id;
private String orderNum;
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
import java.io.Serializable;
/**
* Created by luofan on 2018/1/20.
*/
public class OrderPart implements Serializable {
private Integer id;
private String partName;
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
/**
* Created by luofan on 2018/1/24.
......
package com.dayu.bigfish.bean;
package com.dayu.order.api.protocol;
/**
* Created by luofan on 2017/11/14.
......
package com.dayu.order.common;
/**
* Created by luofan
* on 2018/2/8.
*/
public class OrderConstant {
public final static int SUBCRIBE_TIME = 2;//预约上门时间
public final static int ORDER_YUYUE = 3;//修改预约时间
public final static int ORDER_DOING = 4;//再次上门时间
public final static int ORDER_SOP_FINISH = 5;//SOP已完成
public final static int ORDER_FINISH = 6;//已完成
public final static int ORDER_NOCONTACT_FINISH = 7;//无联系人已完成
}
package com.dayu.order.event;
/**
* 刷新待服务列表条目.
* on 2017/9/20.
*/
public class OrderState {
private int position;
private int state;
private String time;
public OrderState(int state, int position) {
this.position = position;
this.state = state;
}
public OrderState(int state, int position, String time) {
this.position = position;
this.state = state;
this.time = time;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
package com.dayu.bigfish.bean.event;
package com.dayu.order.event;
/**
* 刷新待预约列表.
* on 2017/10/11.
*/
public class RefreshApoiment {
private int tabNum;
......
package com.dayu.bigfish.bean.event;
package com.dayu.order.event;
/**
* 刷新带服务列表
* on 2017/10/11.
*/
public class RefreshServe {
private int tabNum;
......
package com.dayu.bigfish.bean.event;
package com.dayu.order.event;
/**
* Created by luofan on 2017/12/1.
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import java.util.Map;
......@@ -8,9 +8,9 @@ import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;
import com.dayu.bigfish.bean.sqlbean.OrderInfo;
import com.dayu.order.sqlbean.OrderInfo;
import com.dayu.bigfish.greendao.OrderInfoDao;
import com.dayu.order.greendao.OrderInfoDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import com.dayu.bigfish.MyApplication;
import com.dayu.common.BaseApplication;
/**
* Created by luofan on 2017/11/4.
......@@ -34,7 +35,7 @@ public class GreenDaoManager {
* 初始化数据
*/
private void init() {
MyOpenHelper devOpenHelper = new MyOpenHelper(MyApplication.getContext(),
MyOpenHelper devOpenHelper = new MyOpenHelper(BaseApplication.getContext(),
"tell", null);
mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
mDaoSession = mDaoMaster.newSession();
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import android.database.Cursor;
import android.text.TextUtils;
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
......
package com.dayu.bigfish.greendao;
package com.dayu.order.greendao;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
......@@ -9,10 +9,10 @@ import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import com.dayu.bigfish.bean.sqlbean.StringConverter;
import com.dayu.order.sqlbean.StringConverter;
import java.util.List;
import com.dayu.bigfish.bean.sqlbean.OrderInfo;
import com.dayu.order.sqlbean.OrderInfo;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
......
package com.dayu.bigfish.presenter;
package com.dayu.order.presenter;
import com.dayu.base.ui.presenter.BaseListPresenter;
......
package com.dayu.bigfish.presenter.commonSubmite;
package com.dayu.order.presenter.commonSubmite;
import android.databinding.ObservableField;
import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.event.RefreshApplyPart;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.event.RefreshApplyPart;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsUserAccountMatcher;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.HashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
*/
@InstanceFactory
public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
public class ApplayAndRefusePresenter extends ApplyAndRefuseContract.Presenter {
private String mUserName;
private String mUserMobile;
public ObservableField<String> mComment = new ObservableField<>();
public ObservableField<String> mTitle = new ObservableField<>();
public ObservableField<String> mHint = new ObservableField<>();
......@@ -41,17 +32,12 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
@Override
public void onAttached() {
mUserName = UserManager.getInstance().getUser().getAccountName();
mUserMobile = UserManager.getInstance().getUserPhone();
mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId());
Bundle bundle = mView.getBundle();
mType = bundle.getInt(Constants.TYPE, 0);
mOrderId = bundle.getInt(Constants.ORDER_ID, 0);
mPartId = bundle.getInt(Constants.PART_ID);
switch (mType) {
case Constants.FEED_BACK:
mHint.set(UIUtils.getString(R.string.tv_idea_text_hint));
mTitle.set(UIUtils.getString(R.string.tv_idea));
break;
case Constants.APPLY_PART:
mHint.set(UIUtils.getString(R.string.tv_apply_reson_hint));
mTitle.set(UIUtils.getString(R.string.tv_apply_order_title));
......@@ -77,9 +63,6 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
return;
}
switch (mType) {
case Constants.FEED_BACK:
comFirmSuggist();
break;
case Constants.APPLY_PART:
applyPart();
break;
......@@ -92,26 +75,8 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
}
@Override
public void comFirmSuggist() {
HashMap<String, Object> params = new HashMap<>();
params.put("comment", mComment.get());
params.put("created", mUserName);
params.put("deal", 2);
params.put("mobile", mUserMobile);
params.put("platform", 1);
params.put("status", 1);
params.put("suggestName", mUserName);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
ApiFactory.postFeedBack(body).subscribe(baseObserver(aBoolean -> {
mView.showToast(R.string.commite_success);
mView.dumpBack();
}));
}
@Override
public void applyPart() {
ApiFactory.applyPart(mOrderId, mComment.get(), mUserName, mAccountId).subscribe(baseObserver(
OrderApiFactory.applyPart(mOrderId, mComment.get(), mUserName, mAccountId).subscribe(baseObserver(
aBoolean -> {
mView.dumpBack();
EventBus.getDefault().post(new RefreshApplyPart(1));
......@@ -120,7 +85,7 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
@Override
public void refusePart() {
ApiFactory.refusePart(mPartId, mComment.get()).subscribe(baseObserver(
OrderApiFactory.refusePart(mPartId, mComment.get()).subscribe(baseObserver(
aBoolean -> {
mView.dumpBack();
EventBus.getDefault().post(new RefreshApplyPart(1));
......
package com.dayu.bigfish.presenter.commonSubmite;
package com.dayu.order.presenter.commonSubmite;
import com.dayu.base.ui.presenter.BasePresenter;
......@@ -9,7 +9,7 @@ import com.dayu.common.BaseView;
* Created by luo
* on 2016/8/4.
*/
public interface CommonSubmiteContract {
public interface ApplyAndRefuseContract {
interface View extends BaseView {
}
......@@ -19,11 +19,6 @@ public interface CommonSubmiteContract {
public abstract void commite();
/**
* 提交反馈意见.
*/
public abstract void comFirmSuggist();
/**
* 申请备件.
*/
public abstract void applyPart();
......
package com.dayu.bigfish.presenter.homeorder;
package com.dayu.order.presenter.homeorder;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.Tab;
import com.dayu.common.BaseView;
import com.dayu.order.api.protocol.Tab;
/**
* Created by luo on 2016/8/4.
......
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