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
0969b437
Commit
0969b437
authored
Apr 23, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
指定订单数据写入mq及补推订单数据工具
parent
3f671fe9
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
232 additions
and
0 deletions
+232
-0
call-back-service/src/main/java/cn/freemud/amp/config/OrderCallBackConfig.java
+19
-0
call-back-service/src/main/java/cn/freemud/amp/service/OrderCallBackMQService.java
+40
-0
call-back-service/src/main/java/cn/freemud/controller/ToolsController.java
+38
-0
call-back-service/src/main/java/cn/freemud/entities/vo/PushInvoiceRequestVo.java
+25
-0
call-back-service/src/main/java/cn/freemud/service/ToolsService.java
+21
-0
call-back-service/src/main/java/cn/freemud/service/impl/ToolsServiceImpl.java
+89
-0
No files found.
call-back-service/src/main/java/cn/freemud/amp/config/OrderCallBackConfig.java
View file @
0969b437
...
...
@@ -33,6 +33,9 @@ public class OrderCallBackConfig {
public
static
final
String
WECHAT_ORDER_REPORT_QUEUE_ROUTING_KEY
=
"wechat-order-report-queue-routing-key"
;
public
static
final
String
WECHAT_ORDER_REPORT_QUEUE
=
"wechat-order-report-queue"
;
public
static
final
String
INVOICE_EXCHANGE
=
"invoice-report-topic-exchange"
;
public
static
final
String
INVOICE_QUEUE
=
"invoice-report-queue"
;
public
static
final
String
INVOICE_ROUTE_KEY
=
"invoice-report-queue-routing-key"
;
/**
* 定义基于Fanout 的Exchange。
* 基于这个代码,也可以非常方便的定义其他的Exchange类型。
...
...
@@ -96,4 +99,20 @@ public class OrderCallBackConfig {
return
new
OrderCallBackMQService
();
}
/**
* 发票queue绑定设置
* @return
*/
@Bean
(
name
=
"invoiceExchange"
)
public
Exchange
invoiceExchange
()
{
return
ExchangeBuilder
.
topicExchange
(
INVOICE_EXCHANGE
).
durable
(
true
).
build
();
}
@Bean
(
name
=
"invoiceQueue"
)
public
Queue
invoiceQueue
()
{
return
QueueBuilder
.
durable
(
INVOICE_QUEUE
).
build
();
}
@Bean
Binding
bindingInvoiceQueue
(
@Qualifier
(
"invoiceQueue"
)
Queue
invoiceQueue
,
@Qualifier
(
"invoiceExchange"
)
Exchange
invoiceExchange
)
{
return
BindingBuilder
.
bind
(
invoiceQueue
).
to
(
invoiceExchange
).
with
(
INVOICE_ROUTE_KEY
).
noargs
();
}
}
call-back-service/src/main/java/cn/freemud/amp/service/OrderCallBackMQService.java
View file @
0969b437
...
...
@@ -36,11 +36,13 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemR
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.sdk.api.assortment.orderdistributor.request.DisRequest
;
import
com.freemud.sdk.api.assortment.orderdistributor.service.OrderDistributionService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -50,6 +52,7 @@ import java.util.List;
import
java.util.Map
;
@Component
@Slf4j
public
class
OrderCallBackMQService
{
private
static
ApplicationContext
context
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
OrderCallBackMQService
.
class
);
...
...
@@ -63,6 +66,8 @@ public class OrderCallBackMQService {
private
RedisCache
redisCache
;
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
@Value
(
"${saas.order.invoice.report.partnerIds}"
)
private
String
InvoicePartnerIds
;
public
void
sendOrderMQ
(
OrderCallBackRequestVo
body
)
{
//发送订单回调
...
...
@@ -77,6 +82,8 @@ public class OrderCallBackMQService {
}
//微信数据上传(创建新订单&支付成功时上传)
sendWechatReportMQ
(
body
);
//上报发票信息
sendnvoiceReportMQ
(
body
);
}
private
void
sendWechatReportMQ
(
OrderCallBackRequestVo
body
)
{
try
{
...
...
@@ -214,4 +221,37 @@ public class OrderCallBackMQService {
wechatReportOrderDto
.
setDishList
(
dishList
);
return
wechatReportOrderDto
;
}
/**
* 上报指定商户已支付的订单到MQ
* 只上报普通订单
* @param body
*/
private
void
sendnvoiceReportMQ
(
OrderCallBackRequestVo
body
)
{
if
(!
ObjectUtils
.
equals
(
"1"
,
body
.
getMsgType
())
||
body
.
getOperateType
()
==
null
||
body
.
getOperateType
()
==
2
)
{
return
;
}
OrderInfoReqs
orderInfoReqs
=
JSONObject
.
parseObject
(
body
.
getContent
(),
OrderInfoReqs
.
class
);
if
(
(
orderInfoReqs
==
null
||
!
NewOrderStatus
.
PENDING_PAYMENT
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderState
())
||
orderInfoReqs
.
getBizType
()!=
1
)
&&
!
InvoicePartnerIds
.
contains
(
orderInfoReqs
.
getPartnerId
())
)
{
return
;
}
try
{
Header
header
=
new
Header
(
"report"
,
"call-back-service-api"
,
OrderCallBackConfig
.
INVOICE_ROUTE_KEY
,
OrderCallBackConfig
.
INVOICE_QUEUE
);
MQMessage
<
OrderInfoReqs
>
message
=
new
MQMessage
<>(
header
,
orderInfoReqs
);
mqService
.
convertAndSend
(
OrderCallBackConfig
.
INVOICE_EXCHANGE
,
OrderCallBackConfig
.
INVOICE_ROUTE_KEY
,
message
);
}
catch
(
Exception
e
)
{
log
.
error
(
"setInvoice,orderCode={}"
,
orderInfoReqs
.
getOrderCode
(),
e
.
toString
());
}
}
}
call-back-service/src/main/java/cn/freemud/controller/ToolsController.java
0 → 100644
View file @
0969b437
package
cn
.
freemud
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.PushInvoiceRequestVo
;
import
cn.freemud.service.ToolsService
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.Valid
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.controller ToolController
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RestController
@RequestMapping
(
value
=
"/tools"
,
consumes
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
class
ToolsController
{
@Autowired
private
ToolsService
toolsService
;
@PostMapping
(
"/push"
)
@ApiAnnotation
(
logMessage
=
"/push"
)
public
BaseResponse
push
(
@Valid
@RequestBody
@LogParams
PushInvoiceRequestVo
requestVo
)
{
return
toolsService
.
push
(
requestVo
);
}
}
call-back-service/src/main/java/cn/freemud/entities/vo/PushInvoiceRequestVo.java
0 → 100644
View file @
0969b437
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities PushInvoiceRequestVo
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
PushInvoiceRequestVo
{
private
String
partnerId
;
private
String
startTime
;
private
String
endTime
;
private
String
send
;
private
List
<
String
>
orderCodes
;
}
call-back-service/src/main/java/cn/freemud/service/ToolsService.java
0 → 100644
View file @
0969b437
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.PushInvoiceRequestVo
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderCallBackService
* @Package cn.freemud.service
* @Description:
* @author: ping.wu
* @date: 2019/4/16 10:16
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
interface
ToolsService
{
BaseResponse
push
(
PushInvoiceRequestVo
requestVo
);
}
call-back-service/src/main/java/cn/freemud/service/impl/ToolsServiceImpl.java
0 → 100644
View file @
0969b437
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.amp.config.OrderCallBackConfig
;
import
cn.freemud.amqp.Header
;
import
cn.freemud.amqp.MQMessage
;
import
cn.freemud.amqp.MQService
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.vo.PushInvoiceRequestVo
;
import
cn.freemud.service.ToolsService
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.service.impl ToolsServiceImpl
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
ToolsServiceImpl
implements
ToolsService
{
@Autowired
private
OrderDownLoadSdkService
orderDownLoadSdkService
;
@Autowired
private
MQService
mqService
;
@Override
public
BaseResponse
push
(
PushInvoiceRequestVo
requestVo
)
{
long
start
=
DateUtil
.
getTimestamp
(
requestVo
.
getStartTime
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
);
long
end
=
DateUtil
.
getTimestamp
(
requestVo
.
getEndTime
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
);
OrderConditionsReq
req
=
new
OrderConditionsReq
();
req
.
setPartnerId
(
requestVo
.
getPartnerId
());
req
.
setStartTimestamp
(
start
/
1000
);
req
.
setEndTimestamp
(
end
/
1000
);
req
.
setPayStatuses
(
Arrays
.
asList
(
2
));
req
.
setBizType
(
1
);
req
.
setPageSize
(
1
);
req
.
setPageNum
(
1
);
if
(
requestVo
.
getOrderCodes
()!=
null
)
{
req
.
setOrderCodes
(
requestVo
.
getOrderCodes
());
}
BaseDownLoadResponse
<
List
<
OrderInfoReqs
>>
response
=
orderDownLoadSdkService
.
queryOrderByConditions
(
req
,
LogThreadLocal
.
getTrackingNo
());
if
(!
"100"
.
equals
(
response
.
getCode
())
||
response
.
getResult
()==
null
)
{
return
new
BaseResponse
(
"1"
,
"1"
,
"查询Es数据失败"
);
}
if
(
response
.
getTotalNum
()==
0
)
{
return
new
BaseResponse
(
"1"
,
"100"
,
"在ES没查询到数据."
);
}
//订单总数
Integer
orderTotal
=
response
.
getTotalNum
();
if
(!
"1"
.
equals
(
requestVo
.
getSend
()))
{
return
new
BaseResponse
(
"1"
,
"100"
,
"符合条件的订单数据:"
+
orderTotal
+
"条"
);
}
int
pageSize
=
500
;
int
pageTotal
=
(
int
)
Math
.
ceil
((
double
)
orderTotal
/
(
double
)
pageSize
);
for
(
int
i
=
0
;
i
<
pageTotal
;
i
++)
{
req
.
setPageSize
(
pageSize
);
req
.
setPageNum
(
i
+
1
);
response
=
orderDownLoadSdkService
.
queryOrderByConditions
(
req
,
LogTreadLocal
.
getTrackingNo
());
for
(
OrderInfoReqs
reqs
:
response
.
getResult
())
{
Header
header
=
new
Header
(
"report"
,
"call-back-service-api"
,
OrderCallBackConfig
.
INVOICE_ROUTE_KEY
,
OrderCallBackConfig
.
INVOICE_QUEUE
);
MQMessage
<
String
>
message
=
new
MQMessage
<>(
header
,
JSON
.
toJSONString
(
reqs
));
mqService
.
convertAndSend
(
OrderCallBackConfig
.
INVOICE_EXCHANGE
,
OrderCallBackConfig
.
INVOICE_ROUTE_KEY
,
message
);
}
}
return
new
BaseResponse
(
"1"
,
"100"
,
"写入MQ:"
+
orderTotal
);
}
}
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