Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
order-group-application
order-group
Commits
ab2c3035
Commit
ab2c3035
authored
Aug 06, 2020
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into feature/20200727_麦咖啡p1v2支付券码路由
parents
5d9a54e0
9f5d2724
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
87 additions
and
9 deletions
+87
-9
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+25
-6
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsBaseResponseVo.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
+35
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/SetMealServiceImpl.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+17
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
+3
-0
No files found.
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
ab2c3035
...
...
@@ -187,12 +187,20 @@ public class CheckOrder {
}
// TODO: 2020/6/16 门店校验处理
String
takeMealFlag
=
createOrderVo
.
getTakeMealFlag
();
String
takeMealTimes
=
createOrderVo
.
getTakeMealTime
();
//立即送达
if
(
"0"
.
equals
(
takeMealFlag
)
||
(
StringUtils
.
isEmpty
(
createOrderVo
.
getExpectTime
())
&&
StringUtils
.
isEmpty
(
takeMealTimes
)))
{
//未营业无预约时间无法下单
if
(!
StoreConstant
.
BUSINESS
.
equals
(
storeResponseDto
.
getState
())
&&
StringUtils
.
isBlank
(
takeMealFlag
)
&&
"0"
.
equals
(
takeMealFlag
))
{
if
(!
StoreConstant
.
BUSINESS
.
equals
(
storeResponseDto
.
getState
()
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_CHECK_CLOSE
);
}
// 外卖单选择立即送达的话,下单时间必须在店铺外卖时间内
if
(
createOrderVo
.
getOrderType
().
compareTo
(
CreateOrderType
.
TAKE_OUT
.
getCode
())
==
0
)
{
checkTakeOutTime
(
storeResponseDto
,
new
Date
(),
new
Date
(),
true
);
}
}
String
takeMealTimes
=
createOrderVo
.
getTakeMealTime
();
//有预约时间
if
(
StringUtils
.
isNotBlank
(
takeMealTimes
)
||
StringUtils
.
isNotBlank
(
createOrderVo
.
getExpectTime
())){
// 设置预约时间
...
...
@@ -314,6 +322,18 @@ public class CheckOrder {
}
if
(
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
()))
{
checkTakeOutTime
(
storeResponseDto
,
date
,
takeMealDateTime
,
expectTimeInTodayBusinessTime
);
}
}
/**
* 检验订单是否在外卖时间内
* @param storeResponseDto 店铺信息
* @param now 当前时间
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
private
void
checkTakeOutTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
now
,
Date
takeMealDateTime
,
boolean
expectTimeInTodayBusinessTime
)
{
String
deliveryStr
=
storeResponseDto
.
getDeliveryHoursDay
().
replace
(
"-"
,
","
)
.
replace
(
"_"
,
","
);
String
[]
deliverys
=
deliveryStr
.
split
(
","
);
...
...
@@ -322,11 +342,11 @@ public class CheckOrder {
if
(
deliverys
.
length
==
2
)
{
SimpleDateFormat
hhmmss
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
yyyyMMdd
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
startDateTimeStr
=
yyyyMMdd
.
format
(
date
)
+
" "
+
deliverys
[
0
]
+
":00"
;
String
endDateTimeStr
=
yyyyMMdd
.
format
(
date
)
+
" "
+
deliverys
[
1
]
+
":00"
;
String
startDateTimeStr
=
yyyyMMdd
.
format
(
now
)
+
" "
+
deliverys
[
0
]
+
":00"
;
String
endDateTimeStr
=
yyyyMMdd
.
format
(
now
)
+
" "
+
deliverys
[
1
]
+
":00"
;
try
{
deliveryEndDate
=
hhmmss
.
parse
(
endDateTimeStr
);
deliveryStartDate
=
hhmmss
.
parse
(
startDateTimeStr
);
deliveryEndDate
=
hhmmss
.
parse
(
endDateTimeStr
);
}
catch
(
ParseException
e
)
{
LogUtil
.
error
(
"getStoreDeliveryInfo_error"
,
endDateTimeStr
,
e
.
getMessage
());
}
...
...
@@ -345,7 +365,6 @@ public class CheckOrder {
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_TIME_NOT_DELIVERY
);
}
}
}
public
Date
getOrderExpectTime
(
String
takeMealFlag
,
String
takeMealTimes
,
String
expectTime
,
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
.
BizVO
storeResponseDto
){
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
ab2c3035
...
...
@@ -157,6 +157,11 @@ public class ActivityCalculationDiscountResponseDto {
@Data
public
static
class
Goods
{
/**
* 购物车行记录
*/
private
String
cartGoodsUid
;
/**
* 商品id
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsBaseResponseVo.java
View file @
ab2c3035
...
...
@@ -25,5 +25,6 @@ public class ShoppingCartGoodsBaseResponseVo {
* 购物车中商品价格或有效性是否发生变化
*/
private
Boolean
changed
;
private
String
uid
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/BuyAndGiftsPromotionService.java
View file @
ab2c3035
...
...
@@ -14,6 +14,7 @@ import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -92,6 +93,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
cartGoods
.
setClassificationName
(
product
.
getCategoryName
());
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGoods
.
setNodeId
(
sendActivity
.
getActivityCode
());
this
.
setGiftExtra
(
cartGoods
,
product
,
cartGoodsList
);
cartGoodsList
.
add
(
cartGoods
);
totalGiftAmount
+=
product
.
getFinalPrice
()
*
sendGoods
.
getSendNumber
();
}
...
...
@@ -162,4 +164,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
}
return
productBeanList
;
}
private
void
setGiftExtra
(
CartGoods
cartGoods
,
ProductBeanDTO
product
,
List
<
CartGoods
>
cartGoodsList
)
{
long
count
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
())).
count
();
//购物车内存在同类
if
(
count
>
0
)
{
CartGoods
find
=
cartGoodsList
.
stream
().
filter
(
c
->
c
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
())).
findFirst
().
get
();
cartGoods
.
setExtra
(
find
.
getExtra
());
cartGoods
.
setSpuName
(
find
.
getSpuName
());
cartGoods
.
setSkuName
(
find
.
getSkuName
());
cartGoods
.
setSubName
(
find
.
getSubName
());
}
//不存在
else
{
if
(
product
.
getProductAttributeGroupList
().
size
()==
0
)
{
return
;
}
List
<
CartGoods
.
CartGoodsExtra
>
extra
=
new
ArrayList
<>();
ArrayList
<
String
>
name
=
new
ArrayList
<>();
List
<
ProductBeanDTO
.
ProductAttributeGroupListBean
>
productAttributeGroupList
=
product
.
getProductAttributeGroupList
();
for
(
ProductBeanDTO
.
ProductAttributeGroupListBean
productAttributeGroupListBean
:
productAttributeGroupList
)
{
ProductBeanDTO
.
ProductAttributeGroupListBean
.
AttributeValueBean
bean
=
productAttributeGroupListBean
.
getAttributeValues
().
stream
().
findFirst
().
get
();
CartGoods
.
CartGoodsExtra
goodsExtra
=
new
CartGoods
.
CartGoodsExtra
();
goodsExtra
.
setAttributeId
(
bean
.
getAttributeId
());
goodsExtra
.
setAttributeName
(
bean
.
getAttributeValue
());
name
.
add
(
bean
.
getAttributeValue
());
extra
.
add
(
goodsExtra
);
}
cartGoods
.
setExtra
(
extra
);
cartGoods
.
setSubName
(
StringUtils
.
join
(
name
,
"/"
));
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/SetMealServiceImpl.java
View file @
ab2c3035
...
...
@@ -64,6 +64,7 @@ public class SetMealServiceImpl implements IPromotionService {
String
toastMsg
=
getTotalAmount
(
cartGoods
,
productGroupAmount
,
numberMap
,
goodsMap
);
if
(
StringUtils
.
isNotEmpty
(
toastMsg
))
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
toastMsg
);
shoppingCartGoodsResponseVo
.
setUid
(
cartGoods
.
getCartGoodsUid
());
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
ab2c3035
...
...
@@ -284,8 +284,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
addShoppingCartGoodsRequestVo
.
getOrderType
());
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
activityQueryDto
,
calculationDiscountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
,
addShoppingCartGoodsRequestVo
.
getMenuType
(),
deliveryAmount
);
updateShoppingCartGoodsDiscount
(
null
,
activityQueryDto
,
calculationDiscountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
,
addShoppingCartGoodsRequestVo
.
getMenuType
(),
deliveryAmount
);
clearMsg
(
shoppingCartGoodsResponseVo
,
cartGoods
.
getCartGoodsUid
());
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
allCartGoodsList
,
null
,
partnerId
,
storeId
,
userId
,
ShoppingCartConstant
.
ADD_AND_UPDATE
,
null
);
...
...
@@ -377,8 +377,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
updateShoppingCartGoodsQtyRequestVo
.
getOrderType
());
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
,
updateShoppingCartGoodsQtyRequestVo
.
getMenuType
(),
deliveryAmount
);
updateShoppingCartGoodsDiscount
(
null
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
,
updateShoppingCartGoodsQtyRequestVo
.
getMenuType
(),
deliveryAmount
);
clearMsg
(
shoppingCartGoodsResponseVo
,
cartGoodsUid
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
(),
partnerId
,
storeId
,
userId
,
ShoppingCartConstant
.
ADD_AND_UPDATE
,
null
);
...
...
@@ -1567,4 +1568,17 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
return
qty
;
}
/**
* 去除非活动商品的提示
*
* @param shoppingCartGoodsResponseVo
* @param cartUid
*/
public
void
clearMsg
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
String
cartUid
)
{
if
(
StringUtils
.
isNotBlank
(
shoppingCartGoodsResponseVo
.
getToastMsg
())
&&
StringUtils
.
isNotBlank
(
shoppingCartGoodsResponseVo
.
getUid
())
&&
!
cartUid
.
equals
(
shoppingCartGoodsResponseVo
.
getUid
()))
{
shoppingCartGoodsResponseVo
.
setUid
(
""
);
shoppingCartGoodsResponseVo
.
setToastMsg
(
""
);
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
View file @
ab2c3035
...
...
@@ -48,6 +48,7 @@ public class TimeSalePromotionService implements IPromotionService {
// 存储当前享受限时特价折扣的商品数量,key:goodsId; value:可享受数量
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
List
<
Integer
>
discounts
=
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_2
.
getCode
(),
ActivityTypeEnum
.
TYPE_21
.
getCode
());
String
uid
=
""
;
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
...
...
@@ -74,12 +75,14 @@ public class TimeSalePromotionService implements IPromotionService {
:
goods
.
getOriginalPrice
()
*
cartGoods
.
getQty
());
if
(
StringUtils
.
isEmpty
(
toastMsg
))
{
toastMsg
=
"该商品限"
+
goodsDiscount
.
getActualGoodsNumber
()
+
"份优惠 超出按照原价计算哦"
;
uid
=
goods
.
getCartGoodsUid
();
}
}
numberMap
.
put
(
goods
.
getGoodsId
(),
specialActualGoodsNumber
-
cartGoods
.
getQty
());
}
if
(
StringUtils
.
isNotBlank
(
toastMsg
))
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
toastMsg
);
shoppingCartGoodsResponseVo
.
setUid
(
uid
);
}
}
...
...
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