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
b9637ca9
Commit
b9637ca9
authored
Aug 11, 2021
by
刘继明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 删除查询合阔排队查询
parent
fbbc7837
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
38 additions
and
598 deletions
+38
-598
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+38
-60
order-application-service/src/main/java/cn/freemud/service/process/order/AbstractQueueIndexProcessor.java
+0
-33
order-application-service/src/main/java/cn/freemud/service/process/order/FreemudOrderQueueIndexProcessorImpl.java
+0
-66
order-application-service/src/main/java/cn/freemud/service/process/order/HexCloudOrderQueueIndexProcessorImpl.java
+0
-66
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessor.java
+0
-32
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessorFactory.java
+0
-82
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClient.java
+0
-36
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClientFallbackFactory.java
+0
-52
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/request/HexCloudBaseRequest.java
+0
-51
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudBaseResponse.java
+0
-67
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudTakeAwayOrderStatusDto.java
+0
-53
No files found.
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
b9637ca9
...
@@ -62,9 +62,7 @@ import cn.freemud.service.Orderservice;
...
@@ -62,9 +62,7 @@ import cn.freemud.service.Orderservice;
import
cn.freemud.service.business.OrderBusinessService
;
import
cn.freemud.service.business.OrderBusinessService
;
import
cn.freemud.service.order.OrderRelationFactory
;
import
cn.freemud.service.order.OrderRelationFactory
;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.process.order.OrderQueueIndexProcessorFactory
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.*
;
import
cn.freemud.utils.*
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
...
@@ -326,8 +324,6 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -326,8 +324,6 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
@Autowired
private
BuyProductOnceManager
buyProductOnceManager
;
private
BuyProductOnceManager
buyProductOnceManager
;
@Autowired
@Autowired
private
OrderQueueIndexProcessorFactory
orderQueueIndexProcessorFactory
;
@Autowired
private
OrderCallbackClient
orderCallbackClient
;
private
OrderCallbackClient
orderCallbackClient
;
@Autowired
@Autowired
private
OrderCenterProperties
orderCenterProperties
;
private
OrderCenterProperties
orderCenterProperties
;
...
@@ -996,7 +992,11 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -996,7 +992,11 @@ public class OrderServiceImpl implements Orderservice {
orderBean
.
setQueueIndex
(
""
);
orderBean
.
setQueueIndex
(
""
);
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录
if
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
if
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
String
returnWords
=
""
;
Integer
productSum
=
0
;
//件数
Long
pickUpTime
=
0L
;
//预计
Integer
totalSumTime
=
0
;
String
progress
=
"0"
;
//进度
Integer
orderProgressBarStatus
=
2
;
Integer
orderProgressBarStatus
=
2
;
try
{
try
{
if
(
null
!=
storeResponseDto
)
{
if
(
null
!=
storeResponseDto
)
{
...
@@ -1009,7 +1009,39 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -1009,7 +1009,39 @@ public class OrderServiceImpl implements Orderservice {
//订单状态为已接单并且无售后单展示进度条
//订单状态为已接单并且无售后单展示进度条
if
(
OrderStatus
.
RECEIPT
.
getCode
()
==
orderBean
.
getStatus
()
&&
null
==
orderBean
.
getAfterSalesOrderResp
()
&&
null
!=
orderProgressBarStatus
&&
null
!=
configuration
.
getTurnOnTimeOfMaking
())
{
if
(
OrderStatus
.
RECEIPT
.
getCode
()
==
orderBean
.
getStatus
()
&&
null
==
orderBean
.
getAfterSalesOrderResp
()
&&
null
!=
orderProgressBarStatus
&&
null
!=
configuration
.
getTurnOnTimeOfMaking
())
{
// 查询订单的排队人数
// 查询订单的排队人数
queryLineUpOrder
(
orderBean
,
configuration
);
QueryLineUpOrderReq
queryLineUpOrderReq
=
new
QueryLineUpOrderReq
();
queryLineUpOrderReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
queryLineUpOrderReq
.
setStoreId
(
orderBean
.
getShopId
());
queryLineUpOrderReq
.
setStartTime
(
DateUtil
.
addHours
(
new
Date
(
orderBean
.
getGmtCreate
()),
-
24
).
getTime
());
queryLineUpOrderReq
.
setEndTime
(
orderBean
.
getGmtCreate
());
// 取餐排队人数查询代码去除
QueryLineUpResponse
response
=
orderCenterSdkService
.
queryLineUpOrder
(
queryLineUpOrderReq
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
()))
{
if
(
null
==
response
.
getOrderCodes
())
{
progress
=
"100"
;
returnWords
=
""
;
}
else
{
List
<
String
>
orderCodeList
=
response
.
getOrderCodes
();
if
(
null
!=
orderCodeList
&&
orderCodeList
.
size
()
>
0
)
{
returnWords
+=
"前方还有 "
+
orderCodeList
.
size
()
+
" 单"
;
//开启制作时间 1 :是 , 2 :否"
if
(
1
!=
configuration
.
getTurnOnTimeOfMaking
())
{
totalSumTime
=
orderCodeList
.
size
()
*
AutoOrderConfigTime
.
getTime
(
configuration
.
getAutoSelfmentionTakeOrderWorkflowFinishTime
());
//分钟
}
else
{
Integer
goodsAvgTimeOfMaking
=
(
null
==
configuration
.
getGoodsAvgTimeOfMaking
()
||
0
==
configuration
.
getGoodsAvgTimeOfMaking
())
?
5
:
configuration
.
getGoodsAvgTimeOfMaking
();
productSum
=
orderCodeList
.
stream
().
mapToInt
(
product
->
Integer
.
parseInt
(
product
.
split
(
"-"
)[
1
])).
sum
();
totalSumTime
=
productSum
*
goodsAvgTimeOfMaking
;
returnWords
+=
" / "
+
productSum
+
" 件"
;
}
pickUpTime
=
DateUtil
.
addMinutes
(
new
Date
(
orderBean
.
getGmtAccept
()),
totalSumTime
).
getTime
();
Date
date
=
new
Date
(
pickUpTime
);
returnWords
+=
",预计 "
+
(
String
.
valueOf
(
date
.
getHours
()).
length
()
==
1
?
"0"
+
(
String
.
valueOf
(
date
.
getHours
()))
:
date
.
getHours
())
+
":"
+
(
String
.
valueOf
(
date
.
getMinutes
()).
length
()
==
1
?
"0"
+
(
String
.
valueOf
(
date
.
getMinutes
()))
:
date
.
getMinutes
())
+
" 可取餐"
;
//制餐进度(当前时间-接单时间)/总时长(制餐时长)x100%
BigDecimal
progressB
=
new
BigDecimal
(
DateUtil
.
diffMinute
(
new
Date
(
orderBean
.
getGmtAccept
()),
new
Date
())).
divide
(
new
BigDecimal
(
totalSumTime
),
2
,
BigDecimal
.
ROUND_HALF_UP
);
progress
=
progressB
.
compareTo
(
new
BigDecimal
(
1
))
==
1
?
"100"
:
progressB
.
multiply
(
new
BigDecimal
(
100
)).
toString
();
}
}
}
}
}
}
}
}
}
...
@@ -1114,60 +1146,6 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -1114,60 +1146,6 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
responseMap
);
return
ResponseUtil
.
success
(
responseMap
);
}
}
/**
* 获取排队号
* @param orderBean
* @param configuration
*/
private
void
queryLineUpOrder
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
StoreResponse
.
Configuration
configuration
)
{
String
returnWords
=
""
;
Integer
productSum
=
0
;
//件数
Long
pickUpTime
=
0L
;
//预计
Integer
totalSumTime
=
0
;
String
progress
=
"0"
;
//进度
QueryLineUpOrderDto
queryLineUpOrderDto
=
new
QueryLineUpOrderDto
();
queryLineUpOrderDto
.
setPartnerId
(
orderBean
.
getCompanyId
());
queryLineUpOrderDto
.
setStoreId
(
orderBean
.
getShopId
());
queryLineUpOrderDto
.
setStartTime
(
DateUtil
.
addHours
(
new
Date
(
orderBean
.
getGmtCreate
()),
-
24
).
getTime
());
queryLineUpOrderDto
.
setEndTime
(
orderBean
.
getGmtCreate
());
queryLineUpOrderDto
.
setOrderCode
(
orderBean
.
getOid
());
queryLineUpOrderDto
.
setThirdOrderCode
(
orderBean
.
getThirdOrderCode
());
queryLineUpOrderDto
.
setThirdStoreId
(
orderBean
.
getThirdShopId
());
// 取餐排队人数查询代码去除
HexCloudTakeAwayOrderStatusDto
statusDto
=
orderQueueIndexProcessorFactory
.
processor
(
orderBean
.
getCompanyId
()).
process
(
queryLineUpOrderDto
);
if
(
null
==
statusDto
)
{
progress
=
"100"
;
returnWords
=
""
;
}
else
{
if
(
statusDto
.
getWaiting_order_count
()
>
0
)
{
returnWords
+=
"前方还有 "
+
statusDto
.
getWaiting_order_count
()
+
" 单"
;
//开启制作时间 1 :是 , 2 :否"
if
(
1
!=
configuration
.
getTurnOnTimeOfMaking
())
{
totalSumTime
=
statusDto
.
getWaiting_order_count
()
*
AutoOrderConfigTime
.
getTime
(
configuration
.
getAutoSelfmentionTakeOrderWorkflowFinishTime
());
//分钟
}
else
{
Integer
goodsAvgTimeOfMaking
=
(
null
==
configuration
.
getGoodsAvgTimeOfMaking
()
||
0
==
configuration
.
getGoodsAvgTimeOfMaking
())
?
5
:
configuration
.
getGoodsAvgTimeOfMaking
();
productSum
=
statusDto
.
getWaiting_product_count
();
totalSumTime
=
productSum
*
goodsAvgTimeOfMaking
;
returnWords
+=
" / "
+
productSum
+
" 件"
;
}
if
(
statusDto
.
isHexCloudResponse
()){
//query from hekuo
pickUpTime
=
DateUtil
.
addSeconds
(
new
Date
(
orderBean
.
getGmtAccept
()),
statusDto
.
getWaiting_time
()).
getTime
();
}
else
{
pickUpTime
=
DateUtil
.
addMinutes
(
new
Date
(
orderBean
.
getGmtAccept
()),
totalSumTime
).
getTime
();
}
Date
date
=
new
Date
(
pickUpTime
);
returnWords
+=
",预计 "
+
(
String
.
valueOf
(
date
.
getHours
()).
length
()
==
1
?
"0"
+
(
String
.
valueOf
(
date
.
getHours
()))
:
date
.
getHours
())
+
":"
+
(
String
.
valueOf
(
date
.
getMinutes
()).
length
()
==
1
?
"0"
+
(
String
.
valueOf
(
date
.
getMinutes
()))
:
date
.
getMinutes
())
+
" 可取餐"
;
//制餐进度(当前时间-接单时间)/总时长(制餐时长)x100%
BigDecimal
progressB
=
new
BigDecimal
(
DateUtil
.
diffMinute
(
new
Date
(
orderBean
.
getGmtAccept
()),
new
Date
())).
divide
(
new
BigDecimal
(
totalSumTime
),
2
,
BigDecimal
.
ROUND_HALF_UP
);
progress
=
progressB
.
compareTo
(
new
BigDecimal
(
1
))
==
1
?
"100"
:
progressB
.
multiply
(
new
BigDecimal
(
100
)).
toString
();
}
}
orderBean
.
setProgress
(
String
.
valueOf
(
progress
));
orderBean
.
setReturnWords
(
returnWords
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/process/order/AbstractQueueIndexProcessor.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
com.google.common.collect.Maps
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/23 下午1:43
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
abstract
class
AbstractQueueIndexProcessor
implements
OrderQueueIndexProcessor
{
protected
Map
<
String
,
String
>
transferResult
(
String
oid
,
String
queueIndex
)
{
Map
<
String
,
String
>
queueIndexMap
=
Maps
.
newHashMap
();
queueIndexMap
.
put
(
"oid"
,
oid
);
queueIndexMap
.
put
(
"queueIndex"
,
queueIndex
==
null
?
""
:
queueIndex
);
return
queueIndexMap
;
}
protected
Map
<
String
,
String
>
transferResult
(
String
oid
,
HexCloudTakeAwayOrderStatusDto
statusDto
)
{
Map
<
String
,
String
>
queueIndexMap
=
Maps
.
newHashMap
();
queueIndexMap
.
put
(
"oid"
,
oid
);
queueIndexMap
.
put
(
"queueIndex"
,
statusDto
==
null
?
""
:
statusDto
.
getWaiting_order_count
()
+
""
);
return
queueIndexMap
;
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/FreemudOrderQueueIndexProcessorImpl.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
com.freemud.application.sdk.api.ordercenter.request.QueryLineUpOrderReq
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryLineUpResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:53
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
FreemudOrderQueueIndexProcessorImpl
extends
AbstractQueueIndexProcessor
{
private
final
OrderCenterSdkService
orderCenterSdkService
;
public
FreemudOrderQueueIndexProcessorImpl
(
OrderCenterSdkService
orderCenterSdkService
)
{
this
.
orderCenterSdkService
=
orderCenterSdkService
;
}
@Override
public
String
name
()
{
return
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_FREEMUD
;
}
@Override
public
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
)
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from freemud "
,
vo
,
""
);
QueryLineUpOrderReq
queryLineUpOrderReq
=
new
QueryLineUpOrderReq
();
queryLineUpOrderReq
.
setPartnerId
(
vo
.
getPartnerId
());
queryLineUpOrderReq
.
setStoreId
(
vo
.
getStoreId
());
queryLineUpOrderReq
.
setStartTime
(
vo
.
getStartTime
());
queryLineUpOrderReq
.
setEndTime
(
vo
.
getEndTime
());
// 查询订单的排队人数
QueryLineUpResponse
response
=
orderCenterSdkService
.
queryLineUpOrder
(
queryLineUpOrderReq
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
response
.
getErrcode
()))
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from freemud"
,
vo
,
response
);
return
null
;
}
List
<
String
>
orderCodeList
=
response
.
getOrderCodes
();
int
size
=
0
,
productSum
=
0
;
if
(!
CollectionUtils
.
isEmpty
(
orderCodeList
))
{
size
=
orderCodeList
.
size
();
productSum
=
orderCodeList
.
stream
().
mapToInt
(
product
->
Integer
.
parseInt
(
product
.
split
(
"-"
)[
1
])).
sum
();
}
return
HexCloudTakeAwayOrderStatusDto
.
builder
().
waiting_order_count
(
size
).
waiting_product_count
(
productSum
).
hexCloudResponse
(
false
).
build
();
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/HexCloudOrderQueueIndexProcessorImpl.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.HexCloudClient
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:52
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
HexCloudOrderQueueIndexProcessorImpl
extends
AbstractQueueIndexProcessor
{
@Autowired
private
HexCloudClient
hexCloudClient
;
@Override
public
String
name
()
{
return
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_HEXCLOUD
;
}
@Override
public
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
)
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from HexCloud"
,
vo
,
""
);
if
(
StringUtils
.
isEmpty
(
vo
.
getThirdOrderCode
()))
{
AppLogUtil
.
infoLog
(
"合阔查询失败,ThirdOrderCode is empty"
,
vo
,
""
);
return
null
;
}
//
Map
<
String
,
String
>
orderThirdCode
=
new
HashMap
<>();
orderThirdCode
.
put
(
"tp_order_id"
,
vo
.
getThirdOrderCode
());
HexCloudBaseRequest
request
=
HexCloudBaseRequest
.
builder
().
shopId
(
vo
.
getStoreId
()).
partnerId
(
vo
.
getPartnerId
()).
startTime
(
vo
.
getStartTime
())
.
endTime
(
vo
.
getEndTime
()).
oid
(
vo
.
getOrderCode
()).
data
(
orderThirdCode
).
thirdStoreId
(
vo
.
getThirdStoreId
()).
build
();
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
hexCloudBaseResponse
=
hexCloudClient
.
takeAwayOrderStatus
(
request
);
if
(
null
!=
hexCloudBaseResponse
&&
hexCloudBaseResponse
.
success
())
{
HexCloudTakeAwayOrderStatusDto
statusDto
=
hexCloudBaseResponse
.
getResponseBody
();
if
(
null
!=
statusDto
)
{
statusDto
.
setHexCloudResponse
(
true
);
}
return
statusDto
;
}
else
{
AppLogUtil
.
infoLog
(
"合阔查询失败"
,
request
,
hexCloudBaseResponse
);
return
null
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessor.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
interface
OrderQueueIndexProcessor
{
/**
* 名称
*
* @return
*/
String
name
();
/**
* 执行体
*
* @param vo
* @return
*/
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
);
}
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessorFactory.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
java.util.List
;
import
java.util.Optional
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:54
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Slf4j
@Component
public
class
OrderQueueIndexProcessorFactory
{
/**
* 查询合阔订单排队接口,商户白名单
*/
@Value
(
"#{'${order.queueIndex.hexCloud.pos.partnerId}'.split(',')}"
)
private
List
<
String
>
notAutomaticTwistPartnerId
;
/**
* 执行器
*/
private
List
<
OrderQueueIndexProcessor
>
processors
;
public
OrderQueueIndexProcessorFactory
(
List
<
OrderQueueIndexProcessor
>
processors
)
{
this
.
processors
=
processors
;
}
/**
* 根据白名单配置是否查询合阔
*
* @param partnerId
* @return
*/
public
OrderQueueIndexProcessor
processor
(
String
partnerId
)
{
//根据白名单商户判断是否查询合阔
if
(
StringUtils
.
isEmpty
(
partnerId
))
{
return
commonProcessor
();
}
if
(
notAutomaticTwistPartnerId
.
contains
(
partnerId
))
{
return
getProcessor
(
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_HEXCLOUD
);
}
return
commonProcessor
();
}
/**
* 通用执行器
*
* @return
*/
public
OrderQueueIndexProcessor
commonProcessor
()
{
return
getProcessor
(
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_FREEMUD
);
}
/**
* 根据名称获取processor
*
* @param name
* @return
*/
private
OrderQueueIndexProcessor
getProcessor
(
String
name
)
{
Optional
<
OrderQueueIndexProcessor
>
optional
=
processors
.
stream
().
filter
(
p
->
name
.
equals
(
p
.
name
())).
findFirst
();
if
(
optional
.
isPresent
())
{
return
optional
.
get
();
}
throw
new
UnsupportedOperationException
(
"freemud OrderQueueIndexProcessor not fount"
);
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClient.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 对接合阔的接口
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@FeignClient
(
name
=
"adapter-open-store-sync-pos-status-service"
,
url
=
"${saas.adapter.syncPosStatus.feignUrl}"
,
fallbackFactory
=
HexCloudClientFallbackFactory
.
class
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
HexCloudClient
{
/**
* 查询合阔订单排队序号
*
* @param baseRequest
* @return
*/
@PostMapping
(
value
=
"/hexcloud/order/status"
)
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
takeAwayOrderStatus
(
HexCloudBaseRequest
<
Map
<
String
,
String
>>
baseRequest
);
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClientFallbackFactory.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.process.order.OrderQueueIndexProcessorFactory
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.SpringBeanUtil
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 合阔接口降级处理
* @author: jiming.liu
* @date: 2021/7/22 下午2:45
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
HexCloudClientFallbackFactory
implements
FallbackFactory
<
HexCloudClient
>
{
@Override
public
HexCloudClient
create
(
Throwable
throwable
)
{
AppLogUtil
.
errorLog
(
"请求合阔获取订单排队号失败,降级处理:"
,
""
,
""
,
(
Exception
)
throwable
);
return
new
HexCloudClient
()
{
@Override
public
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
takeAwayOrderStatus
(
HexCloudBaseRequest
<
Map
<
String
,
String
>>
baseRequest
)
{
QueryLineUpOrderDto
vo
=
new
QueryLineUpOrderDto
();
vo
.
setStoreId
(
baseRequest
.
getShopId
());
vo
.
setPartnerId
(
baseRequest
.
getPartnerId
());
vo
.
setOrderCode
(
baseRequest
.
getOid
());
vo
.
setStartTime
(
baseRequest
.
getStartTime
());
vo
.
setEndTime
(
baseRequest
.
getEndTime
());
//请求非码自己的排队号
OrderQueueIndexProcessorFactory
factory
=
SpringBeanUtil
.
getBean
(
OrderQueueIndexProcessorFactory
.
class
);
HexCloudTakeAwayOrderStatusDto
statusDto
=
factory
.
commonProcessor
().
process
(
vo
);
if
(
null
!=
statusDto
)
{
statusDto
.
setHexCloudResponse
(
false
);
}
return
HexCloudBaseResponse
.
buildSuccess
(
statusDto
);
}
};
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/request/HexCloudBaseRequest.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
request
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 查询合阔接口基础参数
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudBaseRequest
<
T
>
{
/**
* 商户id
*/
private
String
partnerId
;
/**
* 店铺id
*/
private
String
shopId
;
/**
* 订单编号
*/
private
String
oid
;
/**
* 时间开始
*/
private
Long
startTime
;
/**
* 时间开始
*/
private
Long
endTime
;
/**
* 三方门店号
*/
private
String
thirdStoreId
;
/**
* 参数数据
*/
private
T
data
;
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudBaseResponse.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
response
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 合阔接口响base值
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudBaseResponse
<
T
>
{
/**
* 调用是否成功,0成功
*/
private
String
statusCode
;
/**
* 错误信息
*/
private
String
ver
;
private
String
message
;
/**
* 返回数据
*/
private
T
responseBody
;
/**
* 判断是否成功
*
* @return
*/
public
boolean
success
()
{
return
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
this
.
statusCode
);
}
/**
* 成功
*
* @param
* @return
*/
public
static
HexCloudBaseResponse
buildSuccess
()
{
return
HexCloudBaseResponse
.
builder
().
statusCode
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
).
build
();
}
/**
* 成功
*
* @param
* @return
*/
public
static
HexCloudBaseResponse
buildSuccess
(
Object
payload
)
{
return
HexCloudBaseResponse
.
builder
().
statusCode
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
).
responseBody
(
payload
).
build
();
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudTakeAwayOrderStatusDto.java
deleted
100644 → 0
View file @
fbbc7837
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
response
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 订单排队状态响应值
* @author: jiming.liu
* @date: 2021/7/21 下午2:55
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudTakeAwayOrderStatusDto
{
/**
* 合阔订单ID (全市场唯一)
*/
private
String
ticket_id
;
/**
* 第三方订单ID(必须唯一)
*/
private
String
tp_order_id
;
/**
* 订单状态: 等待制作(1),制作中(2),制作完成(3),已取餐(4),无效或废弃(5)
*/
private
Integer
flow_status
;
/**
* 取餐号
*/
private
String
takemealNumber
;
/**
* 预计等待时间:单位秒
*/
private
Integer
waiting_time
;
/**
* 前面等待订单数
*/
private
Integer
waiting_order_count
;
/**
* 前面等待商品数
*/
private
Integer
waiting_product_count
;
/**
* 是否是合阔
*/
private
boolean
hexCloudResponse
;
}
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