记得上下班打卡 | 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
0c68a2fb
Commit
0c68a2fb
authored
Jul 27, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:NEW优化、分页调整、专业版登录调整;
parent
5841c5b4
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
210 additions
and
132 deletions
+210
-132
JwtValidator.java
...in/java/com/liquidnet/commons/lang/core/JwtValidator.java
+1
-0
CurrentUtil.java
...ain/java/com/liquidnet/commons/lang/util/CurrentUtil.java
+21
-16
SqlMapping.java
.../src/main/java/com/liquidnet/service/base/SqlMapping.java
+4
-3
GlobalAuthorityInterceptor.java
...quidnet/common/web/filter/GlobalAuthorityInterceptor.java
+74
-31
GlobalLogTrackInterceptor.java
...iquidnet/common/web/filter/GlobalLogTrackInterceptor.java
+0
-2
AdamLoginController.java
...iquidnet/service/adam/controller/AdamLoginController.java
+4
-4
AdamMemberOrderServiceImpl.java
...service/adam/service/impl/AdamMemberOrderServiceImpl.java
+8
-4
KylinStationController.java
...dnet/service/kylin/controller/KylinStationController.java
+49
-62
KylinOrderTicketEntitiesServiceImpl.java
...lin/service/impl/KylinOrderTicketEntitiesServiceImpl.java
+4
-2
ObjectUtil.java
...in/java/com/liquidnet/service/kylin/utils/ObjectUtil.java
+40
-0
errors.properties
...t-service-kylin-impl/src/main/resources/errors.properties
+1
-1
KylinOrderTicketsServiceImpl.java
...vice/order/service/impl/KylinOrderTicketsServiceImpl.java
+2
-2
GlobalAuthFilter.java
...a/com/liquidnet/support/zuul/filter/GlobalAuthFilter.java
+2
-5
No files found.
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/core/JwtValidator.java
View file @
0c68a2fb
...
...
@@ -18,6 +18,7 @@ import java.util.Map;
@ConfigurationProperties
(
prefix
=
"jwt"
)
public
class
JwtValidator
{
private
String
ssoRedisKey
=
"adam:identity:sso:"
;
private
String
msoRedisKey
=
"adam:identity:mso:"
;
private
String
secret
;
// 分钟
private
Long
expireTtl
;
...
...
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/CurrentUtil.java
View file @
0c68a2fb
...
...
@@ -10,14 +10,19 @@ public class CurrentUtil {
public
static
final
String
GRAY_LOGIN_SMS_CODE
=
"111111"
;
/* ======================================================= | */
public
static
final
String
uID
=
"sub"
;
public
static
final
String
uTag
=
"u-tag"
;
public
static
final
String
uToken
=
"authorization"
;
public
static
final
String
uTag
=
"u-tag"
;
public
static
final
String
TOKEN_SUB
=
"sub"
;
public
static
final
String
TOKEN_MOBILE
=
"mobile"
;
public
static
final
String
TOKEN_NICKNAME
=
"nickname"
;
public
static
final
String
TOKEN_TYPE
=
"type"
;
public
static
final
String
TOKEN_TYPE_VAL_USER
=
"user"
;
public
static
final
String
TOKEN_TYPE_VAL_STATION
=
"station"
;
public
static
final
String
CLI_SOURCE
=
"source"
;
public
static
final
String
CLI_VERSION
=
"version"
;
public
static
final
String
CLI_UNKNOWN
=
"unknown"
;
public
static
final
String
HEADER_
CLI_SOURCE
=
"source"
;
public
static
final
String
HEADER_
CLI_VERSION
=
"version"
;
public
static
final
String
HEADER_
CLI_UNKNOWN
=
"unknown"
;
private
static
final
String
IP_UTILS_FLAG
=
","
;
private
static
final
String
LOCALHOST_IP
=
"0:0:0:0:0:0:0:1"
;
...
...
@@ -32,33 +37,33 @@ public class CurrentUtil {
}
public
static
String
getCurrentUid
()
{
return
(
String
)
ServletUtils
.
getRequest
().
getAttribute
(
uID
);
return
(
String
)
ServletUtils
.
getRequest
().
getAttribute
(
TOKEN_SUB
);
}
public
static
String
getCliSource
()
{
return
ServletUtils
.
getRequest
().
getHeader
(
CLI_SOURCE
);
public
static
String
get
Header
CliSource
()
{
return
ServletUtils
.
getRequest
().
getHeader
(
HEADER_
CLI_SOURCE
);
}
public
static
String
getCliVersion
()
{
return
ServletUtils
.
getRequest
().
getHeader
(
CLI_VERSION
);
public
static
String
get
Header
CliVersion
()
{
return
ServletUtils
.
getRequest
().
getHeader
(
HEADER_
CLI_VERSION
);
}
public
static
String
getCliIpAddr
()
{
HttpServletRequest
request
=
ServletUtils
.
getRequest
();
String
ip
=
request
.
getHeader
(
"x-forwarded-for"
);
if
(
ip
==
null
||
ip
.
length
()
==
0
||
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
HEADER_
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
HEADER_
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"X-Forwarded-For"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
HEADER_
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
HEADER_
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"X-Real-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
if
(
ip
==
null
||
ip
.
length
()
==
0
||
HEADER_
CLI_UNKNOWN
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
// if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) {
// // 根据网卡取本机配置的IP
...
...
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/SqlMapping.java
View file @
0c68a2fb
package
com
.
liquidnet
.
service
.
base
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
java.io.IOException
;
...
...
@@ -88,9 +89,9 @@ public class SqlMapping {
/* ---------------------- ---------------------- ---------------------- */
public
static
String
get
(
String
sqlKey
,
Object
...
params
)
{
LinkedList
<
String
>
sqls
=
new
LinkedList
<>
();
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
sqls
.
add
((
String
)
sqlsProperties
.
get
(
sqlKey
));
LinkedList
<
Object
[]>
paramsList
=
new
LinkedList
<>
();
LinkedList
<
Object
[]>
paramsList
=
CollectionUtil
.
linkedListObjectArr
();
paramsList
.
add
(
params
);
LinkedList
<
Object
[]>[]
args
=
new
LinkedList
[]{
paramsList
};
...
...
@@ -101,7 +102,7 @@ public class SqlMapping {
}
public
static
String
get
(
String
sqlKey
,
LinkedList
<
Object
[]>
paramsList
)
{
LinkedList
<
String
>
sqls
=
new
LinkedList
<>
();
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
sqls
.
add
((
String
)
sqlsProperties
.
get
(
sqlKey
));
LinkedList
<
Object
[]>[]
args
=
new
LinkedList
[]{
paramsList
};
...
...
liquidnet-bus-common/liquidnet-common-web/src/main/java/com/liquidnet/common/web/filter/GlobalAuthorityInterceptor.java
View file @
0c68a2fb
...
...
@@ -11,7 +11,6 @@ import io.jsonwebtoken.ExpiredJwtException;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.MDC
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.core.env.Environment
;
...
...
@@ -39,10 +38,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
private
static
final
String
TOKEN_KICK
=
"40002"
;
private
static
final
String
TOKEN_INVALID
=
"40003"
;
private
static
final
String
ENV_PROD
=
"prod"
;
private
static
final
String
ENV_ACTIVE
=
"spring.profiles.active"
;
private
static
final
String
KYLIN_STATION_JWT_VALID
=
"/*/station/**"
;
// private static final String KYLIN_STATION_JWT_VALID = "/*/station/**";
private
final
static
AntPathMatcher
antPathMatcher
=
new
AntPathMatcher
();
...
...
@@ -58,16 +54,17 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
String
authorization
=
request
.
getHeader
(
CurrentUtil
.
uToken
),
uri
=
request
.
getRequestURI
(),
responseCode
=
null
,
token
=
null
,
currentUid
=
null
;
Claims
claims
=
null
;
if
(
StringUtils
.
isNotBlank
(
authorization
)
&&
StringUtils
.
length
(
authorization
)
>
7
)
{
token
=
authorization
.
substring
(
7
);
try
{
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims
claims
=
jwtValidator
.
parse
(
token
);
claims
=
jwtValidator
.
parse
(
token
);
currentUid
=
(
String
)
claims
.
get
(
CurrentUtil
.
uID
);
currentUid
=
(
String
)
claims
.
get
(
CurrentUtil
.
TOKEN_SUB
);
request
.
setAttribute
(
CurrentUtil
.
uToken
,
token
);
request
.
setAttribute
(
CurrentUtil
.
uID
,
currentUid
);
request
.
setAttribute
(
CurrentUtil
.
TOKEN_SUB
,
currentUid
);
request
.
setAttribute
(
CurrentUtil
.
uTag
,
JsonUtils
.
toJson
(
claims
));
}
catch
(
ExpiredJwtException
expiredJwtEx
)
{
...
...
@@ -95,7 +92,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
this
.
responseHandler
(
response
,
TOKEN_ILLEGAL
);
return
false
;
}
if
(
this
.
authorityHandler
(
response
,
uri
,
token
,
currentUid
))
{
if
(
this
.
authorityHandler
(
response
,
uri
,
token
,
currentUid
,
claims
))
{
return
true
;
}
return
false
;
...
...
@@ -109,18 +106,60 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
response
.
getWriter
().
write
(
JsonUtils
.
toJson
(
responseDto
));
}
private
boolean
authorityHandler
(
HttpServletResponse
response
,
String
uri
,
String
token
,
String
currentUid
)
throws
IOException
{
if
(
antPathMatcher
.
match
(
KYLIN_STATION_JWT_VALID
,
uri
))
{
// 专业版APP
// adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线}
// String ssoUidM5TokenKey = jwtValidator.get
S
soRedisKey()
// .concat(
uid).concat(":").concat(DigestUtils.md5DigestAsHex(uT
oken.getBytes(StandardCharsets.UTF_8)));
private
boolean
authorityHandler
(
HttpServletResponse
response
,
String
uri
,
String
token
,
String
currentUid
,
Claims
claims
)
throws
IOException
{
//
if (antPathMatcher.match(KYLIN_STATION_JWT_VALID, uri)) {// 专业版APP
//
// adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线}
// String ssoUidM5TokenKey = jwtValidator.get
M
soRedisKey()
// .concat(
currentUid).concat(":").concat(DigestUtils.md5DigestAsHex(t
oken.getBytes(StandardCharsets.UTF_8)));
// Integer online = (Integer) redisUtil.get(ssoUidM5TokenKey);
// if (null == online || online != 1) {
// this.respHandler(ctx, TOKEN_INVALID);
// // 已离线
// this.responseHandler(response, TOKEN_INVALID);
//
// return false;
// } else {
return
true
;
// return true;
// }
// } else {
// // adam:identity:sso:${uid}=MD5(${token})
// String ssoKey = jwtValidator.getSsoRedisKey().concat(currentUid), md5Token;
//
// if (StringUtils.isEmpty(md5Token = (String) redisUtil.get(ssoKey))) {
// // 已离线
// this.responseHandler(response, TOKEN_INVALID);
//
// return false;
// } else {
// // 与在线TOKEN比对
// if (md5Token.equals(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)))) {
// // 一致则放行
// return true;
// } else {
// // 不一致则被踢下线
// this.responseHandler(response, TOKEN_KICK);
//
// return false;
// }
// }
// }
String
tokenType
=
(
String
)
claims
.
get
(
CurrentUtil
.
TOKEN_TYPE
);
switch
(
tokenType
)
{
case
CurrentUtil
.
TOKEN_TYPE_VAL_STATION
:
// 专业版APP
// adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线}
String
ssoUidM5TokenKey
=
jwtValidator
.
getMsoRedisKey
()
.
concat
(
currentUid
).
concat
(
":"
).
concat
(
DigestUtils
.
md5DigestAsHex
(
token
.
getBytes
(
StandardCharsets
.
UTF_8
)));
Integer
online
=
(
Integer
)
redisUtil
.
get
(
ssoUidM5TokenKey
);
if
(
null
==
online
||
online
!=
1
)
{
// 已离线
this
.
responseHandler
(
response
,
TOKEN_INVALID
);
return
false
;
}
else
{
return
true
;
}
case
CurrentUtil
.
TOKEN_TYPE_VAL_USER
:
// adam:identity:sso:${uid}=MD5(${token})
String
ssoKey
=
jwtValidator
.
getSsoRedisKey
().
concat
(
currentUid
),
md5Token
;
...
...
@@ -141,6 +180,10 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
return
false
;
}
}
default
:
log
.
warn
(
"Authority failed:{} (Unknown token type).uri:[{}],token:{}"
,
TOKEN_ILLEGAL
,
uri
,
token
);
this
.
responseHandler
(
response
,
TOKEN_ILLEGAL
);
return
false
;
}
}
}
liquidnet-bus-common/liquidnet-common-web/src/main/java/com/liquidnet/common/web/filter/GlobalLogTrackInterceptor.java
View file @
0c68a2fb
package
com
.
liquidnet
.
common
.
web
.
filter
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.MDC
;
import
org.springframework.stereotype.Component
;
...
...
@@ -10,7 +9,6 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
@Slf4j
@Data
@Component
public
class
GlobalLogTrackInterceptor
extends
HandlerInterceptorAdapter
{
private
static
final
String
LNS_TRANCE_ID
=
"lnsTranceId"
;
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamLoginController.java
View file @
0c68a2fb
...
...
@@ -442,10 +442,10 @@ public class AdamLoginController {
private
String
ssoProcess
(
AdamUserInfoVo
userInfoVo
)
{
Map
<
String
,
Object
>
claimsMap
=
CollectionUtil
.
mapStringObject
();
claimsMap
.
put
(
"sub"
,
userInfoVo
.
getUid
());
claimsMap
.
put
(
"mobile"
,
userInfoVo
.
getMobile
());
claimsMap
.
put
(
"nickname"
,
userInfoVo
.
getNickname
());
claimsMap
.
put
(
"type"
,
"user"
);
claimsMap
.
put
(
CurrentUtil
.
TOKEN_SUB
,
userInfoVo
.
getUid
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_MOBILE
,
userInfoVo
.
getMobile
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_NICKNAME
,
userInfoVo
.
getNickname
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_TYPE
,
CurrentUtil
.
TOKEN_TYPE_VAL_USER
);
String
token
=
jwtValidator
.
create
(
claimsMap
);
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamMemberOrderServiceImpl.java
View file @
0c68a2fb
...
...
@@ -132,8 +132,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderVo
.
setUid
(
CurrentUtil
.
getCurrentUid
());
memberOrderVo
.
setPrice
(
param
.
getPrice
());
memberOrderVo
.
setClientIp
(
clientIp
);
memberOrderVo
.
setVersion
(
CurrentUtil
.
getCliVersion
());
memberOrderVo
.
setSource
(
CurrentUtil
.
getCliSource
());
String
headerCliVersion
=
CurrentUtil
.
getHeaderCliVersion
();
String
headerCliSource
=
CurrentUtil
.
getHeaderCliSource
();
memberOrderVo
.
setSource
(
null
==
headerCliSource
?
""
:
headerCliSource
);
memberOrderVo
.
setVersion
(
null
==
headerCliVersion
?
""
:
headerCliVersion
);
if
(!
adamRdmService
.
setShotMemberOrderVoByOrderNo
(
orderNo
,
memberOrderVo
))
{
log
.
warn
(
"###购买会员创建订单失败[memberOrderVo:{}]"
,
JsonUtils
.
toJson
(
memberOrderVo
));
...
...
@@ -347,8 +349,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderVo
.
setPaymentAt
(
now
);
initMemberOrderVo
.
setCreatedAt
(
now
);
initMemberOrderVo
.
setClientIp
(
CurrentUtil
.
getCliIpAddr
());
initMemberOrderVo
.
setSource
(
CurrentUtil
.
getCliSource
());
initMemberOrderVo
.
setVersion
(
CurrentUtil
.
getCliVersion
());
String
headerCliVersion
=
CurrentUtil
.
getHeaderCliVersion
();
String
headerCliSource
=
CurrentUtil
.
getHeaderCliSource
();
initMemberOrderVo
.
setSource
(
null
==
headerCliSource
?
""
:
headerCliSource
);
initMemberOrderVo
.
setVersion
(
null
==
headerCliVersion
?
""
:
headerCliVersion
);
LinkedList
<
String
>
toMqSqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
updateMemberCodeObjs
=
CollectionUtil
.
linkedListObjectArr
(),
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinStationController.java
View file @
0c68a2fb
package
com
.
liquidnet
.
service
.
kylin
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.constant.LnsEnum
;
import
com.liquidnet.commons.lang.constant.LnsRegex
;
import
com.liquidnet.commons.lang.core.JwtValidator
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam
;
import
com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam
;
...
...
@@ -17,6 +17,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.*;
import
com.liquidnet.service.kylin.dto.vo.returns.*
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
com.liquidnet.service.kylin.utils.ObjectUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -124,13 +125,14 @@ public class KylinStationController {
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"pageSize"
,
value
=
"页记录数"
,
example
=
"5"
),
})
@GetMapping
(
"performances"
)
public
ResponseDto
<
Page
Info
<
KylinStationPerformanceVo
>>
performances
(
@Pattern
(
regexp
=
"\\b(recent|over)\\b"
,
message
=
"模块参数无效"
)
public
ResponseDto
<
Page
dResult
<
KylinStationPerformanceVo
>>
performances
(
@Pattern
(
regexp
=
"\\b(recent|over)\\b"
,
message
=
"模块参数无效"
)
@RequestParam
String
mod
,
@RequestParam
(
required
=
false
)
String
match
,
@RequestParam
(
defaultValue
=
"1"
,
required
=
false
)
int
pageNo
,
@RequestParam
(
defaultValue
=
"5"
,
required
=
false
)
int
pageSize
)
{
List
<
KylinStationPerformanceVo
>
voList
=
new
ArrayList
<>
();
List
<
KylinStationPerformanceVo
>
voList
=
ObjectUtil
.
getKylinStationPerformanceVoArrayList
();
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
PagedResult
<
KylinStationPerformanceVo
>
pagedResult
=
ObjectUtil
.
getKylinStationPerformanceVoPagedResult
();
long
count
=
0
;
try
{
// 查取当前用户下关联演出ID列表
...
...
@@ -159,7 +161,7 @@ public class KylinStationController {
break
;
default
:
log
.
info
(
":::performances/default:{}"
,
currentUid
);
return
ResponseDto
.
success
(
new
PageInfo
<>()
);
return
ResponseDto
.
success
(
pagedResult
);
}
if
(
StringUtils
.
isNotBlank
(
match
))
{
java
.
util
.
regex
.
Pattern
pattern
=
...
...
@@ -173,7 +175,7 @@ public class KylinStationController {
Query
performancesVoQuery
=
Query
.
query
(
criteria
);
count
=
mongoTemplate
.
count
(
performancesVoQuery
,
KylinPerformanceVo
.
class
.
getSimpleName
());
if
(
count
<=
0
)
return
ResponseDto
.
success
(
new
PageInfo
<>()
);
if
(
count
<=
0
)
return
ResponseDto
.
success
(
pagedResult
);
performancesVoQuery
.
with
(
PageRequest
.
of
(
pageNo
-
1
,
pageSize
));
performancesVoQuery
.
with
(
Sort
.
by
(
Sort
.
Order
.
asc
(
"timeEnd"
),
Sort
.
Order
.
desc
(
"sort"
)));
...
...
@@ -188,16 +190,6 @@ public class KylinStationController {
// 转换订单票明细结构为Map<performanceId, List<KylinOrderTicketEntitiesVo>>
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
oteVoMap
=
oteVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getPerformanceId
));
// // 查取订单对应票种
// Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
// oteVoList.stream().filter(distinctByKey(KylinOrderTicketEntitiesVo::getTicketId)).map(KylinOrderTicketEntitiesVo::getTicketId).toArray()
// ));
// List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinPerformanceVo.class.getSimpleName());
// log.debug("performanceTicketVoList:{}", JsonUtils.toJson(performanceTicketVoList));
// // 转换票种信息结构为Map<ticketsId, ticketVo>
// Map<String, KylinTicketVo> performanceTicketMap = performanceTicketVoList.stream().collect(Collectors.toMap(KylinTicketVo::getTicketsId, Function.identity(), (k1, k2) -> k2));
// log.debug("performanceTicketMap:{}", JsonUtils.toJson(performanceTicketMap));
// 转换Map<performanceId, canDownTime>
Map
<
String
,
String
>
performanceRelationMap
=
performanceRelationList
.
stream
().
collect
(
Collectors
.
toMap
(
CheckPerformanceRelationParam:
:
getPerformanceId
,
CheckPerformanceRelationParam:
:
getCanDownTime
));
log
.
debug
(
"performanceRelationMap:{}"
,
JsonUtils
.
toJson
(
performanceRelationMap
));
...
...
@@ -210,7 +202,7 @@ public class KylinStationController {
if
(!
CollectionUtils
.
isEmpty
(
performanceTicketEntitiesVoList
))
{
// 提取演出对应票种信息
List
<
KylinTicketVo
>
performanceTicketVoList
=
new
ArrayList
<>
();
List
<
KylinTicketVo
>
performanceTicketVoList
=
ObjectUtil
.
getKylinTicketVoArrayList
();
List
<
KylinTicketTimesVo
>
ticketTimeList
=
r
.
getTicketTimeList
();
ticketTimeList
.
forEach
(
tt
->
{
performanceTicketVoList
.
addAll
(
tt
.
getTicketList
());
...
...
@@ -223,7 +215,7 @@ public class KylinStationController {
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
performanceTicketEntitiesVoMap
=
performanceTicketEntitiesVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getTicketId
));
List
<
KylinStationTicketVo
>
ticketVoList
=
new
ArrayList
<>
();
List
<
KylinStationTicketVo
>
ticketVoList
=
ObjectUtil
.
getKylinStationTicketVoArrayList
();
BigDecimal
priceSum
=
BigDecimal
.
ZERO
;
int
number
=
0
,
checkedNum
=
0
,
remainderNum
=
0
;
...
...
@@ -272,9 +264,10 @@ public class KylinStationController {
}
catch
(
Exception
e
)
{
log
.
error
(
"验票:查取演出列表异常[station/performances]"
,
e
);
}
PageInfo
<
KylinStationPerformanceVo
>
voPageInfo
=
PageInfo
.
of
(
voList
);
voPageInfo
.
setTotal
(
count
);
return
ResponseDto
.
success
(
voPageInfo
);
pagedResult
.
setList
(
voList
).
setTotal
(
count
,
pageSize
);
return
ResponseDto
.
success
(
pagedResult
);
}
@ApiOperation
(
value
=
"下载验票数据"
)
...
...
@@ -329,19 +322,14 @@ public class KylinStationController {
KylinStationPerformanceVo
performanceVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
KylinStationPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
// // 查取订单对应票种
// Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
// checkOrderVos.stream().filter(distinctByKey(KylinStationCheckOrderVo::getTicketId)).map(KylinStationCheckOrderVo::getTicketId).toArray()
// ));
// List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinTicketVo.class.getSimpleName());
// 提取演出对应票种信息
List
<
KylinTicketVo
>
performanceTicketVoList
=
new
ArrayList
<>
();
List
<
KylinTicketVo
>
performanceTicketVoList
=
ObjectUtil
.
getKylinTicketVoArrayList
();
List
<
KylinTicketTimesVo
>
ticketTimeList
=
performanceVo
.
getTicketTimeList
();
ticketTimeList
.
forEach
(
tt
->
{
performanceTicketVoList
.
addAll
(
tt
.
getTicketList
());
});
List
<
KylinStationTicketVo
>
ticketVoList
=
new
ArrayList
<>
();
List
<
KylinStationTicketVo
>
ticketVoList
=
ObjectUtil
.
getKylinStationTicketVoArrayList
();
for
(
KylinTicketVo
r
:
performanceTicketVoList
)
{
KylinStationTicketVo
stationTicketVo
=
KylinStationTicketVo
.
getNew
();
stationTicketVo
.
setTicketId
(
r
.
getTicketsId
());
...
...
@@ -438,19 +426,14 @@ public class KylinStationController {
KylinStationPerformanceVo
performanceVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
KylinStationPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
// // 查取订单对应票种
// Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
// checkOrderVos.stream().filter(distinctByKey(KylinStationCheckOrderVo::getTicketId)).map(KylinStationCheckOrderVo::getTicketId).toArray()
// ));
// List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinTicketVo.class.getSimpleName());
// 提取演出对应票种信息
List
<
KylinTicketVo
>
performanceTicketVoList
=
new
ArrayList
<>
();
List
<
KylinTicketVo
>
performanceTicketVoList
=
ObjectUtil
.
getKylinTicketVoArrayList
();
List
<
KylinTicketTimesVo
>
ticketTimeList
=
performanceVo
.
getTicketTimeList
();
ticketTimeList
.
forEach
(
tt
->
{
performanceTicketVoList
.
addAll
(
tt
.
getTicketList
());
});
List
<
KylinStationTicketVo
>
ticketVoList
=
new
ArrayList
<>
();
List
<
KylinStationTicketVo
>
ticketVoList
=
ObjectUtil
.
getKylinStationTicketVoArrayList
();
for
(
KylinTicketVo
r
:
performanceTicketVoList
)
{
KylinStationTicketVo
stationTicketVo
=
KylinStationTicketVo
.
getNew
();
stationTicketVo
.
setTicketId
(
r
.
getTicketsId
());
...
...
@@ -488,42 +471,46 @@ public class KylinStationController {
if
(
CurrentUtil
.
GRAY_LOGIN_SMS_CODE
.
equals
(
identity
))
{
return
this
.
loginAuthentication
(
checkUserVo
);
}
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20002"
));
}
try
{
LinkedMultiValueMap
<
String
,
String
>
paramsMap
=
new
LinkedMultiValueMap
<>();
paramsMap
.
add
(
"mobile"
,
mobile
);
paramsMap
.
add
(
"code"
,
identity
);
LinkedMultiValueMap
<
String
,
String
>
headersMap
=
new
LinkedMultiValueMap
<>();
headersMap
.
add
(
"token"
,
null
);
// TODO: 2021/5/12
String
respStr
=
HttpUtil
.
get
(
"https://service.zhengzai.tv/smsValidation"
,
paramsMap
,
headersMap
);
log
.
info
(
"###PHP.API.RESP:{}"
,
respStr
);
Map
respMap
=
JsonUtils
.
fromJson
(
respStr
,
Map
.
class
);
if
(
StringUtils
.
equalsIgnoreCase
(
"OK"
,
(
String
)
respMap
.
get
(
"message"
)))
{
return
this
.
loginAuthentication
(
checkUserVo
);
}
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20002"
));
}
catch
(
Exception
e
)
{
log
.
error
(
"验证码验证异常[mobile:{},code:{}]"
,
mobile
,
identity
,
e
);
// try {
// LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
// paramsMap.add("mobile", mobile);
// paramsMap.add("code", identity);
// LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
// headersMap.add("token", null);
//
// String respStr = HttpUtil.get("https://service.zhengzai.tv/smsValidation", paramsMap, headersMap);
// log.info("###PHP.API.RESP:{}", respStr);
//
// Map respMap = JsonUtils.fromJson(respStr, Map.class);
//
// if (StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
// return this.loginAuthentication(checkUserVo);
// }
// return ResponseDto.failure(ErrorMapping.get("20002"));
// } catch (Exception e) {
// log.error("验证码验证异常[mobile:{},code:{}]", mobile, identity, e);
// return ResponseDto.failure(ErrorMapping.get("20002"));
// }
String
smsCodeByMobile
=
(
String
)
redisUtil
.
get
(
"adam:valid:sms:code:mobile"
+
mobile
);
if
(
null
==
smsCodeByMobile
||
!
smsCodeByMobile
.
equals
(
identity
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20002"
));
}
return
this
.
loginAuthentication
(
checkUserVo
);
}
}
private
ResponseDto
<
KylinStationLoginVo
>
loginAuthentication
(
KylinCheckUserVo
checkUserVo
)
{
Map
<
String
,
Object
>
claimsMap
=
new
HashMap
<>();
claimsMap
.
put
(
"sub"
,
checkUserVo
.
getCheckUserId
());
claimsMap
.
put
(
"mobile"
,
checkUserVo
.
getMobile
());
claimsMap
.
put
(
"nickname"
,
checkUserVo
.
getName
());
Map
<
String
,
Object
>
claimsMap
=
CollectionUtil
.
mapStringObject
();
claimsMap
.
put
(
CurrentUtil
.
TOKEN_SUB
,
checkUserVo
.
getCheckUserId
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_MOBILE
,
checkUserVo
.
getMobile
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_NICKNAME
,
checkUserVo
.
getName
());
claimsMap
.
put
(
CurrentUtil
.
TOKEN_TYPE
,
CurrentUtil
.
TOKEN_TYPE_VAL_STATION
);
String
token
=
jwtValidator
.
create
(
claimsMap
);
String
ssoUidM5TokenKey
=
jwtValidator
.
get
S
soRedisKey
()
String
ssoUidM5TokenKey
=
jwtValidator
.
get
M
soRedisKey
()
.
concat
(
checkUserVo
.
getCheckUserId
())
.
concat
(
":"
).
concat
(
DigestUtils
.
md5DigestAsHex
(
token
.
getBytes
(
StandardCharsets
.
UTF_8
)));
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketEntitiesServiceImpl.java
View file @
0c68a2fb
package
com
.
liquidnet
.
service
.
kylin
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
...
...
@@ -7,6 +8,7 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.kylin.dto.param.KylinStationUploadParam
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService
;
import
com.liquidnet.service.kylin.utils.ObjectUtil
;
import
com.liquidnet.service.kylin.utils.QueueUtils
;
import
com.mongodb.bulk.BulkWriteResult
;
import
com.mongodb.client.model.UpdateOneModel
;
...
...
@@ -55,8 +57,8 @@ public class KylinOrderTicketEntitiesServiceImpl implements IKylinOrderTicketEn
LocalDateTime
nowDt
=
LocalDateTime
.
now
();
String
nowDtStr
=
DateUtil
.
format
(
nowDt
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
LinkedList
<
Object
[]>
paramsList
=
new
LinkedList
<>
();
List
<
WriteModel
<
Document
>>
list
=
new
ArrayList
<>
();
LinkedList
<
Object
[]>
paramsList
=
CollectionUtil
.
linkedListObjectArr
();
List
<
WriteModel
<
Document
>>
list
=
ObjectUtil
.
getWriteModelDocumentArrayList
();
parameter
.
getCheckOrderParamList
().
forEach
(
r
->
{
KylinOrderTicketEntitiesVo
updateVo
=
KylinOrderTicketEntitiesVo
.
getNew
();
updateVo
.
setStatus
(
1
);
// 出票状态: 0未出票 1已出票
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/ObjectUtil.java
0 → 100644
View file @
0c68a2fb
package
com
.
liquidnet
.
service
.
kylin
.
utils
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinStationPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinStationTicketVo
;
import
com.mongodb.client.model.WriteModel
;
import
org.bson.Document
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
ObjectUtil
{
private
static
final
ArrayList
<
KylinStationPerformanceVo
>
kylinStationPerformanceVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
KylinTicketVo
>
kylinTicketVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
KylinStationTicketVo
>
kylinStationTicketVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
WriteModel
<
Document
>>
writeModelDocumentArrayList
=
new
ArrayList
<>();
private
static
final
PagedResult
<
KylinStationPerformanceVo
>
kylinStationPerformanceVoPagedResult
=
new
PagedResult
<>();
public
static
List
<
KylinStationPerformanceVo
>
getKylinStationPerformanceVoArrayList
()
{
return
(
List
<
KylinStationPerformanceVo
>)
kylinStationPerformanceVoArrayList
.
clone
();
}
public
static
List
<
KylinTicketVo
>
getKylinTicketVoArrayList
()
{
return
(
List
<
KylinTicketVo
>)
kylinTicketVoArrayList
.
clone
();
}
public
static
List
<
KylinStationTicketVo
>
getKylinStationTicketVoArrayList
()
{
return
(
List
<
KylinStationTicketVo
>)
kylinStationTicketVoArrayList
.
clone
();
}
public
static
List
<
WriteModel
<
Document
>>
getWriteModelDocumentArrayList
()
{
return
(
List
<
WriteModel
<
Document
>>)
writeModelDocumentArrayList
.
clone
();
}
public
static
PagedResult
<
KylinStationPerformanceVo
>
getKylinStationPerformanceVoPagedResult
()
{
return
kylinStationPerformanceVoPagedResult
.
clone
();
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/resources/errors.properties
View file @
0c68a2fb
...
...
@@ -5,7 +5,7 @@
#APP ERROR
20001
=
验证码发送失败
20002
=
验证码
无效
20002
=
验证码
错误,请重新输入
20003
=
无权查看
20004
=
参数错误
20005
=
手机号获取失败,请更换登录方式
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderTicketsServiceImpl.java
View file @
0c68a2fb
...
...
@@ -328,8 +328,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
private
ResponseDto
<
PayInnerResultVo
>
order
(
PayOrderParam
payOrderParam
,
String
uid
,
boolean
isMember
,
int
isTrueName
,
KylinPerformanceVo
performanceData
,
KylinTicketVo
ticketData
,
List
<
AdamEntersVo
>
entersVoList
,
Integer
isStudent
,
KylinTicketTimesVo
ticketTimesData
,
Long
currentTime
)
{
LinkedList
<
String
>
sqls
=
ObjectUtil
.
cloneLinkedListStr
();
String
source
=
CurrentUtil
.
get
CliSource
()
==
null
?
""
:
CurrentUtil
.
get
CliSource
();
String
version
=
CurrentUtil
.
get
CliVersion
()
==
null
?
""
:
CurrentUtil
.
get
CliVersion
();
String
source
=
CurrentUtil
.
get
HeaderCliSource
()
==
null
?
""
:
CurrentUtil
.
getHeader
CliSource
();
String
version
=
CurrentUtil
.
get
HeaderCliVersion
()
==
null
?
""
:
CurrentUtil
.
getHeader
CliVersion
();
LocalDateTime
now
=
LocalDateTime
.
now
();
//生成订单 order_ticket
KylinOrderTickets
orderTickets
=
KylinOrderTickets
.
getNew
();
...
...
liquidnet-bus-support/liquidnet-support-zuul/src/main/java/com/liquidnet/support/zuul/filter/GlobalAuthFilter.java
View file @
0c68a2fb
...
...
@@ -11,12 +11,9 @@ import com.netflix.zuul.ZuulFilter;
import
com.netflix.zuul.context.RequestContext
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.ExpiredJwtException
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.DigestUtils
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -74,7 +71,7 @@ public class GlobalAuthFilter extends ZuulFilter {
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims
claims
=
jwtValidator
.
parse
(
token
);
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
uID
,
(
String
)
claims
.
get
(
CurrentUtil
.
uID
));
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
TOKEN_SUB
,
(
String
)
claims
.
get
(
CurrentUtil
.
TOKEN_SUB
));
ctx
.
addZuulRequestHeader
(
CurrentUtil
.
uTag
,
JsonUtils
.
toJson
(
claims
));
}
catch
(
ExpiredJwtException
expiredJwtEx
)
{
ctx
.
addZuulRequestHeader
(
TOKEN_STATUS
,
TOKEN_INVALID
);
...
...
@@ -115,7 +112,7 @@ public class GlobalAuthFilter extends ZuulFilter {
log
.
debug
(
"lns.headers:{}"
,
zuulRequestHeaders
);
String
uToken
=
zuulRequestHeaders
.
get
(
CurrentUtil
.
uToken
),
uid
;
if
(
StringUtils
.
isEmpty
(
uToken
)
||
StringUtils
.
isEmpty
(
uid
=
zuulRequestHeaders
.
get
(
CurrentUtil
.
uID
)))
{
if
(
StringUtils
.
isEmpty
(
uToken
)
||
StringUtils
.
isEmpty
(
uid
=
zuulRequestHeaders
.
get
(
CurrentUtil
.
TOKEN_SUB
)))
{
this
.
respHandler
(
ctx
,
zuulRequestHeaders
.
get
(
TOKEN_STATUS
));
return
null
;
...
...
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