Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
machine
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hooloo
android
machine
Commits
d264e5f1
Commit
d264e5f1
authored
May 18, 2022
by
wjg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parent
29b287db
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
174 additions
and
80 deletions
+174
-80
app/build.gradle
+4
-1
app/src/main/java/com/ihaoin/hooloo/device/adapter/GoodsAdapter.java
+12
-1
app/src/main/java/com/ihaoin/hooloo/device/adapter/OrderAdapter.java
+4
-4
app/src/main/java/com/ihaoin/hooloo/device/component/NetworkHandler.java
+2
-7
app/src/main/java/com/ihaoin/hooloo/device/data/vo/Order.java
+12
-0
app/src/main/java/com/ihaoin/hooloo/device/data/vo/Sku.java
+2
-2
app/src/main/java/com/ihaoin/hooloo/device/network/HttpUtil.java
+34
-22
app/src/main/java/com/ihaoin/hooloo/device/util/JsonUtils.java
+9
-20
app/src/main/java/com/ihaoin/hooloo/device/view/ConfirmOrderDialog.java
+3
-7
app/src/main/java/com/ihaoin/hooloo/device/view/GoodsDetailDialog.java
+21
-4
app/src/main/java/com/ihaoin/hooloo/device/view/LauncherActivity.java
+0
-0
app/src/main/java/com/ihaoin/hooloo/device/view/MenuPresentation.java
+68
-10
app/src/main/java/com/ihaoin/hooloo/device/view/TrolleyView.java
+2
-1
app/src/main/res/layout/item_goods.xml
+1
-1
No files found.
app/build.gradle
View file @
d264e5f1
...
@@ -56,7 +56,10 @@ dependencies {
...
@@ -56,7 +56,10 @@ dependencies {
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
implementation
'com.alibaba:fastjson:2.0.2.android'
// implementation 'com.alibaba:fastjson:2.0.2.android'
implementation
'com.fasterxml.jackson.core:jackson-databind:2.9.0.pr3'
implementation
'com.fasterxml.jackson.core:jackson-core:2.9.0.pr3'
implementation
'com.fasterxml.jackson.core:jackson-annotations:2.9.0.pr3'
implementation
'com.aliyun.alink.linksdk:iot-linkkit:1.7.2'
implementation
'com.aliyun.alink.linksdk:iot-linkkit:1.7.2'
implementation
'com.aliyun.alink.linksdk:public-channel-core:0.7.7.1'
implementation
'com.aliyun.alink.linksdk:public-channel-core:0.7.7.1'
...
...
app/src/main/java/com/ihaoin/hooloo/device/adapter/GoodsAdapter.java
View file @
d264e5f1
...
@@ -75,6 +75,16 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
...
@@ -75,6 +75,16 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
Sku
sku
=
getSku
(
goods
.
getSkus
());
Sku
sku
=
getSku
(
goods
.
getSkus
());
if
(
sku
==
null
)
{
if
(
sku
==
null
)
{
helper
.
setText
(
R
.
id
.
txt_price
,
String
.
valueOf
(
goods
.
getPrice
()));
helper
.
setText
(
R
.
id
.
txt_discount
,
String
.
valueOf
(
goods
.
getDiscount
()));
helper
.
setGone
(
R
.
id
.
txt_sellout
,
true
);
helper
.
setGone
(
R
.
id
.
butn_add
,
false
);
}
else
{
helper
.
setText
(
R
.
id
.
txt_price
,
String
.
valueOf
(
sku
.
getPrice
()));
helper
.
setText
(
R
.
id
.
txt_discount
,
String
.
valueOf
(
sku
.
getDiscount
()));
if
(
Base
.
FALSE
.
equals
(
sku
.
getState
()))
{
helper
.
setGone
(
R
.
id
.
txt_sellout
,
true
);
helper
.
setGone
(
R
.
id
.
txt_sellout
,
true
);
helper
.
setGone
(
R
.
id
.
butn_add
,
false
);
helper
.
setGone
(
R
.
id
.
butn_add
,
false
);
}
else
{
}
else
{
...
@@ -86,6 +96,7 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
...
@@ -86,6 +96,7 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
ViewGroup
layoutItem
=
helper
.
getView
(
R
.
id
.
layout_item
);
ViewGroup
layoutItem
=
helper
.
getView
(
R
.
id
.
layout_item
);
Utils
.
setTouchDelegate
(
layoutItem
,
Arrays
.
asList
(
butnAdd
),
15
);
Utils
.
setTouchDelegate
(
layoutItem
,
Arrays
.
asList
(
butnAdd
),
15
);
}
}
}
View
layoutItem
=
helper
.
getView
(
R
.
id
.
layout_item
);
View
layoutItem
=
helper
.
getView
(
R
.
id
.
layout_item
);
layoutItem
.
setOnClickListener
(
v
->
Utils
.
showGoodsDetail
(
mContext
,
goods
));
layoutItem
.
setOnClickListener
(
v
->
Utils
.
showGoodsDetail
(
mContext
,
goods
));
...
@@ -104,6 +115,6 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
...
@@ -104,6 +115,6 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
if
(
optional
.
isPresent
())
{
if
(
optional
.
isPresent
())
{
return
optional
.
get
();
return
optional
.
get
();
}
}
return
null
;
return
skus
.
get
(
0
)
;
}
}
}
}
app/src/main/java/com/ihaoin/hooloo/device/adapter/OrderAdapter.java
View file @
d264e5f1
...
@@ -41,21 +41,21 @@ public class OrderAdapter extends BaseAdapter {
...
@@ -41,21 +41,21 @@ public class OrderAdapter extends BaseAdapter {
@Override
@Override
public
boolean
isEmpty
()
{
public
boolean
isEmpty
()
{
return
CollectionUtils
.
isEmpty
(
orders
);
return
CollectionUtils
.
isEmpty
(
getOrders
()
);
}
}
@Override
@Override
public
int
getCount
()
{
public
int
getCount
()
{
return
isEmpty
()
?
0
:
orders
.
size
();
return
isEmpty
()
?
0
:
getOrders
()
.
size
();
}
}
@Override
@Override
public
Object
getItem
(
int
position
)
{
public
Object
getItem
(
int
position
)
{
return
isEmpty
()
?
null
:
orders
.
get
(
position
);
return
isEmpty
()
?
null
:
getOrders
()
.
get
(
position
);
}
}
@Override
@Override
public
long
getItemId
(
int
position
)
{
public
long
getItemId
(
int
position
)
{
return
isEmpty
()
?
0
:
orders
.
get
(
position
).
getOrderId
();
return
isEmpty
()
?
0
:
getOrders
()
.
get
(
position
).
getOrderId
();
}
}
}
}
app/src/main/java/com/ihaoin/hooloo/device/component/NetworkHandler.java
View file @
d264e5f1
package
com
.
ihaoin
.
hooloo
.
device
.
component
;
package
com
.
ihaoin
.
hooloo
.
device
.
component
;
import
android.content.Context
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.os.Message
;
import
android.util.Log
;
import
android.util.Log
;
...
@@ -14,17 +13,13 @@ import com.ihaoin.hooloo.device.config.AppConfig;
...
@@ -14,17 +13,13 @@ import com.ihaoin.hooloo.device.config.AppConfig;
*/
*/
public
abstract
class
NetworkHandler
extends
Handler
{
public
abstract
class
NetworkHandler
extends
Handler
{
private
static
final
String
TAG
=
"Network"
;
private
static
final
String
TAG
=
"Network"
;
private
Context
mContext
;
public
NetworkHandler
(
@NonNull
Context
context
)
{
this
.
mContext
=
context
;
}
@Override
@Override
public
void
handleMessage
(
@NonNull
Message
msg
)
{
public
void
handleMessage
(
@NonNull
Message
msg
)
{
super
.
handleMessage
(
msg
);
super
.
handleMessage
(
msg
);
if
(
AppConfig
.
DEBUG
)
{
if
(
AppConfig
.
DEBUG
)
{
String
msgText
=
String
.
format
(
"返回状态:%s, 返回内容:%s"
,
msg
.
what
,
msg
.
obj
);
String
url
=
msg
.
getData
().
getString
(
"url"
);
String
msgText
=
String
.
format
(
"请求:%s, 返回状态:%s, 返回内容:%s"
,
url
,
msg
.
what
,
msg
.
obj
);
Log
.
d
(
TAG
,
msgText
);
Log
.
d
(
TAG
,
msgText
);
}
}
if
(
msg
==
null
||
msg
.
what
==
0
)
{
if
(
msg
==
null
||
msg
.
what
==
0
)
{
...
...
app/src/main/java/com/ihaoin/hooloo/device/data/vo/Order.java
View file @
d264e5f1
...
@@ -16,6 +16,10 @@ public class Order implements Serializable {
...
@@ -16,6 +16,10 @@ public class Order implements Serializable {
* 流水号
* 流水号
*/
*/
private
String
orderNumber
;
private
String
orderNumber
;
/**
* 状态
*/
private
Integer
state
;
public
Integer
getOrderId
()
{
public
Integer
getOrderId
()
{
return
orderId
;
return
orderId
;
...
@@ -41,6 +45,14 @@ public class Order implements Serializable {
...
@@ -41,6 +45,14 @@ public class Order implements Serializable {
this
.
orderNumber
=
orderNumber
;
this
.
orderNumber
=
orderNumber
;
}
}
public
Integer
getState
()
{
return
state
;
}
public
void
setState
(
Integer
state
)
{
this
.
state
=
state
;
}
@Override
@Override
public
boolean
equals
(
Object
o
)
{
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
this
==
o
)
return
true
;
...
...
app/src/main/java/com/ihaoin/hooloo/device/data/vo/Sku.java
View file @
d264e5f1
package
com
.
ihaoin
.
hooloo
.
device
.
data
.
vo
;
package
com
.
ihaoin
.
hooloo
.
device
.
data
.
vo
;
import
com.
alibaba.fastjson.annotation.JSONField
;
import
com.
fasterxml.jackson.annotation.JsonProperty
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -17,7 +17,7 @@ public class Sku implements Serializable {
...
@@ -17,7 +17,7 @@ public class Sku implements Serializable {
/** 原价 */
/** 原价 */
private
BigDecimal
price
;
private
BigDecimal
price
;
/** 折扣价 */
/** 折扣价 */
@J
SONField
(
name
=
"disCount"
)
@J
sonProperty
(
"disCount"
)
private
BigDecimal
discount
;
private
BigDecimal
discount
;
/** SKU规格 */
/** SKU规格 */
private
List
<
SkuRule
>
rules
;
private
List
<
SkuRule
>
rules
;
...
...
app/src/main/java/com/ihaoin/hooloo/device/network/HttpUtil.java
View file @
d264e5f1
package
com
.
ihaoin
.
hooloo
.
device
.
network
;
package
com
.
ihaoin
.
hooloo
.
device
.
network
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.os.Message
;
import
android.util.Log
;
import
com.alibaba.fastjson2.JSON
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.ihaoin.hooloo.device.config.AppConfig
;
import
com.ihaoin.hooloo.device.config.AppConfig
;
import
com.ihaoin.hooloo.device.util.JsonUtils
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.NetworkInterface
;
import
java.net.NetworkInterface
;
...
@@ -62,44 +62,56 @@ public class HttpUtil {
...
@@ -62,44 +62,56 @@ public class HttpUtil {
private
static
void
onFailure
(
Handler
handler
,
Call
call
,
Exception
e
)
{
private
static
void
onFailure
(
Handler
handler
,
Call
call
,
Exception
e
)
{
try
{
try
{
if
(
AppConfig
.
DEBUG
)
{
//
if (AppConfig.DEBUG) {
String
msgText
=
String
.
format
(
"返回状态:%s, 请求:%s, 返回内容:%s"
,
0
,
call
.
request
().
url
(),
e
.
getMessage
());
//
String msgText = String.format("返回状态:%s, 请求:%s, 返回内容:%s", 0, call.request().url(), e.getMessage());
Log
.
e
(
TAG
,
msgText
);
//
Log.e(TAG, msgText);
}
//
}
if
(
handler
==
null
)
{
if
(
handler
==
null
)
{
return
;
return
;
}
}
Message
msg
=
handler
.
obtainMessage
(
0
,
e
);
sendHandlerMessage
(
0
,
handler
,
call
,
e
);
handler
.
sendMessage
(
msg
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
onFailure
(
handler
,
call
,
e
);
onFailure
(
handler
,
call
,
e
);
}
}
}
}
private
static
void
sendHandlerMessage
(
Integer
what
,
Handler
handler
,
Call
call
,
Object
o
)
{
Message
msg
=
handler
.
obtainMessage
(
what
,
o
);
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
"url"
,
call
.
request
().
url
().
toString
());
msg
.
setData
(
bundle
);
handler
.
sendMessage
(
msg
);
}
private
static
void
onResponse
(
Handler
handler
,
Call
call
,
Response
response
)
{
private
static
void
onResponse
(
Handler
handler
,
Call
call
,
Response
response
)
{
try
{
try
{
String
responseBody
=
response
.
body
().
string
();
// if (AppConfig.DEBUG) {
if
(
AppConfig
.
DEBUG
)
{
// String msgText = String.format("返回状态:%s, 请求:%s, 返回内容:%s", 1, call.request().url(), responseBody);
String
msgText
=
String
.
format
(
"返回状态:%s, 请求:%s, 返回内容:%s"
,
1
,
call
.
request
().
url
(),
responseBody
);
// Log.i(TAG, msgText);
Log
.
i
(
TAG
,
msgText
);
// }
}
if
(
handler
==
null
)
{
if
(
handler
==
null
)
{
return
;
return
;
}
}
if
(
call
.
request
().
url
().
toString
().
contains
(
"checkSku"
))
{
// if (call.request().url().toString().contains("checkSku")) {
responseBody
=
"{\"msg\":\"该产品已经不存在\",\"code\":500}"
;
// responseBody = "{\"msg\":\"该产品已经不存在\",\"code\":500}";
}
// }
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseBody
);
String
responseBody
=
response
.
body
().
string
();
JsonNode
jsonObject
=
JsonUtils
.
getMapper
().
readValue
(
responseBody
,
JsonNode
.
class
);
if
(
jsonObject
==
null
)
{
if
(
jsonObject
==
null
)
{
onFailure
(
handler
,
call
,
new
BizException
(
"返回body为空"
));
onFailure
(
handler
,
call
,
new
BizException
(
"返回body为空"
));
return
;
return
;
}
}
if
(
jsonObject
.
get
Integer
(
"code"
)
==
null
||
jsonObject
.
getInteger
(
"code"
)
!=
200
)
{
if
(
jsonObject
.
get
(
"code"
).
asInt
(
)
!=
200
)
{
onFailure
(
handler
,
call
,
new
BizException
(
jsonObject
.
get
String
(
"msg"
)));
onFailure
(
handler
,
call
,
new
BizException
(
jsonObject
.
get
(
"msg"
).
asText
(
)));
return
;
return
;
}
}
Message
msg
=
handler
.
obtainMessage
(
1
,
jsonObject
.
get
(
"data"
)
==
null
?
""
:
jsonObject
.
get
(
"data"
).
toString
());
handler
.
sendMessage
(
msg
);
sendHandlerMessage
(
1
,
handler
,
call
,
jsonObject
.
get
(
"data"
)
==
null
?
""
:
jsonObject
.
get
(
"data"
).
toString
());
// Message msg = handler.obtainMessage(1, );
// Bundle bundle = new Bundle();
// bundle.putString("url", call.request().url().toString());
// msg.setData(bundle);
// handler.sendMessage(msg);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
onFailure
(
handler
,
call
,
e
);
onFailure
(
handler
,
call
,
e
);
}
}
...
...
app/src/main/java/com/ihaoin/hooloo/device/util/JsonUtils.java
View file @
d264e5f1
package
com
.
ihaoin
.
hooloo
.
device
.
util
;
package
com
.
ihaoin
.
hooloo
.
device
.
util
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
public
class
JsonUtils
{
public
class
JsonUtils
{
// public static <T> T parse(String content, Class<T> valueType) {
// ObjectMapper objectMapper = new ObjectMapper();
public
static
ObjectMapper
getMapper
()
{
// try {
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// return objectMapper.readValue(content, valueType);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
// } catch (Exception e) {
return
objectMapper
;
// e.printStackTrace();
}
// }
// return null;
// }
//
// public static <T> List<T> parseList(String content, Class<T> valueType) {
// ObjectMapper objectMapper = new ObjectMapper();
// try {
// return objectMapper.readValue(content, new TypeReference<ArrayList<T>>() {
// });
// } catch (Exception e) {
// e.printStackTrace();
// }
// return null;
// }
}
}
app/src/main/java/com/ihaoin/hooloo/device/view/ConfirmOrderDialog.java
View file @
d264e5f1
...
@@ -17,7 +17,6 @@ import android.widget.Toast;
...
@@ -17,7 +17,6 @@ import android.widget.Toast;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
com.alibaba.fastjson2.JSON
;
import
com.google.zxing.BarcodeFormat
;
import
com.google.zxing.BarcodeFormat
;
import
com.google.zxing.EncodeHintType
;
import
com.google.zxing.EncodeHintType
;
import
com.google.zxing.MultiFormatWriter
;
import
com.google.zxing.MultiFormatWriter
;
...
@@ -36,6 +35,7 @@ import com.ihaoin.hooloo.device.data.vo.Goods;
...
@@ -36,6 +35,7 @@ import com.ihaoin.hooloo.device.data.vo.Goods;
import
com.ihaoin.hooloo.device.data.vo.Sku
;
import
com.ihaoin.hooloo.device.data.vo.Sku
;
import
com.ihaoin.hooloo.device.network.HttpUtil
;
import
com.ihaoin.hooloo.device.network.HttpUtil
;
import
com.ihaoin.hooloo.device.util.CollectionUtils
;
import
com.ihaoin.hooloo.device.util.CollectionUtils
;
import
com.ihaoin.hooloo.device.util.JsonUtils
;
import
com.ihaoin.hooloo.device.util.RandomUtils
;
import
com.ihaoin.hooloo.device.util.RandomUtils
;
import
com.ihaoin.hooloo.device.util.SharedPreferencesUtils
;
import
com.ihaoin.hooloo.device.util.SharedPreferencesUtils
;
import
com.ihaoin.hooloo.device.util.Utils
;
import
com.ihaoin.hooloo.device.util.Utils
;
...
@@ -123,7 +123,7 @@ public class ConfirmOrderDialog extends Dialog {
...
@@ -123,7 +123,7 @@ public class ConfirmOrderDialog extends Dialog {
try
{
try
{
startLoading
();
startLoading
();
confirmOrderHandler
=
new
ConfirmOrderHandler
(
getContext
()
);
confirmOrderHandler
=
new
ConfirmOrderHandler
();
HttpUtil
.
postConfirmOrder
(
genJson
(),
confirmOrderHandler
);
HttpUtil
.
postConfirmOrder
(
genJson
(),
confirmOrderHandler
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -155,7 +155,7 @@ public class ConfirmOrderDialog extends Dialog {
...
@@ -155,7 +155,7 @@ public class ConfirmOrderDialog extends Dialog {
confirmOrder
.
setScreenNo
(
SharedPreferencesUtils
.
getScreenNo
(
getContext
()));
confirmOrder
.
setScreenNo
(
SharedPreferencesUtils
.
getScreenNo
(
getContext
()));
confirmOrder
.
setSeqNo
(
genSeqNo
());
confirmOrder
.
setSeqNo
(
genSeqNo
());
confirmOrder
.
setGoods
(
goods
);
confirmOrder
.
setGoods
(
goods
);
String
json
=
J
SON
.
toJSON
String
(
confirmOrder
);
String
json
=
J
sonUtils
.
getMapper
().
writeValueAs
String
(
confirmOrder
);
Log
.
d
(
"TEST"
,
json
);
Log
.
d
(
"TEST"
,
json
);
return
json
;
return
json
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -262,10 +262,6 @@ public class ConfirmOrderDialog extends Dialog {
...
@@ -262,10 +262,6 @@ public class ConfirmOrderDialog extends Dialog {
/** 服务器保存购物车信息回调 */
/** 服务器保存购物车信息回调 */
class
ConfirmOrderHandler
extends
NetworkHandler
{
class
ConfirmOrderHandler
extends
NetworkHandler
{
public
ConfirmOrderHandler
(
@NonNull
Context
context
)
{
super
(
context
);
}
@Override
@Override
public
void
handleMessage
(
@NonNull
Message
msg
)
{
public
void
handleMessage
(
@NonNull
Message
msg
)
{
try
{
try
{
...
...
app/src/main/java/com/ihaoin/hooloo/device/view/GoodsDetailDialog.java
View file @
d264e5f1
...
@@ -92,6 +92,8 @@ public class GoodsDetailDialog extends Dialog {
...
@@ -92,6 +92,8 @@ public class GoodsDetailDialog extends Dialog {
}
}
txtName
.
setText
(
goods
.
getName
());
txtName
.
setText
(
goods
.
getName
());
txtPrice
.
setText
(
String
.
valueOf
(
goods
.
getPrice
()));
txtDiscount
.
setText
(
String
.
valueOf
(
goods
.
getDiscount
()));
butnSubtract
.
setOnClickListener
(
v
->
subtractGoods
());
butnSubtract
.
setOnClickListener
(
v
->
subtractGoods
());
butnAdd
.
setOnClickListener
(
v
->
addGoods
());
butnAdd
.
setOnClickListener
(
v
->
addGoods
());
...
@@ -185,11 +187,10 @@ public class GoodsDetailDialog extends Dialog {
...
@@ -185,11 +187,10 @@ public class GoodsDetailDialog extends Dialog {
View
v
=
layoutSpecs
.
getChildAt
(
i
);
View
v
=
layoutSpecs
.
getChildAt
(
i
);
RadioGroup
group
=
v
.
findViewById
(
R
.
id
.
group_spec
);
RadioGroup
group
=
v
.
findViewById
(
R
.
id
.
group_spec
);
RadioButton
button
=
group
.
findViewById
(
group
.
getCheckedRadioButtonId
());
RadioButton
button
=
group
.
findViewById
(
group
.
getCheckedRadioButtonId
());
rules
.
add
((
GoodsRule
)
button
.
getTag
());
if
(
button
==
null
)
{
continue
;
}
}
if
(
CollectionUtils
.
isEmpty
(
rules
))
{
rules
.
add
((
GoodsRule
)
button
.
getTag
());
Toast
.
makeText
(
getContext
(),
R
.
string
.
error_choose_spec
,
Toast
.
LENGTH_LONG
).
show
();
return
;
}
}
checkSku
=
matchSku
(
rules
);
checkSku
=
matchSku
(
rules
);
if
(
checkSku
==
null
)
{
if
(
checkSku
==
null
)
{
...
@@ -201,6 +202,9 @@ public class GoodsDetailDialog extends Dialog {
...
@@ -201,6 +202,9 @@ public class GoodsDetailDialog extends Dialog {
}
}
private
Sku
matchSku
(
List
<
GoodsRule
>
rules
)
{
private
Sku
matchSku
(
List
<
GoodsRule
>
rules
)
{
if
(
CollectionUtils
.
isEmpty
(
rules
))
{
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
goods
.
getSkus
()))
{
if
(
CollectionUtils
.
isEmpty
(
goods
.
getSkus
()))
{
return
null
;
return
null
;
}
}
...
@@ -267,6 +271,7 @@ public class GoodsDetailDialog extends Dialog {
...
@@ -267,6 +271,7 @@ public class GoodsDetailDialog extends Dialog {
layoutOperate
.
setVisibility
(
View
.
GONE
);
layoutOperate
.
setVisibility
(
View
.
GONE
);
layoutButns
.
setVisibility
(
View
.
GONE
);
layoutButns
.
setVisibility
(
View
.
GONE
);
txtSellout
.
setVisibility
(
View
.
VISIBLE
);
txtSellout
.
setVisibility
(
View
.
VISIBLE
);
setAllRuleSellouts
();
// 所有规格设置为售罄
}
}
private
void
setRuleState
(
SkuRule
skuRule
,
Integer
ruleState
)
{
private
void
setRuleState
(
SkuRule
skuRule
,
Integer
ruleState
)
{
...
@@ -285,6 +290,18 @@ public class GoodsDetailDialog extends Dialog {
...
@@ -285,6 +290,18 @@ public class GoodsDetailDialog extends Dialog {
});
});
}
}
private
void
setAllRuleSellouts
()
{
if
(
goods
==
null
||
CollectionUtils
.
isEmpty
(
goods
.
getSpecs
()))
{
return
;
}
goods
.
getSpecs
().
forEach
(
spec
->
{
if
(
CollectionUtils
.
isEmpty
(
spec
.
getRules
()))
{
return
;
}
spec
.
getRules
().
forEach
(
rule
->
rule
.
setState
(
Base
.
FALSE
));
});
}
private
Integer
checkRuleState
(
SkuRule
skuRule
,
List
<
Sku
>
sellIns
)
{
private
Integer
checkRuleState
(
SkuRule
skuRule
,
List
<
Sku
>
sellIns
)
{
if
(
CollectionUtils
.
isEmpty
(
sellIns
))
{
if
(
CollectionUtils
.
isEmpty
(
sellIns
))
{
return
Base
.
FALSE
;
return
Base
.
FALSE
;
...
...
app/src/main/java/com/ihaoin/hooloo/device/view/LauncherActivity.java
View file @
d264e5f1
This diff is collapsed.
Click to expand it.
app/src/main/java/com/ihaoin/hooloo/device/view/MenuPresentation.java
View file @
d264e5f1
...
@@ -5,15 +5,14 @@ import android.content.Context;
...
@@ -5,15 +5,14 @@ import android.content.Context;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.os.Message
;
import
android.util.Log
;
import
android.view.Display
;
import
android.view.Display
;
import
android.widget.GridView
;
import
android.widget.GridView
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
com.alibaba.fastjson2.JSON
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.Glide
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.ihaoin.hooloo.device.HLApplication
;
import
com.ihaoin.hooloo.device.HLApplication
;
import
com.ihaoin.hooloo.device.R
;
import
com.ihaoin.hooloo.device.R
;
import
com.ihaoin.hooloo.device.adapter.OrderAdapter
;
import
com.ihaoin.hooloo.device.adapter.OrderAdapter
;
...
@@ -26,8 +25,10 @@ import com.ihaoin.hooloo.device.data.vo.Order;
...
@@ -26,8 +25,10 @@ import com.ihaoin.hooloo.device.data.vo.Order;
import
com.ihaoin.hooloo.device.data.vo.OrderPkg
;
import
com.ihaoin.hooloo.device.data.vo.OrderPkg
;
import
com.ihaoin.hooloo.device.network.HttpUtil
;
import
com.ihaoin.hooloo.device.network.HttpUtil
;
import
com.ihaoin.hooloo.device.util.CollectionUtils
;
import
com.ihaoin.hooloo.device.util.CollectionUtils
;
import
com.ihaoin.hooloo.device.util.JsonUtils
;
import
com.ihaoin.hooloo.device.util.StringUtils
;
import
com.ihaoin.hooloo.device.util.StringUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.function.Function
;
...
@@ -116,18 +117,26 @@ public class MenuPresentation extends Presentation {
...
@@ -116,18 +117,26 @@ public class MenuPresentation extends Presentation {
}
}
private
void
loadDatas
()
{
private
void
loadDatas
()
{
loadOrdersHandler
=
new
LoadOrdersHandler
(
getContext
()
);
loadOrdersHandler
=
new
LoadOrdersHandler
();
HttpUtil
.
getOrders
(
loadOrdersHandler
);
HttpUtil
.
getOrders
(
loadOrdersHandler
);
}
}
private
void
setDatas
(
String
json
)
{
private
void
setDatas
(
String
json
)
{
pkgs
=
JSON
.
parseArray
(
json
,
OrderPkg
.
class
);
try
{
pkgs
=
JsonUtils
.
getMapper
().
readValue
(
json
,
new
TypeReference
<
List
<
OrderPkg
>>()
{
});
orderDataChanged
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
void
orderDataChanged
()
{
cookingOrders
=
getOrders
(
OrderState
.
COOKING
.
getCode
());
cookingOrders
=
getOrders
(
OrderState
.
COOKING
.
getCode
());
waitingOrders
=
getOrders
(
OrderState
.
WAITING
.
getCode
());
waitingOrders
=
getOrders
(
OrderState
.
WAITING
.
getCode
());
completedOrders
=
getOrders
(
OrderState
.
COMPLETED
.
getCode
());
completedOrders
=
getOrders
(
OrderState
.
COMPLETED
.
getCode
());
cookingAdapter
.
setOrders
(
co
mpleted
Orders
);
cookingAdapter
.
setOrders
(
co
oking
Orders
);
waitingAdapter
.
setOrders
(
waitingOrders
);
waitingAdapter
.
setOrders
(
waitingOrders
);
completedAdapter
.
setOrders
(
completedOrders
);
completedAdapter
.
setOrders
(
completedOrders
);
...
@@ -160,14 +169,14 @@ public class MenuPresentation extends Presentation {
...
@@ -160,14 +169,14 @@ public class MenuPresentation extends Presentation {
}
}
class
LoadOrdersHandler
extends
NetworkHandler
{
class
LoadOrdersHandler
extends
NetworkHandler
{
public
LoadOrdersHandler
(
@NonNull
Context
context
)
{
super
(
context
);
}
@Override
@Override
public
void
handleMessage
(
@NonNull
Message
msg
)
{
public
void
handleMessage
(
@NonNull
Message
msg
)
{
super
.
handleMessage
(
msg
);
super
.
handleMessage
(
msg
);
if
(
msg
.
what
!=
1
)
{
return
;
}
String
body
=
"[{\"state\":1,\"desc\":\"制作中\",\"orders\":[{\"orderId\":1011,\"orderNo\":\"N20220220A19231\",\"orderNumber\":\"Mon101\"},{\"orderId\":1012,\"orderNo\":\"N20220220A19232\",\"orderNumber\":\"Mon102\"},{\"orderId\":1013,\"orderNo\":\"N20220220A19233\",\"orderNumber\":\"Mon103\"}]},{\"state\":2,\"desc\":\"待制作\",\"orders\":[{\"orderId\":1014,\"orderNo\":\"N20220220A19234\",\"orderNumber\":\"Mon104\"},{\"orderId\":1015,\"orderNo\":\"N20220220A19235\",\"orderNumber\":\"Mon105\"},{\"orderId\":1016,\"orderNo\":\"N20220220A19236\",\"orderNumber\":\"Mon106\"},{\"orderId\":1017,\"orderNo\":\"N20220220A19237\",\"orderNumber\":\"Mon107\"},{\"orderId\":1018,\"orderNo\":\"N20220220A19238\",\"orderNumber\":\"Mon108\"}]},{\"state\":3,\"desc\":\"可取餐\",\"orders\":[{\"orderId\":1019,\"orderNo\":\"N20220220A19239\",\"orderNumber\":\"Mon109\"},{\"orderId\":1001,\"orderNo\":\"N20220220A19221\",\"orderNumber\":\"Mon121\"},{\"orderId\":1002,\"orderNo\":\"N20220220A19222\",\"orderNumber\":\"Mon122\"},{\"orderId\":1003,\"orderNo\":\"N20220220A19223\",\"orderNumber\":\"Mon123\"},{\"orderId\":1004,\"orderNo\":\"N20220220A19224\",\"orderNumber\":\"Mon124\"},{\"orderId\":1005,\"orderNo\":\"N20220220A19241\",\"orderNumber\":\"Mon141\"},{\"orderId\":1006,\"orderNo\":\"N20220220A19251\",\"orderNumber\":\"Mon151\"}]}]"
;
String
body
=
"[{\"state\":1,\"desc\":\"制作中\",\"orders\":[{\"orderId\":1011,\"orderNo\":\"N20220220A19231\",\"orderNumber\":\"Mon101\"},{\"orderId\":1012,\"orderNo\":\"N20220220A19232\",\"orderNumber\":\"Mon102\"},{\"orderId\":1013,\"orderNo\":\"N20220220A19233\",\"orderNumber\":\"Mon103\"}]},{\"state\":2,\"desc\":\"待制作\",\"orders\":[{\"orderId\":1014,\"orderNo\":\"N20220220A19234\",\"orderNumber\":\"Mon104\"},{\"orderId\":1015,\"orderNo\":\"N20220220A19235\",\"orderNumber\":\"Mon105\"},{\"orderId\":1016,\"orderNo\":\"N20220220A19236\",\"orderNumber\":\"Mon106\"},{\"orderId\":1017,\"orderNo\":\"N20220220A19237\",\"orderNumber\":\"Mon107\"},{\"orderId\":1018,\"orderNo\":\"N20220220A19238\",\"orderNumber\":\"Mon108\"}]},{\"state\":3,\"desc\":\"可取餐\",\"orders\":[{\"orderId\":1019,\"orderNo\":\"N20220220A19239\",\"orderNumber\":\"Mon109\"},{\"orderId\":1001,\"orderNo\":\"N20220220A19221\",\"orderNumber\":\"Mon121\"},{\"orderId\":1002,\"orderNo\":\"N20220220A19222\",\"orderNumber\":\"Mon122\"},{\"orderId\":1003,\"orderNo\":\"N20220220A19223\",\"orderNumber\":\"Mon123\"},{\"orderId\":1004,\"orderNo\":\"N20220220A19224\",\"orderNumber\":\"Mon124\"},{\"orderId\":1005,\"orderNo\":\"N20220220A19241\",\"orderNumber\":\"Mon141\"},{\"orderId\":1006,\"orderNo\":\"N20220220A19251\",\"orderNumber\":\"Mon151\"}]}]"
;
// setDatas(msg.obj.toString());
setDatas
(
body
);
setDatas
(
body
);
}
}
}
}
...
@@ -175,9 +184,58 @@ public class MenuPresentation extends Presentation {
...
@@ -175,9 +184,58 @@ public class MenuPresentation extends Presentation {
class
OrderStateChangeHandler
extends
Handler
{
class
OrderStateChangeHandler
extends
Handler
{
@Override
@Override
public
void
handleMessage
(
@NonNull
Message
msg
)
{
public
void
handleMessage
(
@NonNull
Message
msg
)
{
try
{
super
.
handleMessage
(
msg
);
super
.
handleMessage
(
msg
);
if
(
msg
.
obj
==
null
)
{
return
;
}
String
msgBody
=
msg
.
obj
.
toString
();
if
(
StringUtils
.
isEmpty
(
msgBody
))
{
return
;
}
Order
order
=
JsonUtils
.
getMapper
().
readValue
(
msgBody
,
Order
.
class
);
if
(
order
==
null
||
order
.
getState
()
==
null
||
order
.
getOrderId
()
==
null
||
order
.
getOrderId
()
<=
0
||
StringUtils
.
isEmpty
(
order
.
getOrderNo
())
||
StringUtils
.
isEmpty
(
order
.
getOrderNumber
()))
{
return
;
}
if
(
CollectionUtils
.
isEmpty
(
pkgs
))
{
pkgs
=
new
ArrayList
<>();
List
<
Order
>
orders
=
new
ArrayList
<>();
orders
.
add
(
order
);
OrderPkg
pkg
=
new
OrderPkg
();
pkg
.
setState
(
order
.
getState
());
pkg
.
setOrders
(
orders
);
pkgs
.
add
(
pkg
);
}
else
{
// 删除订单
pkgs
.
forEach
(
pkg
->
{
if
(
CollectionUtils
.
isEmpty
(
pkg
.
getOrders
()))
{
return
;
}
pkg
.
getOrders
().
remove
(
order
);
});
Log
.
d
(
"TEST"
,
msg
.
obj
.
toString
());
// 添加新订单状态
pkgs
.
forEach
(
pkg
->
{
if
(!
pkg
.
getState
().
equals
(
order
.
getState
()))
{
return
;
}
List
<
Order
>
orders
=
pkg
.
getOrders
();
if
(
CollectionUtils
.
isEmpty
(
orders
))
{
orders
=
new
ArrayList
<>();
}
orders
.
add
(
order
);
pkg
.
setOrders
(
orders
);
});
}
orderDataChanged
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
}
}
app/src/main/java/com/ihaoin/hooloo/device/view/TrolleyView.java
View file @
d264e5f1
...
@@ -19,6 +19,7 @@ import androidx.annotation.NonNull;
...
@@ -19,6 +19,7 @@ import androidx.annotation.NonNull;
import
com.ihaoin.hooloo.device.HLApplication
;
import
com.ihaoin.hooloo.device.HLApplication
;
import
com.ihaoin.hooloo.device.R
;
import
com.ihaoin.hooloo.device.R
;
import
com.ihaoin.hooloo.device.adapter.TrolleyAdapter
;
import
com.ihaoin.hooloo.device.adapter.TrolleyAdapter
;
import
com.ihaoin.hooloo.device.component.NetworkHandler
;
import
com.ihaoin.hooloo.device.data.TrolleyGoods
;
import
com.ihaoin.hooloo.device.data.TrolleyGoods
;
import
com.ihaoin.hooloo.device.data.vo.Goods
;
import
com.ihaoin.hooloo.device.data.vo.Goods
;
import
com.ihaoin.hooloo.device.data.vo.Sku
;
import
com.ihaoin.hooloo.device.data.vo.Sku
;
...
@@ -72,7 +73,7 @@ public class TrolleyView extends RelativeLayout {
...
@@ -72,7 +73,7 @@ public class TrolleyView extends RelativeLayout {
}
}
public
void
prepareAddGoods
(
Goods
goods
,
Sku
sku
,
Integer
count
)
{
public
void
prepareAddGoods
(
Goods
goods
,
Sku
sku
,
Integer
count
)
{
Handler
handler
=
new
Handler
()
{
NetworkHandler
handler
=
new
Network
Handler
()
{
@Override
@Override
public
void
handleMessage
(
@NonNull
Message
msg
)
{
public
void
handleMessage
(
@NonNull
Message
msg
)
{
if
(
msg
.
what
!=
1
)
{
if
(
msg
.
what
!=
1
)
{
...
...
app/src/main/res/layout/item_goods.xml
View file @
d264e5f1
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
android:textColor=
"@color/textSecondPrimary"
android:textColor=
"@color/textSecondPrimary"
android:textSize=
"12sp"
/>
android:textSize=
"12sp"
/>
<LinearLayout
<LinearLayout
android:id=
"@+id/layout_butn"
android:id=
"@+id/layout_butn
s
"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"3dp"
android:layout_marginTop=
"3dp"
...
...
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