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
db86f49f
Commit
db86f49f
authored
Dec 14, 2020
by
张洪旺
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 支付完成取餐码异常,
coco 自配送 提前45分钟禁止下单
parent
680fdb03
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
96 additions
and
13 deletions
+96
-13
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+48
-12
order-application-service/src/test/java/cn.freemud/utils/DateUtilsTest.java
+46
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/PaySuccessResp.java
+1
-1
No files found.
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
db86f49f
...
...
@@ -164,6 +164,7 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_EXPECT_TIME
(
"45067"
,
"预约时间还剩15分钟,无法取消"
),
ORDER_CANCEL_ERROR_ESTIMATE_TIME
(
"45068"
,
"预计送达还剩30分钟,无法取消"
),
STORE_SELF_ERROR
(
"45069"
,
"请选择截止营业时间大于45分钟下单"
),
/**
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
db86f49f
...
...
@@ -56,12 +56,14 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import
com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.enums.NewOrderType
;
import
com.google.common.collect.Lists
;
import
com.google.gson.Gson
;
import
lombok.extern.log4j.Log4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.time.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
...
...
@@ -104,7 +106,7 @@ public class CheckOrder {
private
MemberPropertyService
memberPropertyService
;
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
// @Autowired
// @Autowired
// private OrderAdapter orderAdapter;
@Autowired
private
StoreServiceImpl
storeService
;
...
...
@@ -123,6 +125,7 @@ public class CheckOrder {
@Value
(
"${coco.partnerId}"
)
private
String
cocoPartnerId
;
/**
* 下单会员相关校验
*/
...
...
@@ -174,8 +177,8 @@ public class CheckOrder {
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
//订单预约单检查
OrderCheckAdapter
.
check
(
createOrderVo
,
storeResponse
);
OrderCheckAdapter
.
check
(
createOrderVo
,
storeResponse
);
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
)
{
...
...
@@ -258,6 +261,23 @@ public class CheckOrder {
}
else
{
storeDeliveryInfoDto
=
getNewStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
,
trackingNo
);
}
//coco自配送提前45分钟,禁止下单
if
(
cocoPartnerId
.
equals
(
createOrderVo
.
getPartnerId
())
&&
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())
&&
"self"
.
equals
(
storeDeliveryInfoDto
.
getDeliveryType
())
)
{
//即时单是下单时间,预约单是预约单时间
Date
orderDate
=
createOrderVo
.
getExpectTime
()
!=
null
?
DateUtil
.
convert2Date
(
createOrderVo
.
getExpectTime
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
)
:
new
Date
();
Date
todayEnd
=
DateUtil
.
setEndDay
(
new
Date
());
boolean
toDay
=
orderDate
.
before
(
todayEnd
);
BusinessDate
businessDate
=
getStoreBusinessDate
(
storeResponseDto
,
toDay
);
boolean
businessEndDate
=
(
DateUtils
.
addMinutes
(
orderDate
,
45
).
compareTo
(
businessDate
.
getEndDate
())
<=
0
);
if
(
businessEndDate
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_SELF_ERROR
);
}
}
//todo : 这里不再支持从表中获取门店配送信息 改用接口方式调用
//外卖起送条件(1:杯数,2:金额)
if
(!
Arrays
.
asList
(
1
,
2
).
contains
(
storeDeliveryInfoDto
.
getDeliveryCondition
()))
{
...
...
@@ -281,6 +301,22 @@ public class CheckOrder {
return
pushOrderTime
;
}
/**
* 获取门店营业时间
*
* @param storeResponseDto
* @param toDay true 今日,false 明天
* @return
*/
private
BusinessDate
getStoreBusinessDate
(
StoreResponse
.
BizVO
storeResponseDto
,
boolean
toDay
)
{
List
<
String
>
todayBusinessTimes
=
storeCenterService
.
getTodayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
if
(
CollectionUtils
.
isEmpty
(
todayBusinessTimes
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
}
BusinessDate
businessDate
=
getStoreBusinessDate
(
todayBusinessTimes
.
get
(
todayBusinessTimes
.
size
()
-
1
),
toDay
);
return
businessDate
;
}
public
void
checkOrderExpectTime
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
takeMealDateTime
==
null
)
{
return
;
...
...
@@ -575,19 +611,19 @@ public class CheckOrder {
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
//如果是coco查询配送服务判断是平台配送还是自配送
if
(
cocoPartnerId
.
equals
(
storeResponseDto
.
getPartnerId
()))
{
if
(
cocoPartnerId
.
equals
(
storeResponseDto
.
getPartnerId
()))
{
GetDeliveryFlagRequest
getDeliveryFlagRequest
=
new
GetDeliveryFlagRequest
();
getDeliveryFlagRequest
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
getDeliveryFlagRequest
.
setStoreId
(
storeResponseDto
.
getStoreId
());
DeliveryBaseResponse
<
GetDeliveryFlagResponseDto
>
deliveryBaseResponse
=
deliveryFeiginClient
.
getThirdDeliveryFlag
(
getDeliveryFlagRequest
);
if
(
deliveryBaseResponse
.
getCode
()
==
100
&&
deliveryBaseResponse
.
getData
()
!=
null
&&
deliveryBaseResponse
.
getData
().
isThirdDeliveryFlag
())
{
DeliveryBaseResponse
<
GetDeliveryFlagResponseDto
>
deliveryBaseResponse
=
deliveryFeiginClient
.
getThirdDeliveryFlag
(
getDeliveryFlagRequest
);
if
(
deliveryBaseResponse
.
getCode
()
==
100
&&
deliveryBaseResponse
.
getData
()
!=
null
&&
deliveryBaseResponse
.
getData
().
isThirdDeliveryFlag
())
{
storeDeliveryInfoDto
.
setDeliveryType
(
"third"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
}
else
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
}
else
{
}
else
{
if
(
ObjectUtils
.
equals
(
openPlatformIappWxappConfig
.
getTakeType
(),
1
))
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
...
...
@@ -643,19 +679,19 @@ public class CheckOrder {
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
//如果是coco查询配送服务判断是平台配送还是自配送
if
(
cocoPartnerId
.
equals
(
storeResponseDto
.
getPartnerId
()))
{
if
(
cocoPartnerId
.
equals
(
storeResponseDto
.
getPartnerId
()))
{
GetDeliveryFlagRequest
getDeliveryFlagRequest
=
new
GetDeliveryFlagRequest
();
getDeliveryFlagRequest
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
getDeliveryFlagRequest
.
setStoreId
(
storeResponseDto
.
getStoreId
());
DeliveryBaseResponse
<
GetDeliveryFlagResponseDto
>
deliveryBaseResponse
=
deliveryFeiginClient
.
getThirdDeliveryFlag
(
getDeliveryFlagRequest
);
if
(
deliveryBaseResponse
.
getCode
()
==
100
&&
deliveryBaseResponse
.
getData
()
!=
null
&&
deliveryBaseResponse
.
getData
().
isThirdDeliveryFlag
())
{
DeliveryBaseResponse
<
GetDeliveryFlagResponseDto
>
deliveryBaseResponse
=
deliveryFeiginClient
.
getThirdDeliveryFlag
(
getDeliveryFlagRequest
);
if
(
deliveryBaseResponse
.
getCode
()
==
100
&&
deliveryBaseResponse
.
getData
()
!=
null
&&
deliveryBaseResponse
.
getData
().
isThirdDeliveryFlag
())
{
storeDeliveryInfoDto
.
setDeliveryType
(
"third"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
}
else
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
}
else
{
}
else
{
if
(
ObjectUtils
.
equals
(
openPlatformIappWxappConfig
.
getTakeType
(),
1
))
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
...
...
order-application-service/src/test/java/cn.freemud/utils/DateUtilsTest.java
0 → 100644
View file @
db86f49f
package
cn
.
freemud
.
utils
;
import
cn.freemud.base.util.DateUtil
;
import
org.apache.commons.lang.time.DateUtils
;
import
org.junit.Test
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
public
class
DateUtilsTest
{
@Test
public
void
testDateCompare
()
throws
ParseException
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date1
=
sdf
.
parse
(
"2020-12-30 00:00:00"
);
Date
date2
=
sdf
.
parse
(
"2020-12-14 11:50:00"
);
System
.
out
.
println
(
"date1 : "
+
sdf
.
format
(
date1
));
System
.
out
.
println
(
"date2 : "
+
sdf
.
format
(
date2
));
System
.
out
.
println
(
date1
.
compareTo
(
date2
));
if
(
date1
.
compareTo
(
date2
)
>
0
)
{
System
.
out
.
println
(
"Date1 时间在 Date2 之后"
);
}
else
if
(
date1
.
compareTo
(
date2
)
<
0
)
{
System
.
out
.
println
(
"Date1 时间在 Date2 之前"
);
}
else
if
(
date1
.
compareTo
(
date2
)
==
0
)
{
System
.
out
.
println
(
"Date1 时间与 Date2 相等"
);
}
else
{
System
.
out
.
println
(
"程序怎么会运行到这里?正常应该不会"
);
}
boolean
x
=(
DateUtils
.
addMinutes
(
new
Date
(),
45
).
compareTo
(
date2
)
<=
0
);
System
.
out
.
println
(
x
);
}
@Test
public
void
testBefore
()
throws
ParseException
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date1
=
sdf
.
parse
(
"2020-12-30 00:00:00"
);
Date
date
=
DateUtil
.
setEndDay
(
new
Date
());
String
s
=
DateUtil
.
convert2String
(
date
,
"yyyy-MM-dd HH:mm:ss"
);
System
.
out
.
println
(
date
.
before
(
date1
));
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/PaySuccessResp.java
View file @
db86f49f
...
...
@@ -26,7 +26,7 @@ public class PaySuccessResp {
//总排队人数
private
Integer
queueNumber
;
//取餐码
private
Integer
pickUpGoodsNo
;
private
String
pickUpGoodsNo
;
//门店订单序号
private
Integer
daySeq
;
...
...
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