Commit ae60479a by 罗翻

增加ordercenter和loctionlib

parent 279c9f45
Showing with 887 additions and 1198 deletions
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android { android {
...@@ -44,17 +42,18 @@ android { ...@@ -44,17 +42,18 @@ android {
release { release {
signingConfig android.signingConfigs.release signingConfig android.signingConfigs.release
minifyEnabled true minifyEnabled true
shrinkResources true //是否清理无用资源,依赖于minifyEnabled shrinkResources false //是否清理无用资源,依赖于minifyEnabled
zipAlignEnabled true //是否启用zipAlign压缩 zipAlignEnabled true //是否启用zipAlign压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
debug { debug {
signingConfig android.signingConfigs.release signingConfig android.signingConfigs.release
minifyEnabled false minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
sourceSets { sourceSets {
main { main {
//jni库的调用会到资源文件夹下libs里面找so文件 //jni库的调用会到资源文件夹下libs里面找so文件
...@@ -63,11 +62,6 @@ android { ...@@ -63,11 +62,6 @@ android {
} }
} }
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
dataBinding { dataBinding {
enabled = true enabled = true
...@@ -81,36 +75,31 @@ android { ...@@ -81,36 +75,31 @@ android {
} }
} }
greendao {
schemaVersion 2
daoPackage 'com.dayu.bigfish.greendao'
targetGenDir 'src/main/java'
}
repositories { repositories {
mavenCentral() mavenCentral()
maven { url 'https://maven.google.com' } maven { url 'https://maven.google.com' }
flatDir{
dirs 'libs'
}
} }
dependencies { dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') 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' //ARouter
}) annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
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')
compile project(':provider') compile project(':provider')
if (isMessageModule.toBoolean()) {
compile project(':messageCenter') compile project(':messageCenter')
}
if (isUserModule.toBoolean()) {
compile project(':userCenter') compile project(':userCenter')
}
if (isOrderModule.toBoolean()) {
compile project(':orderCenter') compile project(':orderCenter')
}
// compile(name: 'provider-debug', ext: 'aar')
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
} }
...@@ -113,9 +113,9 @@ ...@@ -113,9 +113,9 @@
#-------------------------------------------定制化区域---------------------------------------------- #-------------------------------------------定制化区域----------------------------------------------
#---------------------------------1.实体类--------------------------------- #---------------------------------1.实体类---------------------------------
#TODO
-keep class com.dayu.bigfish.bean.** { *; } #-keep class com.dayu.bigfish.bean.** { *; }
-keep class com.dayu.bigfish.base.** { *; } #-keep class com.dayu.bigfish.base.** { *; }
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -231,13 +231,19 @@ public static final int *; ...@@ -231,13 +231,19 @@ public static final int *;
-keep public class com.alibaba.android.arouter.routes.**{*;} -keep public class com.alibaba.android.arouter.routes.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} -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互相调用的类------------------------ #---------------------------------3.与js互相调用的类------------------------
#---------------------------------4.反射相关的类和方法----------------------- #---------------------------------4.反射相关的类和方法-----------------------
#-dontwarn com.alibaba.**
#-ignorewarnings
......
...@@ -119,96 +119,18 @@ ...@@ -119,96 +119,18 @@
android:name=".InitializeActivity" android:name=".InitializeActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <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:name=".ui.SettingActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <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:name=".ui.AboutUsActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.CommonSubmiteActivity" android:name=".ui.FeedBackActivity"
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:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.MainActivity" android:name=".ui.MainActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" /> 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> </application>
......
...@@ -15,7 +15,7 @@ import android.widget.Toast; ...@@ -15,7 +15,7 @@ import android.widget.Toast;
import com.dayu.usercenter.ui.activity.LoginActivity; import com.dayu.usercenter.ui.activity.LoginActivity;
import com.dayu.bigfish.ui.MainActivity; 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.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
......
...@@ -8,12 +8,12 @@ import android.net.ConnectivityManager; ...@@ -8,12 +8,12 @@ import android.net.ConnectivityManager;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Handler; 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.bigfish.utils.managers.HxManager;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; 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;
import com.umeng.analytics.MobclickAgent.EScenarioType; import com.umeng.analytics.MobclickAgent.EScenarioType;
import com.umeng.commonsdk.UMConfigure; import com.umeng.commonsdk.UMConfigure;
......
...@@ -3,15 +3,6 @@ package com.dayu.bigfish.api; ...@@ -3,15 +3,6 @@ package com.dayu.bigfish.api;
import com.dayu.base.api.protocol.BasePageBean; import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse; 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.bigfish.bean.VersionInfo;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.message.data.protocol.NewMessage; import com.dayu.message.data.protocol.NewMessage;
...@@ -26,7 +17,6 @@ import retrofit2.http.Body; ...@@ -26,7 +17,6 @@ import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.Multipart; import retrofit2.http.Multipart;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part; import retrofit2.http.Part;
import retrofit2.http.Path; import retrofit2.http.Path;
import retrofit2.http.Query; import retrofit2.http.Query;
...@@ -65,85 +55,6 @@ public interface APIService { ...@@ -65,85 +55,6 @@ public interface APIService {
@GET(Constants.UPGRADE_VERSION) @GET(Constants.UPGRADE_VERSION)
Observable<BaseResponse<VersionInfo>> getVersionInfo(@Query("appId") String appId, @Query("versionCode") String versionCode); 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 { ...@@ -153,32 +64,6 @@ public interface APIService {
@POST(Constants.SET_IDEA_COMMIT) @POST(Constants.SET_IDEA_COMMIT)
Observable<BaseResponse<Boolean>> postFeedBack(@Body RequestBody body); 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 { ...@@ -226,124 +111,6 @@ public interface APIService {
Observable<BaseResponse<List<String>>> uploadPhoto( Observable<BaseResponse<List<String>>> uploadPhoto(
@Part MultipartBody.Part part); @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 @Streaming
@GET @GET
......
package com.dayu.bigfish.api; package com.dayu.bigfish.api;
import com.dayu.base.api.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.bigfish.bean.VersionInfo;
import com.dayu.message.data.protocol.NewMessage;
import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody; import okhttp3.RequestBody;
/** /**
...@@ -40,120 +26,12 @@ public class ApiFactory { ...@@ -40,120 +26,12 @@ public class ApiFactory {
return Api.getService(APIService.class).getVersionInfo(appId, versionCode).compose(Api.applySchedulers()); 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) { public static Observable<Boolean> postFeedBack(RequestBody body) {
return Api.getService(APIService.class).postFeedBack(body).compose(Api.applySchedulers()); 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) { public static Observable<Integer> getHxNum(String hxAccount) {
return Api.getService(APIService.class).getHxNum(hxAccount).compose(Api.applySchedulers()); 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; package com.dayu.bigfish.presenter.homefirsttab;
import com.app.annotation.apt.InstanceFactory;
/** /**
* Created by luofan on 2017/11/8. * Created by luofan on 2017/11/8.
*/ */
@InstanceFactory
public class HomeFirstPresenter extends HomeFirstContract.Presenter { public class HomeFirstPresenter extends HomeFirstContract.Presenter {
@Override @Override
......
...@@ -2,12 +2,12 @@ package com.dayu.bigfish.presenter.main; ...@@ -2,12 +2,12 @@ package com.dayu.bigfish.presenter.main;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication; import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory; import com.dayu.bigfish.api.ApiFactory;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo; 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.SPUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -21,7 +21,6 @@ import okhttp3.RequestBody; ...@@ -21,7 +21,6 @@ import okhttp3.RequestBody;
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
*/ */
@InstanceFactory
public class MainPresenter extends MainContract.Presenter { public class MainPresenter extends MainContract.Presenter {
/** /**
* 待接单数目. * 待接单数目.
...@@ -83,14 +82,14 @@ public class MainPresenter extends MainContract.Presenter { ...@@ -83,14 +82,14 @@ public class MainPresenter extends MainContract.Presenter {
@Override @Override
public void getReceiveOrder(int state, int userId, int siteId, int pagerId, int pagerSize) { 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() + ""))); orders -> tabRecive.set(orders.getTotalRows() + "")));
} }
@Override @Override
public void getHxNum(String accountId) { public void getHxNum(String accountId) {
ApiFactory.getHxNum(accountId).subscribe(baseObserver(integer -> { ApiFactory.getHxNum(accountId).subscribe(baseObserver(integer -> {
if (integer.intValue() > 0) { if (integer > 0) {
mView.isShowRedIcon(true); mView.isShowRedIcon(true);
} }
})); }));
......
...@@ -7,17 +7,17 @@ import android.os.Bundle; ...@@ -7,17 +7,17 @@ import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication; import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R; import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory; import com.dayu.bigfish.api.ApiFactory;
import com.dayu.event.UserInfo;
import com.dayu.bigfish.ui.AboutUsActivity; 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.usercenter.ui.activity.LoginActivity;
import com.dayu.bigfish.utils.AppUtils; import com.dayu.utils.AppManager;
import com.dayu.bigfish.utils.DataCleanManager; import com.dayu.utils.AppUtils;
import com.dayu.utils.DataCleanManager;
import com.dayu.utils.SPUtils; import com.dayu.utils.SPUtils;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -33,7 +33,6 @@ import io.reactivex.Observable; ...@@ -33,7 +33,6 @@ import io.reactivex.Observable;
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
*/ */
@InstanceFactory
public class SettingPresenter extends SettingContract.Presenter { public class SettingPresenter extends SettingContract.Presenter {
public ObservableBoolean buttonState = new ObservableBoolean(); public ObservableBoolean buttonState = new ObservableBoolean();
private String mHxAccount; private String mHxAccount;
...@@ -92,7 +91,7 @@ public class SettingPresenter extends SettingContract.Presenter { ...@@ -92,7 +91,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void exite() { public void exite() {
EMClient.getInstance().logout(true); EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo(); UserManager.getInstance().clearUserInfo();
MyApplication.getAppContext().exiteAllActivity(); AppManager.getInstance().finishAllActivity();
mView.startActivity(LoginActivity.class); mView.startActivity(LoginActivity.class);
MobclickAgent.onEvent(MyApplication.getContext(), "login_out"); MobclickAgent.onEvent(MyApplication.getContext(), "login_out");
} }
...@@ -138,7 +137,7 @@ public class SettingPresenter extends SettingContract.Presenter { ...@@ -138,7 +137,7 @@ public class SettingPresenter extends SettingContract.Presenter {
public void dumpToFeed() { public void dumpToFeed() {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.TYPE, Constants.FEED_BACK); bundle.putInt(Constants.TYPE, Constants.FEED_BACK);
mView.startActivity(CommonSubmiteActivity.class, bundle); mView.startActivity(FeedBackActivity.class, bundle);
MobclickAgent.onEvent(MyApplication.getContext(), "feed_back"); MobclickAgent.onEvent(MyApplication.getContext(), "feed_back");
} }
......
package com.dayu.bigfish.ui; package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.databinding.ActivityFeedbackBinding; import com.dayu.bigfish.databinding.ActivityFeedbackBinding;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmiteContract; import com.dayu.bigfish.presenter.feedBack.FeedBackContract;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmitePresenter; import com.dayu.bigfish.presenter.feedBack.FeedBackPresenter;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
*/ */
public class CommonSubmiteActivity extends BaseActivity<CommonSubmitePresenter, ActivityFeedbackBinding> public class FeedBackActivity extends BaseActivity<FeedBackPresenter, ActivityFeedbackBinding>
implements CommonSubmiteContract.View { implements FeedBackContract.View {
@Override @Override
public int getLayoutId() { public int getLayoutId() {
......
...@@ -16,28 +16,29 @@ import android.view.View; ...@@ -16,28 +16,29 @@ import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.api.DownloadService;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.BuildConfig; import com.dayu.bigfish.BuildConfig;
import com.dayu.bigfish.MyApplication; import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R; import com.dayu.bigfish.R;
import com.dayu.base.api.DownloadService;
import com.dayu.bigfish.bean.InformBean; import com.dayu.bigfish.bean.InformBean;
import com.dayu.bigfish.bean.VersionInfo; 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.databinding.ActivityMainBinding;
import com.dayu.bigfish.presenter.main.MainContract; import com.dayu.bigfish.presenter.main.MainContract;
import com.dayu.bigfish.presenter.main.MainPresenter; import com.dayu.bigfish.presenter.main.MainPresenter;
import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment; 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.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.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.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
...@@ -50,7 +51,7 @@ import java.io.File; ...@@ -50,7 +51,7 @@ import java.io.File;
* Created by luofan * Created by luofan
* on 2017/11/20. * on 2017/11/20.
*/ */
@Route(path = RouterPath.PATH_MAIN) @Route(path = BaseRouterPath.PATH_MAIN)
public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBinding> implements MainContract.View { public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBinding> implements MainContract.View {
private int mPosition = 0; private int mPosition = 0;
private FragmentManager mFragmentManger; private FragmentManager mFragmentManger;
......
...@@ -6,7 +6,7 @@ import com.dayu.bigfish.R; ...@@ -6,7 +6,7 @@ import com.dayu.bigfish.R;
import com.dayu.bigfish.databinding.ActivitySettingBinding; import com.dayu.bigfish.databinding.ActivitySettingBinding;
import com.dayu.bigfish.presenter.setting.SettingContract; import com.dayu.bigfish.presenter.setting.SettingContract;
import com.dayu.bigfish.presenter.setting.SettingPresenter; 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.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener; import com.dayu.widgets.listener.OnCloseListener;
...@@ -14,7 +14,7 @@ import com.dayu.widgets.listener.OnCloseListener; ...@@ -14,7 +14,7 @@ import com.dayu.widgets.listener.OnCloseListener;
* 设置页面 * 设置页面
* 2017/9/2. * 2017/9/2.
*/ */
@Route(path = RouterPath.PATH_SETTING) @Route(path = BaseRouterPath.PATH_SETTING)
public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySettingBinding> public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySettingBinding>
implements SettingContract.View { 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 @@ ...@@ -6,7 +6,7 @@
<variable <variable
name="presenter" name="presenter"
type="com.dayu.bigfish.presenter.commonSubmite.CommonSubmitePresenter" /> type="com.dayu.bigfish.presenter.feedBack.FeedBackPresenter" />
</data> </data>
<LinearLayout <LinearLayout
......
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
</style> </style>
<style name="Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
<declare-styleable name="CircleHead"> <declare-styleable name="CircleHead">
<attr name="circleBorderHeadWidth" format="dimension"/> <attr name="circleBorderHeadWidth" format="dimension"/>
<attr name="ringHeadColor" format="color"/> <attr name="ringHeadColor" format="color"/>
......
...@@ -17,7 +17,7 @@ android { ...@@ -17,7 +17,7 @@ android {
buildTypes { buildTypes {
release { release {
minifyEnabled true minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
...@@ -52,5 +52,13 @@ dependencies { ...@@ -52,5 +52,13 @@ dependencies {
compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5' compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
//ARouter //ARouter
compile "com.alibaba:arouter-api:$arouter_api_version" 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" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.baselibrary"> 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> </manifest>
...@@ -105,7 +105,7 @@ public class Api { ...@@ -105,7 +105,7 @@ public class Api {
public Response intercept(Chain chain) throws IOException { public Response intercept(Chain chain) throws IOException {
Request request = chain.request(); Request request = chain.request();
String token = (String) SPUtils.get(BaseConstant.TOKEN, ""); 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)) { if (!TextUtils.isEmpty(token) && !request.url().toString().contains(Constants.BASE_URL + Constants.LOGIN_URL)) {
request = request.newBuilder() request = request.newBuilder()
.header(BaseConstant.TOKEN, token) .header(BaseConstant.TOKEN, token)
......
...@@ -7,21 +7,24 @@ import android.os.Bundle; ...@@ -7,21 +7,24 @@ import android.os.Bundle;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
import com.dayu.common.BaseConstant; import com.dayu.common.BaseConstant;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.utils.AppManager;
import com.dayu.utils.ProgressUtil; import com.dayu.utils.ProgressUtil;
import com.dayu.utils.TUtil; import com.dayu.utils.TUtil;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType; 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> public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends DataBindingActivity<B>
implements BaseView { implements BaseView {
...@@ -141,9 +144,10 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi ...@@ -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) CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> { , (dialog, confirm) -> {
if (confirm) { if (confirm) {
// EMClient.getInstance().logout(true); EMClient.getInstance().logout(true);
// UserManager.getInstance().clearUserInfo(); UserManager.getInstance().clearUserInfo();
BaseApplication.getBaseApp().exiteAllActivity(); AppManager.getInstance().finishAllActivity();
AppManager.getInstance().finishAllActivity();
ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation(); ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
} }
dialog.dismiss(); dialog.dismiss();
......
...@@ -7,14 +7,16 @@ import android.os.Bundle; ...@@ -7,14 +7,16 @@ import android.os.Bundle;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication;
import com.dayu.common.BaseConstant; import com.dayu.common.BaseConstant;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.utils.AppManager;
import com.dayu.utils.ProgressUtil; import com.dayu.utils.ProgressUtil;
import com.dayu.utils.TUtil; import com.dayu.utils.TUtil;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
...@@ -134,10 +136,9 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi ...@@ -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) CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> { , (dialog, confirm) -> {
if (confirm) { if (confirm) {
// UserManager.getInstance().clearUserInfo(); EMClient.getInstance().logout(true);
// EMClient.getInstance().logout(true); UserManager.getInstance().clearUserInfo();
// UserManager.getInstance().clearUserInfo(); AppManager.getInstance().finishAllActivity();
BaseApplication.getBaseApp().exiteAllActivity();
ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation(); ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
} }
dialog.dismiss(); dialog.dismiss();
......
...@@ -8,8 +8,7 @@ import android.support.multidex.MultiDex; ...@@ -8,8 +8,7 @@ import android.support.multidex.MultiDex;
import android.support.multidex.MultiDexApplication; import android.support.multidex.MultiDexApplication;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.utils.AppManager;
import java.util.Stack;
/** /**
* Created by luofan * Created by luofan
...@@ -18,7 +17,6 @@ import java.util.Stack; ...@@ -18,7 +17,6 @@ import java.util.Stack;
public class BaseApplication extends MultiDexApplication { public class BaseApplication extends MultiDexApplication {
private static Context mContext; private static Context mContext;
private Stack<Activity> store;
private static BaseApplication myApplication; private static BaseApplication myApplication;
@Override @Override
...@@ -27,7 +25,6 @@ public class BaseApplication extends MultiDexApplication { ...@@ -27,7 +25,6 @@ public class BaseApplication extends MultiDexApplication {
MultiDex.install(this); MultiDex.install(this);
myApplication = this; myApplication = this;
mContext = this.getApplicationContext(); mContext = this.getApplicationContext();
store = new Stack<>();
registerActivityLifecycleCallbacks(new SwitchBackgroundCallbacks()); registerActivityLifecycleCallbacks(new SwitchBackgroundCallbacks());
//ARouter初始化 //ARouter初始化
ARouter.openLog(); // 打印日志 ARouter.openLog(); // 打印日志
...@@ -35,23 +32,6 @@ public class BaseApplication extends MultiDexApplication { ...@@ -35,23 +32,6 @@ public class BaseApplication extends MultiDexApplication {
ARouter.init(this); 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() { public static Context getContext() {
return mContext; return mContext;
...@@ -65,7 +45,7 @@ public class BaseApplication extends MultiDexApplication { ...@@ -65,7 +45,7 @@ public class BaseApplication extends MultiDexApplication {
@Override @Override
public void onActivityCreated(Activity activity, Bundle bundle) { public void onActivityCreated(Activity activity, Bundle bundle) {
store.add(activity); AppManager.getInstance().addActivity(activity);
} }
@Override @Override
...@@ -95,7 +75,7 @@ public class BaseApplication extends MultiDexApplication { ...@@ -95,7 +75,7 @@ public class BaseApplication extends MultiDexApplication {
@Override @Override
public void onActivityDestroyed(Activity activity) { public void onActivityDestroyed(Activity activity) {
store.remove(activity); AppManager.getInstance().remove(activity);
} }
} }
} }
package com.dayu.bigfish.bean.event; package com.dayu.event;
import java.io.Serializable; import java.io.Serializable;
......
package com.dayu.bigfish.bean.event; package com.dayu.event;
/** /**
* 刷新各tab状态的数量 * 刷新各tab状态的数量
......
package com.dayu.bigfish.utils.managers; package com.dayu.utils;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
...@@ -7,7 +7,7 @@ import android.content.Context; ...@@ -7,7 +7,7 @@ import android.content.Context;
import java.util.Stack; import java.util.Stack;
public class AppManager { public class AppManager {
private static Stack<Activity> activityStack = new Stack<Activity>(); private static Stack<Activity> activityStack = new Stack<>();
private static AppManager instance; private static AppManager instance;
private AppManager() { private AppManager() {
...@@ -16,7 +16,7 @@ public class AppManager { ...@@ -16,7 +16,7 @@ public class AppManager {
/** /**
* 单一实例 * 单一实例
*/ */
public static AppManager getAppManager() { public static AppManager getInstance() {
if (instance == null) { if (instance == null) {
instance = new AppManager(); instance = new AppManager();
} }
...@@ -28,12 +28,22 @@ public class AppManager { ...@@ -28,12 +28,22 @@ public class AppManager {
*/ */
public void addActivity(Activity activity) { public void addActivity(Activity activity) {
if (activityStack == null) { if (activityStack == null) {
activityStack = new Stack<Activity>(); activityStack = new Stack<>();
} }
activityStack.add(activity); activityStack.add(activity);
} }
/** /**
* 移除activity
*/
public void remove(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<>();
}
activityStack.remove(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的) * 获取当前Activity(堆栈中最后一个压入的)
*/ */
public Activity currentActivity() { public Activity currentActivity() {
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import com.dayu.bigfish.MyApplication; import com.dayu.common.BaseApplication;
/** /**
* Created by luofan on 2017/11/7. * Created by luofan on 2017/11/7.
...@@ -16,7 +17,7 @@ public class AppUtils { ...@@ -16,7 +17,7 @@ public class AppUtils {
*/ */
public static String getIMEI() { 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(); String imei = telephonyManager.getDeviceId();
return imei; return imei;
...@@ -29,7 +30,7 @@ public class AppUtils { ...@@ -29,7 +30,7 @@ public class AppUtils {
*/ */
public static String getPackageNum() { public static String getPackageNum() {
try { 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; String packageName = packageInfo.versionName;
return packageName; return packageName;
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.content.Context; import android.content.Context;
import android.os.Environment; import android.os.Environment;
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.content.Context; import android.content.Context;
import android.support.annotation.DrawableRes; import android.support.annotation.DrawableRes;
...@@ -7,7 +7,7 @@ import android.widget.ImageView; ...@@ -7,7 +7,7 @@ import android.widget.ImageView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions; 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; import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
...@@ -26,7 +26,7 @@ public class GlideImageLoader { ...@@ -26,7 +26,7 @@ public class GlideImageLoader {
public static void load(Context context, String imageRes, ImageView view) { public static void load(Context context, String imageRes, ImageView view) {
RequestOptions options = new RequestOptions() RequestOptions options = new RequestOptions()
.centerCrop() .centerCrop()
.placeholder(R.mipmap.camera) .placeholder(R.drawable.camera)
.diskCacheStrategy(DiskCacheStrategy.ALL); .diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(context) Glide.with(context)
.load(imageRes) .load(imageRes)
......
package com.dayu.bigfish.utils; package com.dayu.utils;
/** /**
* Created by luofan on 2017/11/24. * Created by luofan on 2017/11/24.
......
...@@ -11,7 +11,6 @@ import java.util.List; ...@@ -11,7 +11,6 @@ import java.util.List;
* @author itheima * @author itheima
* @time 2017-8-20 上午11:33:49 * @time 2017-8-20 上午11:33:49
* @des 日志级别是LEVEL_ALL显示所有信息,包括System.out.println信息 * @des 日志级别是LEVEL_ALL显示所有信息,包括System.out.println信息
* @des 日志级别是LEVEL_OFF关闭所有信息,包括System.out.println信息
*/ */
public class LogUtils { public class LogUtils {
/** 日志输出时的TAG */ /** 日志输出时的TAG */
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
......
package com.dayu.bigfish.utils; package com.dayu.utils;
/** /**
* Created by yu on 2017/10/24. * Created by yu on 2017/10/24.
...@@ -13,8 +13,6 @@ import android.net.wifi.WifiManager; ...@@ -13,8 +13,6 @@ import android.net.wifi.WifiManager;
import android.os.Parcelable; import android.os.Parcelable;
import android.util.Log; import android.util.Log;
import com.dayu.utils.ToastUtils;
/** /**
* 网络改变监控广播 * 网络改变监控广播
* <p> * <p>
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
......
package com.dayu.bigfish.utils; package com.dayu.utils;
import android.text.Html; import android.text.Html;
import android.text.Spannable; import android.text.Spannable;
...@@ -8,8 +8,6 @@ import android.text.TextUtils; ...@@ -8,8 +8,6 @@ import android.text.TextUtils;
import android.text.style.CharacterStyle; import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import com.dayu.utils.UIUtils;
import java.text.DecimalFormat; import java.text.DecimalFormat;
public class StringUtils { public class StringUtils {
......
...@@ -32,6 +32,10 @@ public class UserManager { ...@@ -32,6 +32,10 @@ public class UserManager {
} }
} }
public void saveUserForJson(String json){
SPUtils.put("USER_INFO",json);
}
public UserInfo getUser() { public UserInfo getUser() {
return new Gson().fromJson((String) SPUtils.get("big_fish", "USER_INFO", ""), UserInfo.class); 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.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
......
package com.dayu.bigfish.ui.views; package com.dayu.widgets;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
...@@ -9,7 +9,8 @@ import android.graphics.PathEffect; ...@@ -9,7 +9,8 @@ import android.graphics.PathEffect;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import com.dayu.bigfish.R; import com.dayu.baselibrary.R;
/** /**
* Created by luofan on 2018/1/23. * Created by luofan on 2018/1/23.
......
...@@ -8,6 +8,11 @@ ...@@ -8,6 +8,11 @@
<item name="colorAccent">@color/cl_accent</item> <item name="colorAccent">@color/cl_accent</item>
</style> </style>
<style name="Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
<style name="title"> <style name="title">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/size_main_title</item> <item name="android:layout_height">@dimen/size_main_title</item>
......
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
# This option should only be used with decoupled projects. More details, visit # 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 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true # org.gradle.parallel=true
##模块化开关,单独调试时 false,作为模块 true ##模块化开关,单独调试时 false,作为模块 true
##用户模块 ##用户模块
isUserModule=false isUserModule=true
##消息模块 ##消息模块
isMessageModule=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.content.Context;
import android.os.Handler;
import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener; 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. * Created by luofan on 2017/11/21.
...@@ -22,9 +18,10 @@ public class LocationUtils { ...@@ -22,9 +18,10 @@ public class LocationUtils {
public static AMapLocationClientOption mLocationOption = null; public static AMapLocationClientOption mLocationOption = null;
public static AMapLocation sLocation = null; public static AMapLocation sLocation = null;
private static boolean flag = true; private static boolean flag = true;
private static Disposable mDisposable; // private static Disposable mDisposable;
private static long time; private static long time;
private static MyLocationListener mListener; private static MyLocationListener mListener;
private static Handler mHandler;
/** /**
* @param context * @param context
...@@ -78,16 +75,19 @@ public class LocationUtils { ...@@ -78,16 +75,19 @@ public class LocationUtils {
return; return;
} }
flag = true; flag = true;
// 刷新有时不回调. mHandler = new Handler();
mDisposable = Observable.timer(8000, TimeUnit.MILLISECONDS) //刷新有时不回调.
.subscribe(aLong -> { mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (flag) { if (flag) {
// ToastUtils.showShortToast("获取定位失败");
mListener.result(null); mListener.result(null);
flag = false; flag = false;
mlocationClient.stopLocation(); mlocationClient.stopLocation();
} }
}); }
}, 8000);
time = System.currentTimeMillis(); time = System.currentTimeMillis();
mlocationClient.setLocationListener(new AMapLocationListener() { mlocationClient.setLocationListener(new AMapLocationListener() {
...@@ -99,13 +99,10 @@ public class LocationUtils { ...@@ -99,13 +99,10 @@ public class LocationUtils {
mlocationClient.stopLocation(); mlocationClient.stopLocation();
sLocation = location; sLocation = location;
mListener.result(location); mListener.result(location);
LogUtils.d(System.currentTimeMillis() - time + " " +location.toString());
} else if ((location == null && flag)) { } else if ((location == null && flag)) {
LogUtils.d("location:" + location.getErrorCode());
flag = false; flag = false;
mlocationClient.stopLocation(); mlocationClient.stopLocation();
mListener.result(location); mListener.result(location);
// ToastUtils.showShortToast("定位失败了");
} }
} }
}); });
...@@ -118,9 +115,7 @@ public class LocationUtils { ...@@ -118,9 +115,7 @@ public class LocationUtils {
* @Description: 销毁定位,必须在退出程序时调用,否则定位会发生异常 * @Description: 销毁定位,必须在退出程序时调用,否则定位会发生异常
*/ */
public static void destroy() { public static void destroy() {
if (mDisposable != null) { mHandler = null;
mDisposable.dispose();
}
mlocationClient.onDestroy(); 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 { ...@@ -58,10 +58,6 @@ android {
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) 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 //ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version" annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
compile project(':provider') compile project(':provider')
......
...@@ -10,8 +10,8 @@ import com.dayu.common.Constants; ...@@ -10,8 +10,8 @@ import com.dayu.common.Constants;
import com.dayu.message.R; import com.dayu.message.R;
import com.dayu.message.data.protocol.NewMessage; import com.dayu.message.data.protocol.NewMessage;
import com.dayu.message.databinding.ActivityMessageDetailBinding; import com.dayu.message.databinding.ActivityMessageDetailBinding;
import com.dayu.provider.common.ProviderConstant; import com.dayu.provider.common.ProviderConstant123;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.BaseRouterPath;
import com.dayu.utils.UtilsDate; import com.dayu.utils.UtilsDate;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
...@@ -79,8 +79,8 @@ public class MessageDetailActivity extends DataBindingActivity<ActivityMessageDe ...@@ -79,8 +79,8 @@ public class MessageDetailActivity extends DataBindingActivity<ActivityMessageDe
} }
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, id); bundle.putInt(Constants.ORDER_ID, id);
ARouter.getInstance().build(RouterPath.PATH_ORDER_DETAIL) ARouter.getInstance().build(BaseRouterPath.PATH_ORDER_DETAIL)
.withBundle(ProviderConstant.BUNDLE, bundle) .withBundle(ProviderConstant123.BUNDLE, bundle)
.navigation(); .navigation();
MobclickAgent.onEvent(mActivity, "message_check_order"); MobclickAgent.onEvent(mActivity, "message_check_order");
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
android:label="@string/app_name" android:label="@string/app_name"
android:supportsRtl="true"> android:supportsRtl="true">
<activity android:name="com.dayu.message.ui.activity.TestActivity" /> <activity android:name="com.dayu.message.ui.activity.TestActivity" />
<activity android:name=".ui.activity.MessageDetailActivity"/>
</application> </application>
</manifest> </manifest>
...@@ -3,6 +3,7 @@ if (isOrderModule.toBoolean()) { ...@@ -3,6 +3,7 @@ if (isOrderModule.toBoolean()) {
} else { } else {
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
} }
apply plugin: 'org.greenrobot.greendao'
android { android {
compileSdkVersion compile_sdk_version compileSdkVersion compile_sdk_version
...@@ -55,13 +56,15 @@ android { ...@@ -55,13 +56,15 @@ android {
} }
} }
greendao {
schemaVersion 2
daoPackage 'com.dayu.order.greendao'
targetGenDir 'src/main/java'
}
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) 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 //ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version" annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
compile project(':provider') compile project(':provider')
......
...@@ -7,12 +7,56 @@ ...@@ -7,12 +7,56 @@
android:label="@string/app_name" android:label="@string/app_name"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name=".ui.activity.TestActivity"> <activity
android:name=".ui.activity.TestActivity"
android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </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> </application>
</manifest> </manifest>
package com.dayu.order.api; 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 * Created by luofan
* on 2018/2/8. * on 2018/2/8.
*/ */
public class OrderApiFactory { 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; 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 * Created by luofan
* on 2018/2/8. * 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. * Created by luofan on 2017/11/19.
*/ */
public class ErrorOrder { public class ErrorOrder {
private int id; private int id;
private String orderNum; private String orderNum;
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
/** /**
* Created by luofan on 2018/1/19. * Created by luofan on 2018/1/19.
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
import java.util.List; import java.util.List;
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
/** /**
* 工单列表,异常单列表,工单记录列表的bean * 工单列表,异常单列表,工单记录列表的bean
* Created by luofan on 2017/11/14. * Created by luofan on 2017/11/14.
*/ */
public class Order { public class Order {
/** /**
* id : 20 * id : 20
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
...@@ -6,7 +6,6 @@ import java.util.List; ...@@ -6,7 +6,6 @@ import java.util.List;
/** /**
* Created by luofan on 2017/11/14. * Created by luofan on 2017/11/14.
*/ */
public class OrderDetail implements Serializable { public class OrderDetail implements Serializable {
private int id; private int id;
private String orderNum; private String orderNum;
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Created by luofan on 2018/1/20. * Created by luofan on 2018/1/20.
*/ */
public class OrderPart implements Serializable { public class OrderPart implements Serializable {
private Integer id; private Integer id;
private String partName; private String partName;
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
/** /**
* Created by luofan * Created by luofan
......
package com.dayu.bigfish.bean; package com.dayu.order.api.protocol;
/** /**
* Created by luofan on 2018/1/24. * 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. * 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. * on 2017/10/11.
*/ */
public class RefreshApoiment { public class RefreshApoiment {
private int tabNum; private int tabNum;
......
package com.dayu.bigfish.bean.event; package com.dayu.order.event;
/** /**
* 刷新带服务列表 * 刷新带服务列表
......
package com.dayu.bigfish.bean.event; package com.dayu.order.event;
/** /**
* 刷新带服务列表 * 刷新带服务列表
* on 2017/10/11. * on 2017/10/11.
*/ */
public class RefreshServe { public class RefreshServe {
private int tabNum; private int tabNum;
......
package com.dayu.bigfish.bean.event; package com.dayu.order.event;
/** /**
* Created by luofan on 2017/12/1. * Created by luofan on 2017/12/1.
......
package com.dayu.bigfish.greendao; package com.dayu.order.greendao;
import android.content.Context; import android.content.Context;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
......
package com.dayu.bigfish.greendao; package com.dayu.order.greendao;
import java.util.Map; import java.util.Map;
...@@ -8,9 +8,9 @@ import org.greenrobot.greendao.database.Database; ...@@ -8,9 +8,9 @@ import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType; import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig; 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. // 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. * Created by luofan on 2017/11/4.
...@@ -34,7 +35,7 @@ public class GreenDaoManager { ...@@ -34,7 +35,7 @@ public class GreenDaoManager {
* 初始化数据 * 初始化数据
*/ */
private void init() { private void init() {
MyOpenHelper devOpenHelper = new MyOpenHelper(MyApplication.getContext(), MyOpenHelper devOpenHelper = new MyOpenHelper(BaseApplication.getContext(),
"tell", null); "tell", null);
mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase()); mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
mDaoSession = mDaoMaster.newSession(); mDaoSession = mDaoMaster.newSession();
......
package com.dayu.bigfish.greendao; package com.dayu.order.greendao;
import android.database.Cursor; import android.database.Cursor;
import android.text.TextUtils; import android.text.TextUtils;
......
package com.dayu.bigfish.greendao; package com.dayu.order.greendao;
import android.content.Context; import android.content.Context;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
......
package com.dayu.bigfish.greendao; package com.dayu.order.greendao;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteStatement; import android.database.sqlite.SQLiteStatement;
...@@ -9,10 +9,10 @@ import org.greenrobot.greendao.internal.DaoConfig; ...@@ -9,10 +9,10 @@ import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database; import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement; import org.greenrobot.greendao.database.DatabaseStatement;
import com.dayu.bigfish.bean.sqlbean.StringConverter; import com.dayu.order.sqlbean.StringConverter;
import java.util.List; 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. // 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; 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.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; 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.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.ToastUtils;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsUserAccountMatcher; import com.dayu.utils.UtilsUserAccountMatcher;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.HashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
*/ */
@InstanceFactory public class ApplayAndRefusePresenter extends ApplyAndRefuseContract.Presenter {
public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
private String mUserName; private String mUserName;
private String mUserMobile;
public ObservableField<String> mComment = new ObservableField<>(); public ObservableField<String> mComment = new ObservableField<>();
public ObservableField<String> mTitle = new ObservableField<>(); public ObservableField<String> mTitle = new ObservableField<>();
public ObservableField<String> mHint = new ObservableField<>(); public ObservableField<String> mHint = new ObservableField<>();
...@@ -41,17 +32,12 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter { ...@@ -41,17 +32,12 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
@Override @Override
public void onAttached() { public void onAttached() {
mUserName = UserManager.getInstance().getUser().getAccountName(); mUserName = UserManager.getInstance().getUser().getAccountName();
mUserMobile = UserManager.getInstance().getUserPhone();
mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId()); mAccountId = Integer.parseInt(UserManager.getInstance().getUser().getAccountId());
Bundle bundle = mView.getBundle(); Bundle bundle = mView.getBundle();
mType = bundle.getInt(Constants.TYPE, 0); mType = bundle.getInt(Constants.TYPE, 0);
mOrderId = bundle.getInt(Constants.ORDER_ID, 0); mOrderId = bundle.getInt(Constants.ORDER_ID, 0);
mPartId = bundle.getInt(Constants.PART_ID); mPartId = bundle.getInt(Constants.PART_ID);
switch (mType) { 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: case Constants.APPLY_PART:
mHint.set(UIUtils.getString(R.string.tv_apply_reson_hint)); mHint.set(UIUtils.getString(R.string.tv_apply_reson_hint));
mTitle.set(UIUtils.getString(R.string.tv_apply_order_title)); mTitle.set(UIUtils.getString(R.string.tv_apply_order_title));
...@@ -77,9 +63,6 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter { ...@@ -77,9 +63,6 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
return; return;
} }
switch (mType) { switch (mType) {
case Constants.FEED_BACK:
comFirmSuggist();
break;
case Constants.APPLY_PART: case Constants.APPLY_PART:
applyPart(); applyPart();
break; break;
...@@ -92,26 +75,8 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter { ...@@ -92,26 +75,8 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
} }
@Override @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() { public void applyPart() {
ApiFactory.applyPart(mOrderId, mComment.get(), mUserName, mAccountId).subscribe(baseObserver( OrderApiFactory.applyPart(mOrderId, mComment.get(), mUserName, mAccountId).subscribe(baseObserver(
aBoolean -> { aBoolean -> {
mView.dumpBack(); mView.dumpBack();
EventBus.getDefault().post(new RefreshApplyPart(1)); EventBus.getDefault().post(new RefreshApplyPart(1));
...@@ -120,7 +85,7 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter { ...@@ -120,7 +85,7 @@ public class CommonSubmitePresenter extends CommonSubmiteContract.Presenter {
@Override @Override
public void refusePart() { public void refusePart() {
ApiFactory.refusePart(mPartId, mComment.get()).subscribe(baseObserver( OrderApiFactory.refusePart(mPartId, mComment.get()).subscribe(baseObserver(
aBoolean -> { aBoolean -> {
mView.dumpBack(); mView.dumpBack();
EventBus.getDefault().post(new RefreshApplyPart(1)); 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; import com.dayu.base.ui.presenter.BasePresenter;
...@@ -9,7 +9,7 @@ import com.dayu.common.BaseView; ...@@ -9,7 +9,7 @@ import com.dayu.common.BaseView;
* Created by luo * Created by luo
* on 2016/8/4. * on 2016/8/4.
*/ */
public interface CommonSubmiteContract { public interface ApplyAndRefuseContract {
interface View extends BaseView { interface View extends BaseView {
} }
...@@ -19,11 +19,6 @@ public interface CommonSubmiteContract { ...@@ -19,11 +19,6 @@ public interface CommonSubmiteContract {
public abstract void commite(); public abstract void commite();
/** /**
* 提交反馈意见.
*/
public abstract void comFirmSuggist();
/**
* 申请备件. * 申请备件.
*/ */
public abstract void applyPart(); 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.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.Tab;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.order.api.protocol.Tab;
/** /**
* Created by luo on 2016/8/4. * 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