Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7c116bb1
authored
Mar 16, 2023
by
luofan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:v303开始服务与定位分开
parent
246edf7b
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
98 additions
and
61 deletions
build.gradle
gradle.properties
locationComponent/src/main/java/com/dayu/location/base/LocationUtils1.java
orderCenter/src/main/java/com/dayu/order/api/OrderApiFactory.java
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
orderCenter/src/main/java/com/dayu/order/common/OrderConstant.java
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/orderDoingContract.java
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
build.gradle
View file @
7c116bb1
...
...
@@ -5,8 +5,8 @@ buildscript {
ext
.
build_tools_version
=
"27.0.3"
ext
.
min_sdk_version
=
19
ext
.
target_sdk_version
=
26
ext
.
version_code
=
30
2
ext
.
verson_name
=
"3.0.
2
"
ext
.
version_code
=
30
3
ext
.
verson_name
=
"3.0.
3
"
ext
.
gradle_version
=
'3.1.4'
ext
.
isReleaseMinify
=
false
ext
.
isDebugMinify
=
false
...
...
gradle.properties
View file @
7c116bb1
...
...
@@ -15,6 +15,6 @@ isLearnModule=true
##maven依赖
mavenMode
=
false
BASE_URL
=
http://47.94.101.239:3112
IS_64_BIT
=
tru
e
IS_64_BIT
=
fals
e
Android.useDeprecatedNdk
=
true
\ No newline at end of file
locationComponent/src/main/java/com/dayu/location/base/LocationUtils1.java
View file @
7c116bb1
...
...
@@ -22,21 +22,18 @@ public class LocationUtils1 {
private
Context
mContext
;
private
static
ArrayList
<
AddressCallback
>
addressCallbacks
;
private
AddressCallback
addressCallback
;
public
AddressCallback
getAddressCallback
()
{
return
addressCallback
;
}
public
void
setAddressCallback
(
AddressCallback
addressCallback
)
{
this
.
addressCallback
=
addressCallback
;
if
(
isInit
){
showLocation
();
}
else
{
isInit
=
true
;
}
}
private
static
Location
location
;
private
boolean
isInit
=
false
;
//是否加载过
private
LocationUtils1
(
Context
context
)
{
mContext
=
context
;
getLocation
();
...
...
@@ -57,21 +54,21 @@ public class LocationUtils1 {
/**
* 添加回调事件
*
* @param addressCallback
*/
private
void
addAddressCallback
(
AddressCallback
addressCallback
){
private
void
addAddressCallback
(
AddressCallback
addressCallback
)
{
addressCallbacks
.
add
(
addressCallback
);
if
(
isInit
){
showLocation
();
}
}
/**
* 移除回调事件
*
* @param addressCallback
*/
public
void
removeAddressCallback
(
AddressCallback
addressCallback
){
if
(
addressCallbacks
.
contains
(
addressCallback
))
{
public
void
removeAddressCallback
(
AddressCallback
addressCallback
)
{
if
(
addressCallbacks
.
contains
(
addressCallback
))
{
addressCallbacks
.
remove
(
addressCallback
);
}
}
...
...
@@ -79,10 +76,11 @@ public class LocationUtils1 {
/**
* 清空回调事件
*/
public
void
cleareAddressCallback
(){
public
void
cleareAddressCallback
()
{
removeLocationUpdatesListener
();
addressCallbacks
.
clear
();
}
private
void
getLocation
()
{
//1.获取位置管理器
locationManager
=
(
LocationManager
)
mContext
.
getSystemService
(
Context
.
LOCATION_SERVICE
);
...
...
@@ -127,16 +125,16 @@ public class LocationUtils1 {
//获取经纬度
private
void
showLocation
()
{
if
(
location
==
null
)
{
if
(
location
==
null
)
{
getLocation
();
}
else
{
}
else
{
double
latitude
=
location
.
getLatitude
();
//纬度
double
longitude
=
location
.
getLongitude
();
//经度
// for(AddressCallback addressCallback:addressCallbacks){
// addressCallback.onGetLocation(latitude,longitude);
// }
if
(
addressCallback
!=
null
)
{
addressCallback
.
onGetLocation
(
latitude
,
longitude
);
if
(
addressCallback
!=
null
)
{
addressCallback
.
onGetLocation
(
latitude
,
longitude
);
}
getAddress
(
latitude
,
longitude
);
}
...
...
@@ -161,7 +159,7 @@ public class LocationUtils1 {
//街道名称:广东省深圳市罗湖区蔡屋围一街深圳瑞吉酒店
// System.out.println("addressLine=====" + addressLine);
}
if
(
addressCallback
!=
null
)
{
if
(
addressCallback
!=
null
)
{
addressCallback
.
onGetAddress
(
address
);
}
// for(AddressCallback addressCallback:addressCallbacks){
...
...
@@ -214,9 +212,11 @@ public class LocationUtils1 {
location
=
locationManager
.
getLastKnownLocation
(
LocationManager
.
NETWORK_PROVIDER
);
showLocation
();
}
public
interface
AddressCallback
{
public
interface
AddressCallback
{
void
onGetAddress
(
Address
address
);
void
onGetLocation
(
double
lat
,
double
lng
);
void
onGetLocation
(
double
lat
,
double
lng
);
}
}
orderCenter/src/main/java/com/dayu/order/api/OrderApiFactory.java
View file @
7c116bb1
...
...
@@ -42,6 +42,10 @@ public class OrderApiFactory {
return
Api
.
getService
(
OrderService
.
class
).
startServer
(
body
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
Boolean
>
updateAddress
(
RequestBody
body
)
{
return
Api
.
getService
(
OrderService
.
class
).
updateAddress
(
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
());
}
...
...
@@ -76,13 +80,14 @@ public class OrderApiFactory {
return
Api
.
getService
(
OrderService
.
class
).
getTabNum
(
userId
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
OrderDetail
>
getOrderInfo
(
int
orderId
,
int
engineerId
)
{
return
Api
.
getService
(
OrderService
.
class
).
getOrderInfo
(
orderId
,
engineerId
).
compose
(
Api
.
applySchedulers
());
public
static
Observable
<
OrderDetail
>
getOrderInfo
(
int
orderId
,
int
engineerId
)
{
return
Api
.
getService
(
OrderService
.
class
).
getOrderInfo
(
orderId
,
engineerId
).
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
<
List
<
OperateInfo
>>
getOperateInfo
(
OperatePostData
data
)
{
return
Api
.
getService
(
OrderService
.
class
).
getOperateInfo
(
data
.
spuIds
).
compose
(
Api
.
applySchedulers
());
}
...
...
@@ -162,8 +167,9 @@ public class OrderApiFactory {
public
static
Observable
<
String
>
createUrl
(
int
orderId
)
{
return
Api
.
getService
(
OrderService
.
class
).
createUrl
(
orderId
).
compose
(
Api
.
applySchedulers
());
}
public
static
Call
<
ResponseBody
>
createWxUrl
(
String
path
,
int
width
)
{
return
Api
.
getService
(
OrderService
.
class
).
createWxUrl
(
path
,
width
);
public
static
Call
<
ResponseBody
>
createWxUrl
(
String
path
,
int
width
)
{
return
Api
.
getService
(
OrderService
.
class
).
createWxUrl
(
path
,
width
);
}
public
static
Observable
<
Boolean
>
queryPayStatus
(
int
siteId
)
{
...
...
@@ -185,14 +191,16 @@ public class OrderApiFactory {
public
static
Observable
<
BasePageBean
<
CommentBean
>>
getComment
(
int
targetId
,
int
status
,
int
targetType
,
int
accountType
,
int
page
,
int
pageSize
)
{
return
Api
.
getService
(
OrderService
.
class
).
getComment
(
targetId
,
page
,
pageSize
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
Boolean
>
addComment
(
CommentPostData
data
)
{
return
Api
.
getService
(
OrderService
.
class
).
addComment
(
data
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
Boolean
>
addCommentReply
(
CommentReplyData
data
)
{
return
Api
.
getService
(
OrderService
.
class
).
addCommentReply
(
data
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
BaseResponse
<
String
>>
verifyOrder
(
String
orderId
,
int
accountId
)
{
return
Api
.
getService
(
OrderService
.
class
).
verifyOrder
(
orderId
,
accountId
).
compose
(
Api
.
applySchedulersSource
());
return
Api
.
getService
(
OrderService
.
class
).
verifyOrder
(
orderId
,
accountId
).
compose
(
Api
.
applySchedulersSource
());
}
}
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
View file @
7c116bb1
...
...
@@ -80,6 +80,15 @@ public interface OrderService {
Observable
<
BaseResponse
<
Integer
>>
startServer
(
@Body
RequestBody
body
);
/**
* 更新地址.
*
* @param body
* @return
*/
@POST
(
OrderConstant
.
UPDATE_ADDRESS
)
Observable
<
BaseResponse
<
Boolean
>>
updateAddress
(
@Body
RequestBody
body
);
/**
* 获取工单记录列表.
*
* @param state
...
...
orderCenter/src/main/java/com/dayu/order/common/OrderConstant.java
View file @
7c116bb1
...
...
@@ -48,6 +48,10 @@ public class OrderConstant {
*/
public
static
final
String
START_SERVE
=
"/api-order/"
+
"orders/onWorkingUpgrade"
;
/**
* 更新地址.
*/
public
static
final
String
UPDATE_ADDRESS
=
"/api-order/"
+
"orders/onWorkingUpgrade/location"
;
/**
* 工单详情信息,包含评价,投诉,服务记录.
*/
public
static
final
String
ORDER_DETAILS
=
"/api-order/"
+
"orders/app/detail"
;
...
...
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
View file @
7c116bb1
package
com
.
dayu
.
order
.
presenter
.
orderdoing
;
import
static
com
.
dayu
.
utils
.
UIUtils
.
getString
;
import
android.databinding.ObservableField
;
import
android.os.Bundle
;
...
...
@@ -36,6 +34,8 @@ import io.reactivex.Observable;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
import
static
com
.
dayu
.
utils
.
UIUtils
.
getString
;
/**
* Created by luofan
* on 2017/11/8.
...
...
@@ -135,14 +135,22 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
}
@Override
public
Observable
<
Integer
>
startServer
(
int
orderId
,
double
latitude
,
double
longitude
)
{
public
Observable
<
Integer
>
startServer
(
int
orderId
)
{
HashMap
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"orderId"
,
orderId
);
JSONObject
jsonObject
=
new
JSONObject
(
params
);
RequestBody
body
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json"
),
jsonObject
.
toString
());
return
OrderApiFactory
.
startServer
(
body
);
}
public
Observable
<
Boolean
>
updateAddress
(
int
orderId
,
double
latitude
,
double
longitude
)
{
HashMap
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"latitude"
,
latitude
);
params
.
put
(
"longitude"
,
longitude
);
params
.
put
(
"orderId"
,
orderId
);
JSONObject
jsonObject
=
new
JSONObject
(
params
);
RequestBody
body
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json"
),
jsonObject
.
toString
());
return
OrderApiFactory
.
startServer
(
body
);
return
OrderApiFactory
.
updateAddress
(
body
);
}
@Override
...
...
orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/orderDoingContract.java
View file @
7c116bb1
...
...
@@ -44,7 +44,7 @@ public interface orderDoingContract {
* @param longitude
* @return
*/
public
abstract
Observable
<
Integer
>
startServer
(
int
orderId
,
double
latitude
,
double
longitude
);
public
abstract
Observable
<
Integer
>
startServer
(
int
orderId
);
public
abstract
void
dumpToFaceCert
(
Order
order
);
...
...
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
View file @
7c116bb1
package
com
.
dayu
.
order
.
ui
.
adapter
;
import
static
com
.
dayu
.
utils
.
UtilsDate
.
FORMAT_ONE
;
import
static
com
.
dayu
.
utils
.
UtilsDate
.
LONG_TIME_FORMAT_TWO
;
import
android.Manifest
;
import
android.app.Activity
;
import
android.content.Intent
;
...
...
@@ -14,7 +11,6 @@ import android.text.TextUtils;
import
android.view.View
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.amap.api.location.AMapLocation
;
import
com.bigkoo.pickerview.builder.OptionsPickerBuilder
;
import
com.bigkoo.pickerview.view.OptionsPickerView
;
import
com.dayu.base.ui.adapter.CoreAdapter
;
...
...
@@ -56,6 +52,9 @@ import java.util.Map;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
static
com
.
dayu
.
utils
.
UtilsDate
.
FORMAT_ONE
;
import
static
com
.
dayu
.
utils
.
UtilsDate
.
LONG_TIME_FORMAT_TWO
;
/**
* 待服务列表的适配器
...
...
@@ -130,7 +129,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
}
holder
.
itemTextUserName
.
setVisibility
(
View
.
VISIBLE
);
holder
.
itemTextUserPhone
.
setVisibility
(
View
.
VISIBLE
);
holder
.
itemTextDizhi
.
setPadding
(
0
,
0
,
0
,
0
);
holder
.
itemTextDizhi
.
setPadding
(
0
,
0
,
0
,
0
);
//工单状态:1未接单2未预约3已预约4进行中5已完成6已取消7订单关闭
//工单子状态:3已预约1未出发|3已预约2已出发|4进行中3无SOP处理|4进行中4SOP未完成|4进行中5SOP已完成
String
time
=
""
;
...
...
@@ -452,7 +451,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if
(
mItem
.
getStatus
()
==
3
)
{
RxPermissions
permissions
=
new
RxPermissions
((
Activity
)
mContext
);
if
(
permissions
.
isGranted
(
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
))
{
getLocation
(
h
,
posiiton
);
startFirstServe
(
h
,
posiiton
);
}
else
{
CustomDialog
mDialog
=
new
CustomDialog
((
Activity
)
mContext
,
com
.
dayu
.
baselibrary
.
R
.
style
.
CustomDialog
,
"大鱼需要你的定位权限,用于记录处理sop的当前位置"
,
(
dialog
,
confirm
)
->
{
...
...
@@ -462,7 +461,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
if
(
aBoolean
)
{
ProgressUtil
.
setCanDismiss
(
false
);
ProgressUtil
.
startLoad
(
mContext
);
getLocation
(
h
,
posiiton
);
startFirstServe
(
h
,
posiiton
);
}
else
{
ToastUtils
.
showShortToast
(
"权限申请失败!"
);
}
...
...
@@ -480,7 +479,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
}
}
private
void
getLocation
(
FragmentOrderdoingItemBinding
h
,
int
posiiton
)
{
private
void
getLocation
()
{
LocationUtils1
.
getInstance
(
mContext
).
setAddressCallback
(
new
LocationUtils1
.
AddressCallback
()
{
@Override
public
void
onGetAddress
(
Address
address
)
{
...
...
@@ -490,28 +489,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
@Override
public
void
onGetLocation
(
double
lat
,
double
lng
)
{
if
(
lat
!=
0
)
{
startFirstServe
(
lat
,
lng
);
}
}
private
void
startFirstServe
(
double
latitude
,
double
longitude
)
{
if
(
mItem
.
getSubStatus
()
==
1
||
mItem
.
getSubStatus
()
==
2
)
{
mPresenter
.
startServer
(
mItem
.
getId
(),
latitude
,
longitude
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
mPresenter
.
baseObserver
(
integer
->
{
ProgressUtil
.
stopLoad
();
mItem
.
setStatus
(
4
);
mItem
.
setSubStatus
(
integer
);
processClick
(
mItem
,
h
,
posiiton
);
mBind
.
tvItemProcess
.
setText
(
mContext
.
getString
(
R
.
string
.
process_order
));
mBind
.
itemUpdataTime
.
setText
(
mContext
.
getString
(
R
.
string
.
need_again_door
));
},
responeThrowable
->
{
if
(
"ORDER0006"
.
equals
(
responeThrowable
.
subCode
))
{
EventBus
.
getDefault
().
post
(
new
RefreshTab
(
3
));
EventBus
.
getDefault
().
post
(
new
RefreshServe
(
1
));
}
}));
// MobclickAgent.onEvent(mContext, "start_server");
updateAddress
(
lat
,
lng
);
}
}
});
...
...
@@ -551,6 +529,35 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
// });
}
private
void
startFirstServe
(
FragmentOrderdoingItemBinding
h
,
int
posiiton
)
{
if
(
mItem
.
getSubStatus
()
==
1
||
mItem
.
getSubStatus
()
==
2
)
{
mPresenter
.
startServer
(
mItem
.
getId
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
mPresenter
.
baseObserver
(
integer
->
{
ProgressUtil
.
stopLoad
();
mItem
.
setStatus
(
4
);
mItem
.
setSubStatus
(
integer
);
processClick
(
mItem
,
h
,
posiiton
);
mBind
.
tvItemProcess
.
setText
(
mContext
.
getString
(
R
.
string
.
process_order
));
mBind
.
itemUpdataTime
.
setText
(
mContext
.
getString
(
R
.
string
.
need_again_door
));
getLocation
();
},
responeThrowable
->
{
if
(
"ORDER0006"
.
equals
(
responeThrowable
.
subCode
))
{
EventBus
.
getDefault
().
post
(
new
RefreshTab
(
3
));
EventBus
.
getDefault
().
post
(
new
RefreshServe
(
1
));
}
}));
// MobclickAgent.onEvent(mContext, "start_server");
}
}
private
void
updateAddress
(
double
lat
,
double
lng
)
{
mPresenter
.
updateAddress
(
mItem
.
getId
(),
lat
,
lng
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
mPresenter
.
baseObserver
(
aBoolean
->
{
}));
}
private
void
dumpSubcribeTimeActivity
(
int
id
,
int
adapterPosition
,
int
state
,
String
time
)
{
// int status = UserManager.getInstance().getUser().getDetectStatus();
// if (state == 2 && (status == 2 || status == 3)) { //没有活体检测的先去进行活体检测
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment