Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
a40f7acb
Commit
a40f7acb
authored
Oct 26, 2020
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改數量調整
parent
f47767b0
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
233 additions
and
131 deletions
+233
-131
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/BillItem.java
+11
-4
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/DiscountItem.java
+2
-7
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/ServiceChargeItem.java
+1
-1
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCart.java
+51
-30
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCartNumberChange.java
+91
-0
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/CouponDiscount.java
+4
-4
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/MemberDiscount.java
+2
-2
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/MultyDiscount.java
+2
-2
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/NomalDiscount.java
+2
-2
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+49
-30
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+9
-44
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+2
-1
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/BillItemAdapter.java
+5
-4
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/DiscountDialog.java
+2
-0
No files found.
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/BillItem.java
View file @
a40f7acb
...
...
@@ -24,9 +24,9 @@ public abstract class BillItem {
public
static
final
byte
BILL_ITEM_NO_ORDER_STATUS
=
0
;
public
static
final
byte
BILL_ITEM_ORDER_SENT_STATUS
=
1
;
public
byte
type
=
ORDER
_DISCOUNT_TYPE
;
public
byte
type
=
NOMAL
_DISCOUNT_TYPE
;
/**整單折扣*/
public
static
final
byte
ORDER
_DISCOUNT_TYPE
=
0
;
public
static
final
byte
NOMAL
_DISCOUNT_TYPE
=
0
;
/**會員等級折扣*/
public
static
final
byte
MEMBER_DISCOUNT_TYPE
=
1
;
/**優惠券折扣*/
...
...
@@ -49,9 +49,9 @@ public abstract class BillItem {
this
.
name
=
name
;
}
public
BillItem
(
String
name
,
double
money
)
{
public
BillItem
(
String
name
,
int
status
)
{
this
.
name
=
name
;
this
.
money
=
money
;
this
.
status
=
status
;
}
public
BillItem
(
String
name
,
double
money
,
int
status
)
{
...
...
@@ -59,4 +59,11 @@ public abstract class BillItem {
this
.
money
=
money
;
this
.
status
=
status
;
}
public
BillItem
(
String
name
,
double
money
,
int
status
,
byte
type
)
{
this
.
name
=
name
;
this
.
money
=
money
;
this
.
status
=
status
;
this
.
type
=
type
;
}
}
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/DiscountItem.java
View file @
a40f7acb
...
...
@@ -18,16 +18,11 @@ public class DiscountItem extends BillItem {
private
MultyDiscount
discount
;
public
DiscountItem
()
{
public
DiscountItem
(
String
name
,
double
money
,
int
status
,
byte
type
)
{
super
(
name
,
money
,
status
,
type
);
}
public
DiscountItem
(
String
name
,
double
money
)
{
super
(
name
,
money
);
}
public
DiscountItem
(
String
name
,
double
money
,
int
status
)
{
super
(
name
,
money
,
status
);
}
public
void
updateBillItem
(
int
type
)
{
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/billItem/ServiceChargeItem.java
View file @
a40f7acb
...
...
@@ -12,7 +12,7 @@ import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
public
class
ServiceChargeItem
extends
BillItem
{
public
ServiceChargeItem
(
String
name
)
{
super
(
name
);
super
(
name
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
);
}
public
double
updateBillItem
(
double
wholeAmount
,
int
serviceCharge
)
{
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCart.java
View file @
a40f7acb
...
...
@@ -75,6 +75,15 @@ public class ShoppingCart {
*/
protected
double
totalAmount
=
0.0
;
/**
* 調整購物車商品數量
*/
private
ShoppingCartNumberChange
cartNumberChange
=
new
ShoppingCartNumberChange
(
orderCommodityList
);
public
void
changeNumber
(
int
number
,
OrderDetail
orderFood
,
OrderDetail
orderMainFood
,
int
select_Full_start_position
,
int
select_Full_end_position
,
ShoppingCartNumberChange
.
OnNumberChangeListener
listener
)
{
cartNumberChange
.
changeNumber
(
number
,
orderFood
,
orderMainFood
,
select_Full_start_position
,
select_Full_end_position
,
listener
);
}
/**
* 將商品添加到購物車
...
...
@@ -108,14 +117,14 @@ public class ShoppingCart {
*
* @param commodity
*/
// public void setCommodityNum(Commodity
commodity, int number) {
// for (Commodity
c : orderCommodityList) {
//
if (c == commodity) {
//
c.setNumber(number);
//
break;
//
}
//
}
//
}
public
void
setCommodityNum
(
OrderDetail
commodity
,
int
number
)
{
for
(
OrderDetail
c
:
orderCommodityList
)
{
if
(
c
==
commodity
)
{
c
.
setNumber
(
number
);
break
;
}
}
}
/**
* 添加賬單項
...
...
@@ -150,7 +159,7 @@ public class ShoppingCart {
* @param multyDiscount
*/
public
void
addMultyDiscount
(
MultyDiscount
multyDiscount
)
{
multyDiscountList
.
add
(
multyDiscount
);
getMultyDiscountList
()
.
add
(
multyDiscount
);
}
/**
...
...
@@ -159,7 +168,7 @@ public class ShoppingCart {
* @param multyDiscount
*/
public
void
delMultyDiscount
(
MultyDiscount
multyDiscount
)
{
multyDiscountList
.
remove
(
multyDiscount
);
getMultyDiscountList
()
.
remove
(
multyDiscount
);
}
/**
...
...
@@ -168,8 +177,8 @@ public class ShoppingCart {
* @param discount
* @return
*/
public
MultyDiscount
addNomalDiscount
(
MultyDiscount
multyDiscounts
,
Discount
discount
)
{
MultyDiscount
nomalDiscount
=
new
NomalDiscount
(
discount
.
getRemark
(),
multyDiscounts
,
discount
);
public
MultyDiscount
addNomalDiscount
ToLinked
(
MultyDiscount
multyDiscounts
,
Discount
discount
,
int
status
)
{
MultyDiscount
nomalDiscount
=
new
NomalDiscount
(
discount
.
getRemark
(),
status
,
multyDiscounts
,
discount
);
return
nomalDiscount
;
}
...
...
@@ -179,8 +188,8 @@ public class ShoppingCart {
* @param discount
* @return
*/
public
MultyDiscount
addMemberDiscount
(
MultyDiscount
multyDiscounts
,
MemberInfo
discount
)
{
MultyDiscount
memberDiscount
=
new
MemberDiscount
(
discount
.
getMemberName
(),
multyDiscounts
,
discount
);
public
MultyDiscount
addMemberDiscount
ToLinked
(
MultyDiscount
multyDiscounts
,
MemberInfo
discount
,
int
status
)
{
MultyDiscount
memberDiscount
=
new
MemberDiscount
(
discount
.
getMemberName
(),
status
,
multyDiscounts
,
discount
);
return
memberDiscount
;
}
...
...
@@ -190,24 +199,24 @@ public class ShoppingCart {
* @param discount
* @return
*/
public
MultyDiscount
addCouponDiscount
(
MultyDiscount
multyDiscounts
,
CouponDiscountBean
discount
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
multyDiscounts
,
discount
);
public
MultyDiscount
addCouponDiscount
ToLinked
(
MultyDiscount
multyDiscounts
,
CouponDiscountBean
discount
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
status
,
multyDiscounts
,
discount
);
return
couponDiscount
;
}
public
MultyDiscount
createNomalDiscount
(
Discount
discount
)
{
MultyDiscount
nomalDiscount
=
new
NomalDiscount
(
discount
.
getRemark
(),
null
,
discount
);
public
MultyDiscount
createNomalDiscount
(
Discount
discount
,
int
status
)
{
MultyDiscount
nomalDiscount
=
new
NomalDiscount
(
discount
.
getRemark
(),
status
,
null
,
discount
);
return
nomalDiscount
;
}
public
MultyDiscount
createMemberDiscount
(
MemberInfo
discount
)
{
MultyDiscount
memberDiscount
=
new
MemberDiscount
(
discount
.
getMemberName
(),
null
,
discount
);
public
MultyDiscount
createMemberDiscount
(
MemberInfo
discount
,
int
status
)
{
MultyDiscount
memberDiscount
=
new
MemberDiscount
(
discount
.
getMemberName
(),
status
,
null
,
discount
);
return
memberDiscount
;
}
public
MultyDiscount
createCouponDiscount
(
CouponDiscountBean
discount
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
null
,
discount
);
public
MultyDiscount
createCouponDiscount
(
CouponDiscountBean
discount
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
status
,
null
,
discount
);
return
couponDiscount
;
}
...
...
@@ -222,11 +231,11 @@ public class ShoppingCart {
for
(
int
i
=
getMultyDiscountList
().
size
()
-
1
;
i
>=
0
;
i
--)
{
MultyDiscount
discount
=
getMultyDiscountList
().
get
(
i
);
if
(
discount
instanceof
NomalDiscount
)
{
multyDiscounts
=
addNomalDiscount
(
multyDiscounts
,
((
NomalDiscount
)
discount
).
getDiscount
());
multyDiscounts
=
addNomalDiscount
ToLinked
(
multyDiscounts
,
((
NomalDiscount
)
discount
).
getDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
MemberDiscount
)
{
multyDiscounts
=
addMemberDiscount
(
multyDiscounts
,
((
MemberDiscount
)
discount
).
getMemberDiscount
());
multyDiscounts
=
addMemberDiscount
ToLinked
(
multyDiscounts
,
((
MemberDiscount
)
discount
).
getMemberDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
CouponDiscount
)
{
multyDiscounts
=
addCouponDiscount
(
multyDiscounts
,
((
CouponDiscount
)
discount
).
getCouponDiscount
());
multyDiscounts
=
addCouponDiscount
ToLinked
(
multyDiscounts
,
((
CouponDiscount
)
discount
).
getCouponDiscount
(),
discount
.
getStatus
());
}
multyDiscountArrays
.
add
(
multyDiscounts
);
}
...
...
@@ -235,12 +244,24 @@ public class ShoppingCart {
money
=
multyDiscounts
.
calculate
(
money
);
}
//更新折扣billItem數據
updateDiscountBillItem
(
multyDiscountArrays
);
return
money
;
}
private
void
updateDiscountBillItem
(
List
<
MultyDiscount
>
multyDiscountArrays
)
{
byte
discountType
=
BillItem
.
NOMAL_DISCOUNT_TYPE
;
for
(
MultyDiscount
discount
:
multyDiscountArrays
)
{
DiscountItem
discountItem
=
new
DiscountItem
(
discount
.
getName
(),
discount
.
getDiscountMoney
(),
discount
.
getStatus
());
if
(
discount
instanceof
NomalDiscount
)
{
discountType
=
BillItem
.
NOMAL_DISCOUNT_TYPE
;
}
else
if
(
discount
instanceof
MemberDiscount
)
{
discountType
=
BillItem
.
MEMBER_DISCOUNT_TYPE
;
}
else
if
(
discount
instanceof
CouponDiscount
)
{
discountType
=
BillItem
.
COUPON_DISCOUNT_TYPE
;
}
DiscountItem
discountItem
=
new
DiscountItem
(
discount
.
getName
(),
discount
.
getDiscountMoney
(),
discount
.
getStatus
(),
discountType
);
discountItem
.
setDiscount
(
discount
);
billItemList
.
add
(
discountItem
);
}
return
money
;
}
public
List
<
MultyDiscount
>
getMultyDiscountList
()
{
...
...
@@ -259,20 +280,20 @@ public class ShoppingCart {
discount
.
setRemark
(
"9折"
);
discount
.
setType
(
1
);
discount
.
setDiscount_value
(
10
);
multyDiscounts
=
shoppingCart
.
addNomalDiscount
(
multyDiscounts
,
discount
);
multyDiscounts
=
shoppingCart
.
addNomalDiscount
ToLinked
(
multyDiscounts
,
discount
,
0
);
shoppingCart
.
addMultyDiscount
(
multyDiscounts
);
CouponDiscountBean
couponDiscountBean
=
new
CouponDiscountBean
();
couponDiscountBean
.
setCouponTypeName1
(
"魚屋立減50元券"
);
couponDiscountBean
.
setAmount
(
50
);
couponDiscountBean
.
setCouponType
((
byte
)
2
);
multyDiscounts
=
shoppingCart
.
addCouponDiscount
(
multyDiscounts
,
couponDiscountBean
);
multyDiscounts
=
shoppingCart
.
addCouponDiscount
ToLinked
(
multyDiscounts
,
couponDiscountBean
,
0
);
shoppingCart
.
addMultyDiscount
(
multyDiscounts
);
MemberInfo
memberInfo2
=
new
MemberInfo
();
memberInfo2
.
setMemberName
(
"白金會員20%"
);
memberInfo2
.
setMemberDiscount
(
20
);
multyDiscounts
=
shoppingCart
.
addMemberDiscount
(
multyDiscounts
,
memberInfo2
);
multyDiscounts
=
shoppingCart
.
addMemberDiscount
ToLinked
(
multyDiscounts
,
memberInfo2
,
0
);
shoppingCart
.
addMultyDiscount
(
multyDiscounts
);
double
discountAfterMoney
=
shoppingCart
.
calculateLinkedDiscounts
(
200
);
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCartNumberChange.java
0 → 100644
View file @
a40f7acb
package
com
.
gingersoft
.
gsa
.
cloud
.
base
.
order
.
cart
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.utils.MoneyUtil
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author : bin
* @create date: 2020-10-26
* @update date: 2020-10-26
* @description:數量改變器
*/
public
class
ShoppingCartNumberChange
{
protected
List
<
OrderDetail
>
mOrderCommodityList
;
public
ShoppingCartNumberChange
(
List
<
OrderDetail
>
orderCommodityList
)
{
this
.
mOrderCommodityList
=
orderCommodityList
;
}
public
void
changeNumber
(
int
number
,
OrderDetail
orderFood
,
OrderDetail
orderMainFood
,
int
select_Full_start_position
,
int
select_Full_end_position
,
OnNumberChangeListener
listener
)
{
changeFoodNumber
(
orderFood
,
number
,
listener
);
changeChildNumber
(
orderFood
,
orderMainFood
,
select_Full_start_position
,
select_Full_end_position
,
number
,
listener
);
}
private
void
changeFoodNumber
(
OrderDetail
orderFood
,
int
number
,
OnNumberChangeListener
listener
)
{
String
currentMaxNumber
=
orderFood
.
getCurrentMaxNumber
();
if
(!
TextUtils
.
isEmpty
(
currentMaxNumber
))
{
if
(
number
>
Integer
.
parseInt
(
currentMaxNumber
))
{
if
(
listener
!=
null
)
{
listener
.
achieveMaximum
(
orderFood
.
getProductName
());
}
orderFood
.
setNumber
(
Integer
.
parseInt
(
currentMaxNumber
));
}
else
{
orderFood
.
setNumber
(
number
);
}
}
else
{
orderFood
.
setNumber
(
number
);
}
setCalculatePrice
(
orderFood
);
}
private
void
changeChildNumber
(
OrderDetail
orderFood
,
OrderDetail
orderMainFood
,
int
select_Full_start_position
,
int
select_Full_end_position
,
int
number
,
OnNumberChangeListener
listener
)
{
int
parentIndex
=
orderFood
.
getMyIndex
();
int
mainNumber
=
orderMainFood
.
getNumber
();
if
(
orderMainFood
.
getItemType
()
==
1
&&
mainNumber
==
1
)
{
//主食品金额为1 子食品金额也为1
for
(
int
i
=
select_Full_start_position
;
i
<=
select_Full_end_position
;
i
++)
{
OrderDetail
datasBean
=
mOrderCommodityList
.
get
(
i
);
if
(
datasBean
.
getParentIndex
()
==
parentIndex
)
{
datasBean
.
setNumber
(
1
);
setCalculatePrice
(
datasBean
);
}
}
}
else
{
for
(
int
i
=
select_Full_start_position
;
i
<=
select_Full_end_position
;
i
++)
{
OrderDetail
datasBean
=
mOrderCommodityList
.
get
(
i
);
if
(
datasBean
.
getParentIndex
()
==
parentIndex
)
{
// if (datasBean.getNumber() == 1) {
String
currentMaxNumber
=
datasBean
.
getCurrentMaxNumber
();
if
(!
TextUtils
.
isEmpty
(
currentMaxNumber
))
{
if
(
number
>
Integer
.
parseInt
(
currentMaxNumber
))
{
datasBean
.
setNumber
(
Integer
.
parseInt
(
currentMaxNumber
));
}
else
{
datasBean
.
setNumber
(
number
);
}
}
else
{
datasBean
.
setNumber
(
number
);
}
setCalculatePrice
(
datasBean
);
}
}
}
}
public
void
setCalculatePrice
(
OrderDetail
datasBean
)
{
double
money
=
datasBean
.
getUnit_price
();
datasBean
.
setUnit_price
(
money
);
datasBean
.
setPrice
(
MoneyUtil
.
multiply
(
money
,
datasBean
.
getNumber
()));
}
public
interface
OnNumberChangeListener
{
void
achieveMaximum
(
String
name
);
}
}
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/CouponDiscount.java
View file @
a40f7acb
...
...
@@ -17,8 +17,8 @@ public class CouponDiscount extends MultyDiscount {
private
CouponDiscountBean
couponDiscount
;
public
CouponDiscount
(
String
name
,
MultyDiscount
nextMultyDiscount
,
CouponDiscountBean
couponDiscount
)
{
super
(
name
,
nextMultyDiscount
);
public
CouponDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
CouponDiscountBean
couponDiscount
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
couponDiscount
=
couponDiscount
;
}
...
...
@@ -31,7 +31,7 @@ public class CouponDiscount extends MultyDiscount {
//未滿足消費滿條件
}
else
{
discountMoney
=
calculationCoupon
(
couponDiscount
,
money
);
money
=
MoneyUtil
.
sum
(
money
,
discountMoney
);
money
=
MoneyUtil
.
sum
(
money
,
discountMoney
);
}
}
return
super
.
calculate
(
money
);
...
...
@@ -49,7 +49,7 @@ public class CouponDiscount extends MultyDiscount {
if
(
couponDiscount
.
getCouponType
()
==
2
)
{
//金額折扣
discountMoney
=
couponDiscount
.
getAmount
();
}
else
{
}
else
{
//百分比折扣
discountMoney
=
MoneyUtil
.
divide
(
MoneyUtil
.
multiply
(
sourceMoney
,
couponDiscount
.
getDiscount
()),
100
).
doubleValue
();
}
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/MemberDiscount.java
View file @
a40f7acb
...
...
@@ -17,8 +17,8 @@ public class MemberDiscount extends MultyDiscount {
private
MemberInfo
memberDiscount
;
public
MemberDiscount
(
String
name
,
MultyDiscount
nextMultyDiscount
,
MemberInfo
memberDiscount
)
{
super
(
name
,
nextMultyDiscount
);
public
MemberDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
MemberInfo
memberDiscount
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
memberDiscount
=
memberDiscount
;
}
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/MultyDiscount.java
View file @
a40f7acb
...
...
@@ -22,8 +22,8 @@ public abstract class MultyDiscount extends BillItem {
*/
protected
double
discountMoney
=
0.0
;
public
MultyDiscount
(
String
name
,
MultyDiscount
nextMultyDiscount
)
{
super
(
name
);
public
MultyDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
)
{
super
(
name
,
status
);
this
.
nextMultyDiscount
=
nextMultyDiscount
;
}
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/discount/NomalDiscount.java
View file @
a40f7acb
...
...
@@ -17,8 +17,8 @@ public class NomalDiscount extends MultyDiscount{
private
Discount
discount
;
public
NomalDiscount
(
String
name
,
MultyDiscount
nextMultyDiscount
,
Discount
discount
)
{
super
(
name
,
nextMultyDiscount
);
public
NomalDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
Discount
discount
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
discount
=
discount
;
}
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
a40f7acb
...
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import
android.app.Activity
;
import
android.app.Application
;
import
android.os.Looper
;
import
android.text.TextUtils
;
import
android.widget.TextView
;
...
...
@@ -11,6 +12,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import
com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean
;
import
com.gingersoft.gsa.cloud.base.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderBean
;
import
com.gingersoft.gsa.cloud.base.order.cart.ShoppingCartNumberChange
;
import
com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount
;
import
com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem
;
...
...
@@ -34,7 +36,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.
OrderMoney
Adapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.
BillItem
Adapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
...
...
@@ -52,6 +54,7 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.logging.Handler
;
import
javax.inject.Inject
;
...
...
@@ -99,13 +102,13 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected
SelectMealAdapter
mSelectMealAdapter
;
/**
*
美食列表
*
賬單項適配器
*/
protected
List
<
OrderDetail
>
mOrderMealList
;
protected
BillItemAdapter
mOrderMoneyAdapter
;
/**
*
賬單項適配器
*
美食列表
*/
protected
OrderMoneyAdapter
mOrderMoneyAdapter
;
protected
List
<
OrderDetail
>
mOrderMealList
;
/**
* 賬單項列表
*/
...
...
@@ -117,7 +120,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
/**
* 訂單信息
*/
protected
BaseOrder
mOrder
;
//
protected BaseOrder mOrder;
/**
* 堂食訂單信息
*/
...
...
@@ -175,14 +178,14 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter
=
(
MealStandPresenter
)
this
;
}
m
Order
=
OrderFactory
.
createOrder
(
FoodSummaryConstans
.
RESTAURANT_MODE
);
BaseOrder
base
Order
=
OrderFactory
.
createOrder
(
FoodSummaryConstans
.
RESTAURANT_MODE
);
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
RESTAURANT_MODE
))
{
mDoshokuOrder
=
(
DoshokuOrder
)
m
Order
;
mDoshokuOrder
=
(
DoshokuOrder
)
base
Order
;
mTableInfo
=
mDoshokuOrder
.
getOpenTableInfo
();
}
else
{
mTakeawayOrder
=
(
TakeawayOrder
)
m
Order
;
mTakeawayOrder
=
(
TakeawayOrder
)
base
Order
;
}
mShoppingCart
=
m
Order
.
getShoppingCart
();
mShoppingCart
=
base
Order
.
getShoppingCart
();
mOrderMealList
=
mShoppingCart
.
getOrderCommodityList
();
mBillItemList
=
mShoppingCart
.
getBillItemList
();
...
...
@@ -253,7 +256,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.
map
(
new
Function
<
Double
,
Double
>()
{
@Override
public
Double
apply
(
Double
totalAmount
)
throws
Exception
{
if
(
orderPlaced
!=
null
)
{
if
(
mMealStandPresenter
!=
null
&&
orderPlaced
!=
null
)
{
//添加已送單折扣
List
<
OrderDiscount
.
Respose
>
orderDiscounts
=
orderPlaced
.
getDiscountDetails
();
if
(
orderDiscounts
!=
null
)
{
...
...
@@ -273,12 +276,12 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
discount
.
setType
(
0
);
discount
.
setAmount
(
orderDiscount
.
getDiscountAmount
());
}
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createNomalDiscount
(
discount
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createNomalDiscount
(
discount
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
else
if
(
orderDiscount
.
getType
()
==
OrderDiscount
.
MEMBER_DISCOUNT
)
{
//會員折扣
MemberInfo
memberInfo
=
mDoshokuOrder
.
getMemberInfo
();
if
(
memberInfo
!=
null
)
{
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberDiscount
(
memberInfo
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberDiscount
(
memberInfo
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
}
else
if
(
orderDiscount
.
getType
()
==
OrderDiscount
.
COUPON_DISCOUNT
)
{
//優惠券折扣
...
...
@@ -290,7 +293,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
couponDiscount
.
setSpend
(
orderDiscount
.
getSpend
());
couponDiscount
.
setDiscount
(
orderDiscount
.
getDiscountValue
());
couponDiscount
.
setAmount
(
orderDiscount
.
getDiscountAmount
());
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createCouponDiscount
(
couponDiscount
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createCouponDiscount
(
couponDiscount
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
}
}
...
...
@@ -360,7 +363,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mSelectMealAdapter
.
setIndex
();
}
if
(
mOrderMoneyAdapter
==
null
)
{
mOrderMoneyAdapter
=
new
OrderMoney
Adapter
(
IActivity
,
mBillItemList
,
cashStr
);
mOrderMoneyAdapter
=
new
BillItem
Adapter
(
IActivity
,
mBillItemList
,
cashStr
);
}
}
...
...
@@ -431,13 +434,24 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
if
(!
changeNumberCondition
(
number
))
{
return
;
}
// myOrderManage.changeNumber(number);
OrderDetail
orderFood
=
mOrderMealList
.
get
(
mSelectMealAdapter
.
getSelect_full_start_position
());
OrderDetail
orderMainFood
=
mOrderMealList
.
get
(
mSelectMealAdapter
.
getMainStartPos
());
mShoppingCart
.
changeNumber
(
number
,
orderFood
,
orderMainFood
,
mSelectMealAdapter
.
getSelect_full_start_position
(),
mSelectMealAdapter
.
getSelect_full_end_position
(),
new
ShoppingCartNumberChange
.
OnNumberChangeListener
()
{
@Override
public
void
achieveMaximum
(
String
name
)
{
String
msg
=
"["
+
name
+
"]"
+
"已售罄"
;
CommonTipDialog
.
showSurpisedDialog
(
IActivity
,
msg
,
null
,
null
,
null
,
null
,
null
);
}
});
if
(
mMealStandPresenter
!=
null
)
{
mMealStandPresenter
.
updateMealSoldoutCtrData
();
mMealStandPresenter
.
updateOrderFoodNumber
();
}
updateBillInfo
();
mSelectMealAdapter
.
notifyDataSetChanged
();
updateBillInfo
();
}
public
boolean
changeNumberCondition
(
int
i
)
{
...
...
@@ -510,6 +524,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
public
boolean
sendOrderConditionFilter
()
{
if
(
mDoshokuOrder
==
null
)
{
return
false
;
}
MemberInfo
memberInfo
=
mDoshokuOrder
.
getMemberInfo
();
if
(
memberInfo
==
null
)
{
for
(
OrderDetail
item
:
getNewOrderFoodLists
())
{
...
...
@@ -889,17 +906,19 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
List
<
OrderDiscount
.
Request
>
discountRequests
=
new
ArrayList
<>();
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getType
()
==
BillItem
.
ORDER_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
orderDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
MEMBER_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
memberDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
couponDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
if
(
item
instanceof
DiscountItem
)
{
if
(
item
.
getType
()
==
BillItem
.
NOMAL_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
orderDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
MEMBER_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
memberDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscount
.
Request
.
couponDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
}
}
return
discountRequests
;
...
...
@@ -1234,8 +1253,8 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected
BillItem
getNewDiscount
()
{
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getStatus
()
==
0
&&
(
item
.
getType
()
==
BillItem
.
ORDER
_DISCOUNT_TYPE
||
if
(
item
.
getStatus
()
==
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
&&
(
item
.
getType
()
==
BillItem
.
NOMAL
_DISCOUNT_TYPE
||
item
.
getType
()
==
BillItem
.
MEMBER_DISCOUNT_TYPE
||
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
))
{
return
item
;
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
a40f7acb
...
...
@@ -45,7 +45,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.
OrderMoney
Adapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.
BillItem
Adapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderTopFunctionAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.DiscountDialog
;
...
...
@@ -105,7 +105,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private
OrderTopFunctionAdapter
mOrderTopFunctionAdapter
;
private
List
<
Function
>
mFunctionList
=
new
ArrayList
<>();
//定时获取餐台 定时器
/**
* 定时获取餐台 定时器
*/
private
GetTableTimer
tableTimer
;
private
Disposable
mGetTablesDataDisposable
;
...
...
@@ -135,7 +137,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this
.
mApplication
=
null
;
}
public
void
initAdapter
()
{
if
(
mOrderTopFunctionAdapter
==
null
)
{
mOrderTopFunctionAdapter
=
new
OrderTopFunctionAdapter
(
IActivity
,
mFunctionList
);
...
...
@@ -157,40 +158,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if
(
XClickUtil
.
isFastDoubleClick
(
v
,
1000
))
{
return
;
}
// if (function.getResUrl().equals(ComponentTable.table.order[0].getKeyRes())) {
// //送單
// sendOrder(false);
// } else if (function.getResUrl().equals(ComponentTable.table.order[1].getKeyRes())) {
// //印單
// if (!canPrint()) {
// return;
// }
// if (hasNesOrderFoods()) {
// //有未送單食品先送單
// sendOrder(true);
// } else {
// printOrder(OpenTableManage.getDefault().getTableBean().getId(), false);
// }
// } else if (function.getResUrl().equals(ComponentTable.table.order[2].getKeyRes())) {
// //結賬
// if (!canPay()) {
// return;
// }
// mRootView.startActivityForResult(OrderContentActivity.BILL_CODE, OrderPayActivity.class, null);
// } else if (function.getResUrl().equals(ComponentTable.table.order[3].getKeyRes())) {
// //轉移
// if (!canTransfer()) {
// return;
// }
// mRootView.showTransferFoodLayout();
// } else if (function.getResUrl().equals(ComponentTable.table.order[4].getKeyRes())) {
// //折扣
// if (!canDiscount()) {
// return;
// }
// showDiscountDialog();
// }
switch
(
function
.
getResName
())
{
case
"送單"
:
sendOrder
(
false
,
null
);
...
...
@@ -250,7 +217,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return
false
;
}
});
mOrderMoneyAdapter
.
setOnItemClickListener
(
new
OrderMoney
Adapter
.
OnItemClickListener
()
{
mOrderMoneyAdapter
.
setOnItemClickListener
(
new
BillItem
Adapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
BillItem
datasBean
,
int
position
)
{
...
...
@@ -260,7 +227,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
void
onItemDeleteClick
(
BillItem
datasBean
,
int
position
)
{
removeBillItem
(
position
);
updateBillInfo
();
}
});
}
...
...
@@ -490,7 +456,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if
(
memberInfo
!=
null
)
{
updateBillItem
=
true
;
mDoshokuOrder
.
setMemberInfo
(
memberInfo
);
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberDiscount
(
memberInfo
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberDiscount
(
memberInfo
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
));
}
CouponDiscountBean
couponBean
=
couponResult
.
getCouponBean
();
if
(
couponBean
!=
null
)
{
...
...
@@ -498,7 +464,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return
;
}
updateBillItem
=
true
;
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createCouponDiscount
(
couponBean
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createCouponDiscount
(
couponBean
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
));
}
if
(
updateBillItem
)
{
updateBillInfo
();
...
...
@@ -779,7 +745,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog
.
setOnClickListener
(
new
DiscountDialog
.
Builder
.
OnClickListener
()
{
@Override
public
void
onItemClick
(
Discount
item
,
int
position
)
{
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createNomalDiscount
(
item
));
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createNomalDiscount
(
item
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
));
updateBillInfo
();
}
...
...
@@ -876,8 +842,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//刪除折扣列表對應數據
mShoppingCart
.
delMultyDiscount
(((
DiscountItem
)
billItem
).
getDiscount
());
}
mBillItemList
.
remove
(
index
);
mOrderMoneyAdapter
.
notifyDataSetChanged
();
updateBillInfo
();
}
}
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
a40f7acb
...
...
@@ -27,6 +27,7 @@ import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.MemberInfo
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderBean
;
import
com.gingersoft.gsa.cloud.base.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder
;
...
...
@@ -614,7 +615,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
dialog
.
dismiss
();
DoshokuOrder
.
getInstance
().
setMemberInfo
(
mMemberInfo
);
//添加会员折扣行
mPresenter
.
getShoppingCart
().
addMultyDiscount
(
mPresenter
.
getShoppingCart
().
createMemberDiscount
(
mMemberInfo
));
mPresenter
.
getShoppingCart
().
addMultyDiscount
(
mPresenter
.
getShoppingCart
().
createMemberDiscount
(
mMemberInfo
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
));
useMember
();
if
(
DoshokuOrder
.
getInstance
().
needUpdateMemberInfo
())
{
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/
OrderMoney
Adapter.java
→
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/
BillItem
Adapter.java
View file @
a40f7acb
...
...
@@ -27,7 +27,7 @@ import butterknife.BindView;
* 描述:
*/
public
class
OrderMoney
Adapter
extends
DefaultAdapter
<
BillItem
>
{
public
class
BillItem
Adapter
extends
DefaultAdapter
<
BillItem
>
{
private
Activity
mContext
;
private
String
cashStr
;
...
...
@@ -38,7 +38,7 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillItem> {
private
boolean
isUseFreeServicePayMethod
=
false
;
private
int
BillTotalFontSize
;
public
OrderMoney
Adapter
(
Activity
context
,
List
<
BillItem
>
infos
,
String
cashStr
)
{
public
BillItem
Adapter
(
Activity
context
,
List
<
BillItem
>
infos
,
String
cashStr
)
{
super
(
infos
);
this
.
mContext
=
context
;
this
.
cashStr
=
cashStr
;
...
...
@@ -116,7 +116,7 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillItem> {
tv_money
.
setTextColor
(
datasBean
.
getTextColor
());
if
(
mContext
instanceof
OrderContentActivity
&&
(
datasBean
.
getType
()
==
BillOrderMoney
.
ORDER
_DISCOUNT_TYPE
||
datasBean
.
getType
()
==
BillOrderMoney
.
COUPON_DISCOUNT_TYPE
)
&&
(
datasBean
.
getType
()
==
BillOrderMoney
.
NOMAL
_DISCOUNT_TYPE
||
datasBean
.
getType
()
==
BillOrderMoney
.
COUPON_DISCOUNT_TYPE
)
&&
datasBean
.
getType
()
!=
BillOrderMoney
.
MEMBER_DISCOUNT_TYPE
&&
datasBean
.
getStatus
()
==
0
)
{
iv_delete
.
setVisibility
(
View
.
VISIBLE
);
...
...
@@ -131,8 +131,9 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillItem> {
ll_container
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onItemClick
(
datasBean
,
position
);
}
}
});
// ll_container.setBackgroundColor(datasBean.getBgColor());
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/DiscountDialog.java
View file @
a40f7acb
...
...
@@ -24,6 +24,8 @@ import androidx.recyclerview.widget.GridLayoutManager;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
lombok.Builder
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
...
...
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