记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
0cb4c755
Commit
0cb4c755
authored
Jun 30, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
fedc2354
4110704e
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
99 additions
and
86 deletions
+99
-86
KylinRedisConst.java
...com/liquidnet/service/kylin/constant/KylinRedisConst.java
+1
-0
KylinOrderExpressRouteVo.java
...ervice/kylin/dto/vo/express/KylinOrderExpressRouteVo.java
+43
-0
ConsumerProcessor.java
...service/consumer/service/processor/ConsumerProcessor.java
+14
-5
PerformancesExpressCallbackController.java
...press/shunfeng/PerformancesExpressCallbackController.java
+17
-0
PerformancesExpressCallbackServiceImpl.java
...ress/shunfeng/PerformancesExpressCallbackServiceImpl.java
+21
-0
ShunfengSignUtils.java
...m/liquidnet/service/platform/utils/ShunfengSignUtils.java
+0
-81
errors.properties
...ervice-platform-impl/src/main/resources/errors.properties
+3
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/constant/KylinRedisConst.java
View file @
0cb4c755
...
...
@@ -18,6 +18,7 @@ public class KylinRedisConst {
public
static
final
String
SURPLUS_EXCHANGE
=
"surplusExchange"
;
public
static
final
String
TICKET
=
"kylin:ticket:id:"
;
public
static
final
String
ORDER
=
"kylin:order:id:"
;
public
static
final
String
ORDER_ROUTE_INFO
=
"kylin::order:route_info:id:"
;
public
static
final
String
ORDER_ENTITIES
=
"kylin:order_entities:id:"
;
public
static
final
String
TIMES
=
"kylin:times:id:"
;
public
static
final
String
AGENT
=
"kylin:agent:info"
;
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/express/KylinOrderExpressRouteVo.java
0 → 100644
View file @
0cb4c755
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
vo
.
express
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* <p>
* 快递路由信息
* </p>
*
* @author jiangxiulong
* @since 2021-06-30
*/
@Data
@ApiModel
public
class
KylinOrderExpressRouteVo
implements
Serializable
{
@ApiModelProperty
(
value
=
"orderExpressRouteId"
)
private
String
orderExpressRouteId
;
@ApiModelProperty
(
value
=
"orderExpressId"
)
private
String
orderExpressId
;
@ApiModelProperty
(
value
=
"路由节点发生的城市"
)
private
String
acceptAddress
;
@ApiModelProperty
(
value
=
"YYYY-MM-DD"
)
private
String
acceptDate
;
@ApiModelProperty
(
value
=
"HH24:MM:SS"
)
private
String
acceptTime
;
@ApiModelProperty
(
value
=
"YYYY-MM-DD HH24:MM:SS"
)
private
String
acceptTotaltime
;
@ApiModelProperty
(
value
=
"路由节点具体描述"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"路由节点操作码"
)
private
String
opcode
;
@ApiModelProperty
(
value
=
"createdAt"
)
private
String
createdAt
;
@ApiModelProperty
(
value
=
"updatedAt"
)
private
String
updatedAt
;
}
liquidnet-bus-service/liquidnet-service-consumer/src/main/java/com/liquidnet/service/consumer/service/processor/ConsumerProcessor.java
View file @
0cb4c755
...
...
@@ -87,10 +87,11 @@ public class ConsumerProcessor {
// 处理长sql语句
private
void
consumerOperationOrderClose
(
Message
msg
,
Channel
channel
)
{
String
jsonStr
=
StringEscapeUtils
.
unescapeJava
(
new
String
(
msg
.
getBody
()));
OrderCloseMapping
.
orderCloseMessage
mqMessage
=
JsonUtils
.
fromJson
(
jsonStr
.
substring
(
1
,
jsonStr
.
length
()-
1
),
OrderCloseMapping
.
orderCloseMessage
.
class
);
log
.
debug
(
"consumer ==> mqMessage:{}"
,
mqMessage
);
OrderCloseMapping
.
orderCloseMessage
mqMessage
=
JsonUtils
.
fromJson
(
jsonStr
.
substring
(
1
,
jsonStr
.
length
()
-
1
),
OrderCloseMapping
.
orderCloseMessage
.
class
);
log
.
debug
(
"consumer ==> mqMessage:{}"
,
mqMessage
.
getOrderTicketIds
()
);
try
{
mqMessage
.
getOrderTicketIds
().
forEach
(
t
->
{
for
(
int
x
=
0
;
x
<
mqMessage
.
getOrderTicketIds
().
size
();
x
++)
{
String
t
=
mqMessage
.
getOrderTicketIds
().
get
(
x
);
String
orderTicketId
=
t
.
split
(
","
)[
0
];
String
uid
=
t
.
split
(
","
)[
1
];
KylinOrderTicketVo
vo
=
(
KylinOrderTicketVo
)
redisUtil
.
get
(
"kylin:order:id:"
+
orderTicketId
);
...
...
@@ -103,7 +104,7 @@ public class ConsumerProcessor {
KylinOrderTicketEntitiesVo
items
=
vo
.
getEntitiesVoList
().
get
(
i
);
kylinUtils
.
changeBuyInfo
(
items
.
getUserId
(),
items
.
getEnterIdCode
(),
items
.
getPerformanceId
(),
items
.
getTicketId
(),
-
1
);
}
}
);
}
channel
.
basicAck
(
msg
.
getMessageProperties
().
getDeliveryTag
(),
false
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -455,6 +456,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
...
...
@@ -463,6 +465,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
...
...
@@ -471,6 +474,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
...
...
@@ -479,6 +483,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
...
...
@@ -497,6 +502,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
...
...
@@ -505,6 +511,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
...
...
@@ -513,6 +520,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
...
...
@@ -521,6 +529,7 @@ public class ConsumerProcessor {
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/express/shunfeng/PerformancesExpressCallbackController.java
View file @
0cb4c755
package
com
.
liquidnet
.
service
.
platform
.
controller
.
express
.
shunfeng
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.PerformanceExpressPushFreightParam
;
import
com.liquidnet.service.kylin.dto.param.PerformanceExpressPushRouteParam
;
import
com.liquidnet.service.kylin.dto.param.PerformanceExpressPushStatusParam
;
import
com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo
;
import
com.liquidnet.service.platform.service.express.shunfeng.PerformancesExpressCallbackServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
...
...
@@ -67,4 +72,16 @@ public class PerformancesExpressCallbackController {
return
objectObjectHashMap
;
}
@GetMapping
(
"orderRoute/{orderTicketsId}"
)
@ApiOperation
(
"获取物流信息"
)
@ApiImplicitParam
(
name
=
"orderTicketsId"
,
value
=
"订单ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
public
ResponseDto
<
List
<
KylinOrderExpressRouteVo
>>
orderRouteDetail
(
@PathVariable
()
String
orderTicketsId
)
{
List
<
KylinOrderExpressRouteVo
>
routeVoList
=
performancesExpressServiceImpl
.
orderRouteDetail
(
orderTicketsId
);
if
(
null
!=
routeVoList
)
{
return
ResponseDto
.
success
(
routeVoList
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20800"
));
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/express/shunfeng/PerformancesExpressCallbackServiceImpl.java
View file @
0cb4c755
package
com
.
liquidnet
.
service
.
platform
.
service
.
express
.
shunfeng
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.param.*
;
import
com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
com.liquidnet.service.kylin.service.IKylinOrderExpress
;
...
...
@@ -10,12 +14,16 @@ import com.liquidnet.service.platform.utils.ShunfengSignUtils;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Enumeration
;
import
java.util.List
;
import
java.util.regex.Pattern
;
/**
* <p>
...
...
@@ -66,6 +74,9 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
@Autowired
HttpServletRequest
httpServletRequest
;
@Autowired
private
RedisUtil
redisUtil
;
public
boolean
orderStatus
(
PerformanceExpressPushStatusParam
performanceExpressPushStatusParam
)
{
boolean
res
=
shunfengSignUtils
.
receiveRequestAndCheckSign
(
JsonUtils
.
toJson
(
performanceExpressPushStatusParam
),
httpServletRequest
);
...
...
@@ -135,4 +146,14 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
return
false
;
}
public
List
<
KylinOrderExpressRouteVo
>
orderRouteDetail
(
String
orderTicketsId
)
{
String
redisKey
=
KylinRedisConst
.
ORDER_ROUTE_INFO
.
concat
(
orderTicketsId
);
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTicketsId
));
List
<
KylinOrderExpressRouteVo
>
routeList
=
mongoTemplate
.
find
(
query
,
KylinOrderExpressRouteVo
.
class
,
KylinOrderExpressRouteVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
redisKey
,
routeList
);
}
return
(
List
<
KylinOrderExpressRouteVo
>)
redisUtil
.
get
(
redisKey
);
}
}
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/ShunfengSignUtils.java
View file @
0cb4c755
package
com
.
liquidnet
.
service
.
platform
.
utils
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.UserPathDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.binary.Base64
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.HashMap
;
/**
* <p>
...
...
@@ -31,86 +20,16 @@ import java.util.HashMap;
@Component
@Slf4j
public
class
ShunfengSignUtils
{
/**
* appId
*/
@Value
(
"${liquidnet.shunfeng.appid}"
)
private
String
APP_ID
;
/**
* sk
*/
@Value
(
"${liquidnet.shunfeng.sk}"
)
private
String
SK
;
/**
* url
*/
@Value
(
"${liquidnet.shunfeng.url}"
)
private
String
URL
;
/**
* 签名有效期(可根据实际业务设定)单位:毫秒
*/
private
final
static
Long
CHECK_TIME
=
600000L
;
/**
* 生成签名并请求
* @param hbody 请求body
* @return
*/
public
String
generateSignatureAndRequest
(
HashMap
<
String
,
Object
>
hbody
,
String
url
)
{
long
currentTimeMillis
=
System
.
currentTimeMillis
();
// 时间戳
String
timestamp
=
currentTimeMillis
+
""
;
hbody
.
put
(
"companyId"
,
APP_ID
);
String
body
=
JsonUtils
.
toJson
(
hbody
);
// 生成签名
String
sign
=
genSign
(
timestamp
,
body
);
CloseableHttpClient
client
=
HttpClients
.
createDefault
();
// 请求下单地址
HttpPost
httpPost
=
new
HttpPost
(
URL
+
url
);
// sendAppId(sendAppId需赋值appId)
httpPost
.
addHeader
(
"sendAppId"
,
APP_ID
);
// 时间戳需和获取验签时一致!!!
httpPost
.
addHeader
(
"timestamp"
,
timestamp
);
// 签名
httpPost
.
addHeader
(
"sign"
,
sign
);
httpPost
.
addHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
httpPost
.
addHeader
(
"Accept"
,
"application/json"
);
// 请求body体需和获取验签时一致且编码UTF8!!!
httpPost
.
setEntity
(
new
StringEntity
(
body
,
"utf-8"
));
CloseableHttpResponse
response
=
null
;
log
.
info
(
UserPathDto
.
setData
(
"header"
,
""
,
httpPost
.
getAllHeaders
()));
log
.
info
(
UserPathDto
.
setData
(
"body"
,
""
,
body
));
try
{
response
=
client
.
execute
(
httpPost
);
if
(
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
System
.
out
.
println
(
"发送请求成功"
);
HttpEntity
entity
=
response
.
getEntity
();
// 发送响应且编码UTF8!!!
return
EntityUtils
.
toString
(
entity
,
"utf-8"
);
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"发送请求失败"
);
e
.
printStackTrace
();
}
finally
{
if
(
client
!=
null
)
{
try
{
client
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
if
(
response
!=
null
)
{
try
{
response
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
null
;
}
/**
* 生成签名
* @param timestamp 时间戳
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/resources/errors.properties
View file @
0cb4c755
...
...
@@ -4,6 +4,9 @@
# ------------------------ 4开头错误码作系统保留
30000
=
请求频繁,稍后再试
# 快递
20800
=
订单物流信息获取失败
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