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
ccfec5b3
Commit
ccfec5b3
authored
Sep 17, 2021
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
网关验证
parent
cab83486
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
136 additions
and
3 deletions
+136
-3
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
+11
-0
order-application-service/src/main/java/cn/freemud/manager/PushMccafeOrderManager.java
+6
-0
order-application-service/src/main/java/cn/freemud/manager/dao/PushMccafeOrderDao.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
+2
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+105
-3
order-application-service/src/main/resources/mapper/PushMccafeOrderDao.xml
+8
-0
No files found.
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
View file @
ccfec5b3
...
@@ -133,6 +133,17 @@ public class McCafeController {
...
@@ -133,6 +133,17 @@ public class McCafeController {
/**
* 麦咖啡推送订单数据到麦当劳 -- 补偿/修正
*/
@ApiAnnotation
(
logMessage
=
"mcCafePushOrderMakeUp"
)
@PostMapping
(
"/mcCafePushOrderMakeUp"
)
public
BaseResponse
mcCafePushOrderMakeUp
(
@Validated
@LogParams
@RequestBody
McCafeQueryOrderVo
queryOrderVo
)
{
return
mcCafeOrderService
.
mcCafePushOrderMakeUp
(
queryOrderVo
);
}
}
}
order-application-service/src/main/java/cn/freemud/manager/PushMccafeOrderManager.java
View file @
ccfec5b3
...
@@ -7,6 +7,8 @@ import cn.freemud.manager.dao.PushMccafeOrderDao;
...
@@ -7,6 +7,8 @@ import cn.freemud.manager.dao.PushMccafeOrderDao;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
/**
/**
* 商户小程序manager
* 商户小程序manager
*
*
...
@@ -23,6 +25,10 @@ public class PushMccafeOrderManager {
...
@@ -23,6 +25,10 @@ public class PushMccafeOrderManager {
return
pushMccafeOrderDao
.
selectOrder
(
orderCode
);
return
pushMccafeOrderDao
.
selectOrder
(
orderCode
);
}
}
public
List
<
PushMccafeOrder
>
selectOrderByStatus
(
Integer
id
)
{
return
pushMccafeOrderDao
.
selectOrderByStatus
(
id
);
}
public
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
)
{
public
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
)
{
return
pushMccafeOrderDao
.
insertOrder
(
pushMccafeOrder
);
return
pushMccafeOrderDao
.
insertOrder
(
pushMccafeOrder
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/manager/dao/PushMccafeOrderDao.java
View file @
ccfec5b3
...
@@ -5,11 +5,15 @@ import cn.freemud.entities.db.PushMccafeOrder;
...
@@ -5,11 +5,15 @@ import cn.freemud.entities.db.PushMccafeOrder;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@Repository
public
interface
PushMccafeOrderDao
{
public
interface
PushMccafeOrderDao
{
PushMccafeOrder
selectOrder
(
@Param
(
"orderCode"
)
String
orderCode
);
PushMccafeOrder
selectOrder
(
@Param
(
"orderCode"
)
String
orderCode
);
List
<
PushMccafeOrder
>
selectOrderByStatus
(
@Param
(
"status"
)
Integer
status
);
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
);
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
);
Integer
updateOrder
(
PushMccafeOrder
pushMccafeOrder
);
Integer
updateOrder
(
PushMccafeOrder
pushMccafeOrder
);
...
...
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
View file @
ccfec5b3
...
@@ -57,4 +57,6 @@ public interface MCCafeOrderService {
...
@@ -57,4 +57,6 @@ public interface MCCafeOrderService {
BaseResponse
mcCafePushOrder
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafePushOrder
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafePushOrderMakeUp
(
McCafeQueryOrderVo
queryOrderVo
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
ccfec5b3
...
@@ -142,6 +142,8 @@ import org.springframework.web.client.RestTemplate;
...
@@ -142,6 +142,8 @@ import org.springframework.web.client.RestTemplate;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
...
@@ -2568,6 +2570,100 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -2568,6 +2570,100 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
headers
.
set
(
"Sign"
,
sign
);
headers
.
set
(
"Sign"
,
sign
);
headers
.
add
(
"Accept"
,
MediaType
.
APPLICATION_JSON_VALUE
);
headers
.
add
(
"Accept"
,
MediaType
.
APPLICATION_JSON_VALUE
);
Gson
gson
=
new
Gson
();
Gson
gson
=
new
Gson
();
String
json
=
JSON
.
toJSONString
(
mcCafePushOrderDto
);
HttpEntity
<
String
>
requestEntity
=
new
HttpEntity
<>(
json
,
headers
);
ResponseEntity
<
String
>
responseEntity
=
client
.
exchange
(
mccafePushOrderGatewayUrl
+
"/mp/order"
,
HttpMethod
.
POST
,
requestEntity
,
String
.
class
);
McCafePushOrderResponseDto
responseDto
=
JSON
.
parseObject
(
responseEntity
.
getBody
(),
McCafePushOrderResponseDto
.
class
);
// McCafePushOrderResponseDto responseDto = mcCafePushOrderClient.mcCafePushOrder(mcCafePushOrderDto);
PushMccafeOrder
pushMccafeOrder
=
new
PushMccafeOrder
();
pushMccafeOrder
.
setOrderCode
(
orderInfoReqs
.
getOrderCode
());
pushMccafeOrder
.
setPartnerId
(
orderInfoReqs
.
getPartnerId
());
pushMccafeOrder
.
setStoreId
(
orderInfoReqs
.
getStoreId
());
if
(!
"SUCCESS"
.
equals
(
responseDto
.
getCode
()))
{
pushMccafeOrder
.
setStatus
(
0
);
pushMccafeOrder
.
setFailReason
(
JSON
.
toJSONString
(
responseDto
));
}
else
{
pushMccafeOrder
.
setStatus
(
1
);
}
pushMccafeOrderManager
.
insertOrder
(
pushMccafeOrder
);
}
catch
(
ServiceException
e
)
{
AppLogUtil
.
errorLog
(
"麦咖啡历史订单推送失败: "
+
JSON
.
toJSONString
(
orderInfoReqs
)
+
" 异常信息: "
+
e
.
getMessage
(),
null
,
null
,
null
);
PushMccafeOrder
pushMccafeOrder
=
new
PushMccafeOrder
();
pushMccafeOrder
.
setOrderCode
(
orderInfoReqs
.
getOrderCode
());
pushMccafeOrder
.
setPartnerId
(
orderInfoReqs
.
getPartnerId
());
pushMccafeOrder
.
setStoreId
(
orderInfoReqs
.
getStoreId
());
pushMccafeOrder
.
setStatus
(
0
);
pushMccafeOrder
.
setFailReason
(
e
.
getMessage
());
pushMccafeOrderManager
.
insertOrder
(
pushMccafeOrder
);
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"麦咖啡历史订单推送失败: "
+
JSON
.
toJSONString
(
orderInfoReqs
)
+
" 异常信息: "
+
ExceptionUtils
.
getExceptionInfo
(
e
),
null
,
null
,
null
);
e
.
printStackTrace
();
PushMccafeOrder
pushMccafeOrder
=
new
PushMccafeOrder
();
pushMccafeOrder
.
setOrderCode
(
orderInfoReqs
.
getOrderCode
());
pushMccafeOrder
.
setPartnerId
(
orderInfoReqs
.
getPartnerId
());
pushMccafeOrder
.
setStoreId
(
orderInfoReqs
.
getStoreId
());
pushMccafeOrder
.
setStatus
(
0
);
pushMccafeOrder
.
setFailReason
(
ExceptionUtils
.
getExceptionInfo
(
e
));
pushMccafeOrderManager
.
insertOrder
(
pushMccafeOrder
);
}
}
}
});
BaseResponse
baseResponse
=
new
BaseResponse
();
baseResponse
.
setCode
(
"100"
);
baseResponse
.
setMessage
(
"success"
);
return
baseResponse
;
}
public
BaseResponse
mcCafePushOrderMakeUp
(
McCafeQueryOrderVo
queryOrderVo
)
{
executor
.
submit
(()
->
{
int
id
=
0
;
while
(
true
)
{
List
<
PushMccafeOrder
>
pushMccafeOrderList
=
pushMccafeOrderManager
.
selectOrderByStatus
(
id
);
if
(
CollectionUtils
.
isEmpty
(
pushMccafeOrderList
))
{
break
;
}
List
<
String
>
orderCodes
=
pushMccafeOrderList
.
stream
().
map
(
o
->
o
.
getOrderCode
()).
collect
(
Collectors
.
toList
());
OrderConditionsReq
orderConditionsReq
=
new
OrderConditionsReq
();
orderConditionsReq
.
setOrderCodes
(
orderCodes
);
orderConditionsReq
.
setPageNum
(
1
);
orderConditionsReq
.
setPageSize
(
500
);
orderConditionsReq
.
setSortRule
(
1
);
BaseDownLoadResponse
<
List
<
OrderInfoReqs
>>
response
=
orderDownLoadSdkService
.
queryOrderByConditions
(
orderConditionsReq
,
LogThreadLocal
.
getTrackingNo
());
AppLogUtil
.
infoLog
(
"queryOrderByConditions:"
+
JSON
.
toJSONString
(
response
),
null
,
null
);
if
(
CollectionUtils
.
isEmpty
(
response
.
getResult
()))
{
break
;
}
RestTemplate
client
=
new
RestTemplate
();
for
(
OrderInfoReqs
orderInfoReqs
:
response
.
getResult
())
{
try
{
McCafePushOrderDto
mcCafePushOrderDto
=
convert2McCafePushOrderInfo
(
orderInfoReqs
);
AppLogUtil
.
infoLog
(
"订单推送入参: "
+
JSON
.
toJSONString
(
mcCafePushOrderDto
),
null
,
null
);
String
timestamp
=
System
.
currentTimeMillis
()+
""
;
String
sign
=
getMcdOpenApiSign
(
mccafePushOrderAppId
,
JSON
.
toJSONString
(
mcCafePushOrderDto
),
mccafePushOrderMerchantId
,
timestamp
,
mccafePushOrderKey
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
set
(
"Provider"
,
"WX"
);
headers
.
set
(
"Version"
,
"1.0"
);
headers
.
set
(
"AppId"
,
mccafePushOrderAppId
);
headers
.
set
(
"MerchantId"
,
mccafePushOrderMerchantId
);
headers
.
set
(
"Timestamp"
,
timestamp
);
headers
.
set
(
"Sign"
,
sign
);
headers
.
add
(
"Accept"
,
MediaType
.
APPLICATION_JSON_VALUE
);
Gson
gson
=
new
Gson
();
String
json
=
gson
.
toJson
(
mcCafePushOrderDto
);
String
json
=
gson
.
toJson
(
mcCafePushOrderDto
);
HttpEntity
<
String
>
requestEntity
=
new
HttpEntity
<>(
json
,
headers
);
HttpEntity
<
String
>
requestEntity
=
new
HttpEntity
<>(
json
,
headers
);
ResponseEntity
<
String
>
responseEntity
=
client
.
exchange
(
mccafePushOrderGatewayUrl
+
"/mp/order"
,
HttpMethod
.
POST
,
requestEntity
,
String
.
class
);
ResponseEntity
<
String
>
responseEntity
=
client
.
exchange
(
mccafePushOrderGatewayUrl
+
"/mp/order"
,
HttpMethod
.
POST
,
requestEntity
,
String
.
class
);
...
@@ -2612,9 +2708,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -2612,9 +2708,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
}
}
}
}
}
});
});
BaseResponse
baseResponse
=
new
BaseResponse
();
BaseResponse
baseResponse
=
new
BaseResponse
();
baseResponse
.
setCode
(
"100"
);
baseResponse
.
setCode
(
"100"
);
baseResponse
.
setMessage
(
"success"
);
baseResponse
.
setMessage
(
"success"
);
...
@@ -2945,13 +3044,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -2945,13 +3044,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
}
}
}
public
String
getMcdOpenApiSign
(
String
appId
,
String
body
,
String
merchantId
,
String
timestamp
,
String
key
)
throws
UnsupportedEncodingException
,
NoSuchAlgorithmException
{
public
static
String
getMcdOpenApiSign
(
String
appId
,
String
body
,
String
merchantId
,
String
timestamp
,
String
key
)
{
String
signStr
=
String
.
format
(
"AppId=%s&Body=%s&MerchantId=%s&Timestamp=%s&key=%s"
,
appId
,
body
,
merchantId
,
timestamp
,
key
);
String
signStr
=
String
.
format
(
"AppId=%s&Body=%s&MerchantId=%s&Timestamp=%s&key=%s"
,
appId
,
body
,
merchantId
,
timestamp
,
key
);
String
sign
=
M
d5Util
.
encoderToMd5
(
signStr
).
toUpperCase
();
String
sign
=
M
D5Util
.
MD5Encode
(
signStr
,
"utf-8"
).
toUpperCase
();
return
sign
;
return
sign
;
}
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
DateUtil
.
convert2String
(
new
Date
(
1631519403066
l
),
"yyyy-MM-dd HH:mm:ss"
));
String
t
=
String
.
valueOf
(
System
.
currentTimeMillis
());
System
.
out
.
println
(
t
);
System
.
out
.
println
(
getMcdOpenApiSign
(
"132150066"
,
"{\"mpOrderId\":\"22210922765267866600006\",\"displayOrderId\":\"0\",\"type\":\"1\",\"saleType\":\"2\",\"eatType\":\"1\",\"deliveryType\":\"1\",\"sourceType\":\"WXMP\",\"beType\":\"3\",\"dayPart\":\"2\",\"channel\":\"10\",\"status\":\"80\",\"invoiceNeeded\":1,\"Invoiced\":1,\"customer_id\":\"MEDDY991578176625117171\",\"storeCode\":\"1450167\",\"storeName\":\"麦当劳麦咖啡(桂平路-漕河泾店)\",\"businessDate\":\"2021-09-17\",\"tablewareInfo\":\"02\",\"totalAmount\":2500,\"taxTotalAmount\":150,\"discountTotalAmount\":0,\"realTotalAmount\":2500,\"deliveryPrice\":0,\"realDeliveryPrice\":0,\"remark\":\"\",\"saleTime\":\"2021-09-17 14:51:28\",\"completionTime\":\"2021-09-17 15:51:05\",\"cancellationReasonCode\":\"-1\",\"cancellationRemark\":\"\",\"acceptTime\":\"2021-09-17 14:51:05.000\",\"pickupCode\":\"0\",\"openId\":\"oDF-Z5V60m2rgKYaHkf4ImhqR_XQ\",\"unionId\":\"oJeaRwyFU420hv0V3tddABipaH2I\",\"createdDate\":\"2021-09-17 14:51:05\",\"orderItem\":[{\"mpItemId\":\"190081895830260510\",\"sequenceId\":\"1\",\"round\":\"1\",\"productType\":\"1\",\"productCode\":\"507332\",\"productAttribute\":[{\"grillCode\":\"8008\",\"grillItemList\":[{\"grillItemCode\":\"1\",\"grillItemNameCn\":\"\",\"quantity\":\"1\"}]},{\"grillCode\":\"120146\",\"grillItemList\":[{\"grillItemCode\":\"0\",\"grillItemNameCn\":\"\",\"quantity\":\"1\"}]}],\"productName\":\"摩卡\",\"productLongName\":\"摩卡\",\"productNameEn\":\"\",\"productLongNameEn\":\"\",\"quantity\":\"1\",\"real_quantity\":\"1\",\"original_price\":\"2100\",\"price\":\"2500\",\"subtotal\":\"2500\",\"discountAmount\":\"0\",\"realAmount\":\"2500\",\"taxAmount\":\"150\",\"taxAmountDetail\":[{\"uniqueCode\":\"507332\",\"taxItems\":[{\"realAmount\":2500,\"taxAmount\":150,\"taxId\":\"10\",\"taxRate\":\"6\"}]}],\"taxId\":\"10\",\"taxRate\":\"6\",\"costInclusive\":\"1\",\"createdDate\":\"2021-09-17 14:51:05\"}],\"orderPayment\":[{\"channelPayTransactionId\":\"TSXA1205O347754218314084352\",\"payStatus\":\"PAID\",\"paySource\":\"10\",\"payChannel\":\"WX\",\"payAmount\":2500,\"refundType\":\"1\",\"refundAmount\":2500,\"refundTime\":\"2021-09-17 14:52:59\",\"refundReason\":\"用户申请退款\",\"signType\":\"0\",\"payPurpose\":\"02\",\"consumeType\":\"01\",\"tenderCode\":\"150\",\"refundStatus\":\"REFUNDED\",\"channelRefundTransactionId\":\"4200001214202109173002127737\",\"createdDate\":\"2021-09-17 14:51:28\"}],\"orderFoe\":[{\"foeOrderKey\":\"22210922765267866600006\",\"storeCode\":\"1450167\",\"orderType\":\"1\",\"pickupCode\":\"0\",\"status\":\"20\",\"foeType\":\"1\",\"createdDate\":\"2021-09-17 14:51:05\"},{\"foeOrderKey\":\"22210922765267866600006\",\"storeCode\":\"1450167\",\"orderType\":\"1\",\"pickupCode\":\"0\",\"status\":\"20\",\"foeType\":\"1\",\"createdDate\":\"2021-09-17 14:51:05\"}]}"
,
"M32118436"
,
t
,
"78c915bb-a3a3-4957-b177-27667adb8df1"
));
}
}
}
}
order-application-service/src/main/resources/mapper/PushMccafeOrderDao.xml
View file @
ccfec5b3
...
@@ -19,6 +19,14 @@
...
@@ -19,6 +19,14 @@
FROM push_mccafe_order WHERE order_code=#{orderCode}
FROM push_mccafe_order WHERE order_code=#{orderCode}
</select>
</select>
<select
id=
"selectOrder"
resultType=
"cn.freemud.entities.db.PushMccafeOrder"
>
SELECT
<include
refid=
"all_column"
/>
FROM push_mccafe_order WHERE status = 0
id > #{id}
limit 500;
</select>
<insert
id=
"insertOrder"
parameterType=
"cn.freemud.entities.db.PushMccafeOrder"
>
<insert
id=
"insertOrder"
parameterType=
"cn.freemud.entities.db.PushMccafeOrder"
>
INSERT INTO push_mccafe_order ( order_code, partner_id,store_id,status,fail_reason)
INSERT INTO push_mccafe_order ( order_code, partner_id,store_id,status,fail_reason)
VALUES
VALUES
...
...
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