记得上下班打卡 | 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
75592fa4
Commit
75592fa4
authored
Jun 01, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
验票API逻辑实现
parent
d3232688
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
250 additions
and
115 deletions
+250
-115
KylinStationCheckOrderParam.java
.../service/kylin/dto/param/KylinStationCheckOrderParam.java
+6
-22
KylinStationCheckOrderVo.java
...uidnet/service/kylin/dto/vo/KylinStationCheckOrderVo.java
+14
-23
KylinStationPerformanceVo.java
...idnet/service/kylin/dto/vo/KylinStationPerformanceVo.java
+2
-2
KylinStationTicketVo.java
.../liquidnet/service/kylin/dto/vo/KylinStationTicketVo.java
+9
-11
IKylinOrderTicketEntitiesService.java
...rvice/kylin/service/IKylinOrderTicketEntitiesService.java
+2
-0
DateUtil.java
...c/main/java/com/liquidnet/commons/lang/util/DateUtil.java
+10
-0
KylinStationController.java
...dnet/service/kylin/controller/KylinStationController.java
+148
-55
KylinOrderTicketEntitiesServiceImpl.java
...lin/service/impl/KylinOrderTicketEntitiesServiceImpl.java
+50
-0
errors.properties
...t-service-kylin-impl/src/main/resources/errors.properties
+7
-1
kylin_order_ticket_entities.properties
...n/resources/sqlmap/kylin_order_ticket_entities.properties
+2
-1
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/KylinStationCheckOrderParam.java
View file @
75592fa4
...
@@ -5,32 +5,16 @@ import io.swagger.annotations.ApiModelProperty;
...
@@ -5,32 +5,16 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
@ApiModel
(
value
=
"KylinStationCheckDataParam"
,
description
=
"上载验票入参"
)
@ApiModel
(
value
=
"KylinStationCheckDataParam"
,
description
=
"上载验票入参"
)
@Data
@Data
public
class
KylinStationCheckOrderParam
implements
Serializable
{
public
class
KylinStationCheckOrderParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2312115659117282564L
;
private
static
final
long
serialVersionUID
=
2312115659117282564L
;
@ApiModelProperty
(
position
=
1
0
,
value
=
"演出ID[64]"
)
@ApiModelProperty
(
position
=
1
1
,
value
=
"演出ID[64]"
)
private
String
performanceId
;
private
String
performanceId
;
@ApiModelProperty
(
position
=
11
,
value
=
"订单号"
)
@ApiModelProperty
(
position
=
13
,
value
=
"出票端:(验票app)android/ios"
)
private
String
orderCode
;
private
String
checkClient
;
@ApiModelProperty
(
position
=
12
,
value
=
"二维码地址"
)
@ApiModelProperty
(
position
=
14
,
value
=
"出票`orderTicketEntitiesId`列表"
)
private
String
qrCode
;
private
List
<
String
>
checkedEntitiesIdList
;
@ApiModelProperty
(
position
=
13
,
value
=
"付款张数"
)
private
Integer
number
;
@ApiModelProperty
(
position
=
14
,
value
=
"退款张数"
)
private
Integer
refundNumber
;
@ApiModelProperty
(
position
=
16
,
value
=
"订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款"
)
private
Integer
status
;
@ApiModelProperty
(
position
=
17
,
value
=
"支付状态:0-未支付,1-已支付,2-支付失败"
)
private
Integer
payStatus
;
@ApiModelProperty
(
position
=
18
,
value
=
"是否学生票[1-是,2-否]"
)
private
Integer
isStudent
;
@ApiModelProperty
(
position
=
19
,
value
=
"购买者是否是会员[0-否,1-是]"
)
private
Integer
isMember
;
@ApiModelProperty
(
position
=
30
,
value
=
"*验票张数"
)
private
Integer
checkedNumber
;
@ApiModelProperty
(
position
=
31
,
value
=
"*是否已同步[0-否,1-是]"
)
private
Integer
synced
;
}
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/KylinStationCheckOrderVo.java
View file @
75592fa4
...
@@ -10,33 +10,24 @@ import java.io.Serializable;
...
@@ -10,33 +10,24 @@ import java.io.Serializable;
@Data
@Data
public
class
KylinStationCheckOrderVo
implements
Serializable
{
public
class
KylinStationCheckOrderVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7450966265904643147L
;
private
static
final
long
serialVersionUID
=
7450966265904643147L
;
@ApiModelProperty
(
position
=
10
,
value
=
"演出ID[64]"
)
@ApiModelProperty
(
position
=
10
,
value
=
"ID[64]"
)
private
String
orderTicketEntitiesId
;
@ApiModelProperty
(
position
=
11
,
value
=
"演出ID[64]"
)
private
String
performanceId
;
private
String
performanceId
;
@ApiModelProperty
(
position
=
11
,
value
=
"订单号"
)
@ApiModelProperty
(
position
=
12
,
value
=
"订单ID"
)
private
String
orderCode
;
private
String
orderId
;
@ApiModelProperty
(
position
=
12
,
value
=
"二维码地址"
)
private
String
qrCode
;
@ApiModelProperty
(
position
=
13
,
value
=
"用户昵称"
)
@ApiModelProperty
(
position
=
13
,
value
=
"用户昵称"
)
private
String
us
erName
;
private
String
ent
erName
;
@ApiModelProperty
(
position
=
14
,
value
=
"用户手机号"
)
@ApiModelProperty
(
position
=
14
,
value
=
"用户手机号"
)
private
String
userMobile
;
private
String
enterMobile
;
@ApiModelProperty
(
position
=
16
,
value
=
"付款张数"
)
@ApiModelProperty
(
position
=
15
,
value
=
"出票状态:0-未出票,1-已出票"
)
private
Integer
number
;
@ApiModelProperty
(
position
=
17
,
value
=
"退款张数"
)
private
Integer
refundNumber
;
@ApiModelProperty
(
position
=
18
,
value
=
"订单状态:0-待付款,1-已付款,2-已关闭,3-正在退款,4-已退款,5-待关闭,6-部分退款"
)
private
Integer
status
;
private
Integer
status
;
@ApiModelProperty
(
position
=
19
,
value
=
"支付状态:0-未支付,1-已支付,2-支付失败"
)
@ApiModelProperty
(
position
=
16
,
value
=
"支付状态:0-未支付,1-已支付,2-退款中,3-已退款"
)
private
Integer
payStatus
;
private
Integer
isPayment
;
@ApiModelProperty
(
position
=
20
,
value
=
"是否学生票[1-是,2-否]"
)
@ApiModelProperty
(
position
=
17
,
value
=
"出票端:(验票app)android/ios"
)
private
Integer
isStudent
;
private
String
checkClient
;
@ApiModelProperty
(
position
=
21
,
value
=
"购买者是否是会员[0-否,1-是]"
)
@ApiModelProperty
(
position
=
18
,
value
=
"二维身份CODE"
)
private
Integer
isMember
;
private
String
qrCode
;
@ApiModelProperty
(
position
=
30
,
value
=
"*验票张数"
)
private
Integer
checkedNumber
;
@ApiModelProperty
(
position
=
31
,
value
=
"*是否已同步[0-否,1-是]"
)
private
Integer
synced
;
private
static
final
KylinStationCheckOrderVo
obj
=
new
KylinStationCheckOrderVo
();
private
static
final
KylinStationCheckOrderVo
obj
=
new
KylinStationCheckOrderVo
();
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/KylinStationPerformanceVo.java
View file @
75592fa4
...
@@ -12,7 +12,7 @@ import java.util.List;
...
@@ -12,7 +12,7 @@ import java.util.List;
public
class
KylinStationPerformanceVo
implements
Serializable
,
Cloneable
{
public
class
KylinStationPerformanceVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
-
4994363974994478286L
;
private
static
final
long
serialVersionUID
=
-
4994363974994478286L
;
@ApiModelProperty
(
position
=
10
,
value
=
"演出ID[64]"
)
@ApiModelProperty
(
position
=
10
,
value
=
"演出ID[64]"
)
private
String
performanceId
;
private
String
performance
s
Id
;
@ApiModelProperty
(
position
=
11
,
value
=
"类型[101-音乐节,102小型演出(livehouse演出),103巡演]"
)
@ApiModelProperty
(
position
=
11
,
value
=
"类型[101-音乐节,102小型演出(livehouse演出),103巡演]"
)
private
Integer
type
;
private
Integer
type
;
@ApiModelProperty
(
position
=
12
,
value
=
"演出标题[255]"
)
@ApiModelProperty
(
position
=
12
,
value
=
"演出标题[255]"
)
...
@@ -38,7 +38,7 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
...
@@ -38,7 +38,7 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
public
KylinStationPerformanceVo
copy
(
KylinPerformanceVo
source
)
{
public
KylinStationPerformanceVo
copy
(
KylinPerformanceVo
source
)
{
if
(
null
==
source
)
return
this
;
if
(
null
==
source
)
return
this
;
this
.
performanceId
=
source
.
getPerformancesId
();
this
.
performance
s
Id
=
source
.
getPerformancesId
();
this
.
type
=
source
.
getType
();
this
.
type
=
source
.
getType
();
this
.
title
=
source
.
getTitle
();
this
.
title
=
source
.
getTitle
();
this
.
timeStart
=
source
.
getTimeStart
();
this
.
timeStart
=
source
.
getTimeStart
();
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/KylinStationTicketVo.java
View file @
75592fa4
...
@@ -12,24 +12,22 @@ import java.math.BigDecimal;
...
@@ -12,24 +12,22 @@ import java.math.BigDecimal;
public
class
KylinStationTicketVo
implements
Serializable
,
Cloneable
{
public
class
KylinStationTicketVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1303234075649915021L
;
private
static
final
long
serialVersionUID
=
1303234075649915021L
;
@ApiModelProperty
(
position
=
10
,
value
=
"票种ID[64]"
)
@ApiModelProperty
(
position
=
10
,
value
=
"票种ID[64]"
)
private
String
ticketsId
;
private
String
ticketId
;
@ApiModelProperty
(
position
=
11
,
value
=
"类型[1-单日票,2-通票]"
)
@ApiModelProperty
(
position
=
11
,
value
=
"名称[32]"
)
private
String
type
;
@ApiModelProperty
(
position
=
12
,
value
=
"名称[32]"
)
private
String
title
;
private
String
title
;
@ApiModelProperty
(
position
=
1
3
,
value
=
"单价(8,2)"
)
@ApiModelProperty
(
position
=
1
2
,
value
=
"单价(8,2)"
)
private
BigDecimal
price
;
private
BigDecimal
price
;
@ApiModelProperty
(
position
=
1
4
,
value
=
"适用开始时间"
)
@ApiModelProperty
(
position
=
1
3
,
value
=
"适用开始时间"
)
private
String
useStart
;
private
String
useStart
;
@ApiModelProperty
(
position
=
1
5
,
value
=
"适用结束时间"
)
@ApiModelProperty
(
position
=
1
4
,
value
=
"适用结束时间"
)
private
String
useEnd
;
private
String
useEnd
;
@ApiModelProperty
(
position
=
1
6
,
value
=
"票房"
)
@ApiModelProperty
(
position
=
1
5
,
value
=
"票房"
)
private
BigDecimal
priceSum
;
private
BigDecimal
priceSum
;
@ApiModelProperty
(
position
=
1
7
,
value
=
"票量[9]"
)
@ApiModelProperty
(
position
=
1
6
,
value
=
"票量[9]"
)
private
Integer
number
;
private
Integer
number
;
@ApiModelProperty
(
position
=
1
8
,
value
=
"已验票量[9]"
)
@ApiModelProperty
(
position
=
1
7
,
value
=
"已验票量[9]"
)
private
Integer
checkedNum
;
private
Integer
checkedNum
;
@ApiModelProperty
(
position
=
1
9
,
value
=
"余量[9]"
)
@ApiModelProperty
(
position
=
1
8
,
value
=
"余量[9]"
)
private
Integer
remainderNum
;
private
Integer
remainderNum
;
private
static
final
KylinStationTicketVo
obj
=
new
KylinStationTicketVo
();
private
static
final
KylinStationTicketVo
obj
=
new
KylinStationTicketVo
();
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IKylinOrderTicketEntitiesService.java
View file @
75592fa4
package
com
.
liquidnet
.
service
.
kylin
.
service
;
package
com
.
liquidnet
.
service
.
kylin
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
/**
/**
...
@@ -13,4 +14,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
...
@@ -13,4 +14,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
*/
*/
public
interface
IKylinOrderTicketEntitiesService
extends
IService
<
KylinOrderTicketEntities
>
{
public
interface
IKylinOrderTicketEntitiesService
extends
IService
<
KylinOrderTicketEntities
>
{
void
updateByStation
(
KylinStationCheckOrderParam
checkDataParam
);
}
}
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/DateUtil.java
View file @
75592fa4
...
@@ -61,9 +61,19 @@ public abstract class DateUtil {
...
@@ -61,9 +61,19 @@ public abstract class DateUtil {
}
}
public
String
format
(
LocalDate
localDate
)
{
public
String
format
(
LocalDate
localDate
)
{
if
(
localDate
==
null
)
{
return
null
;
}
return
formatter
.
format
(
localDate
);
return
formatter
.
format
(
localDate
);
}
}
public
LocalDateTime
parse
(
String
str
)
{
if
(
null
==
str
||
str
.
trim
().
length
()
<=
0
)
{
return
null
;
}
return
LocalDateTime
.
parse
(
str
,
formatter
);
}
}
}
/**
/**
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinStationController.java
View file @
75592fa4
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller;
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.core.JwtValidator
;
import
com.liquidnet.commons.lang.core.JwtValidator
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ErrorMapping
;
...
@@ -10,8 +11,7 @@ import com.liquidnet.service.base.ResponseDto;
...
@@ -10,8 +11,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam
;
import
com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam
;
import
com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam
;
import
com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam
;
import
com.liquidnet.service.kylin.dto.vo.*
;
import
com.liquidnet.service.kylin.dto.vo.*
;
import
com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService
;
import
com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
...
@@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.env.Environment
;
import
org.springframework.core.env.Environment
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
...
@@ -31,7 +32,14 @@ import org.springframework.web.bind.annotation.*;
...
@@ -31,7 +32,14 @@ import org.springframework.web.bind.annotation.*;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.function.Function
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
@Api
(
tags
=
"验票"
)
@Api
(
tags
=
"验票"
)
@Slf4j
@Slf4j
...
@@ -48,11 +56,13 @@ public class KylinStationController {
...
@@ -48,11 +56,13 @@ public class KylinStationController {
RedisUtil
redisUtil
;
RedisUtil
redisUtil
;
@Autowired
@Autowired
DataUtils
dataUtils
;
DataUtils
dataUtils
;
@Autowired
IKylinOrderTicketEntitiesService
kylinOrderTicketEntitiesService
;
@ApiOperation
(
value
=
"手机号密码登录"
)
@ApiOperation
(
value
=
"手机号密码登录"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"mobile"
,
value
=
"手机号"
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"mobile"
,
value
=
"手机号"
,
example
=
"11122233344"
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"passwd"
,
value
=
"密码"
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"passwd"
,
value
=
"密码"
,
example
=
"123456"
),
})
})
@PostMapping
(
"login"
)
@PostMapping
(
"login"
)
public
ResponseDto
<
String
>
login
(
@RequestParam
String
mobile
,
@RequestParam
String
passwd
)
{
public
ResponseDto
<
String
>
login
(
@RequestParam
String
mobile
,
@RequestParam
String
passwd
)
{
...
@@ -63,8 +73,8 @@ public class KylinStationController {
...
@@ -63,8 +73,8 @@ public class KylinStationController {
@ApiOperation
(
value
=
"手机号验证码登录"
)
@ApiOperation
(
value
=
"手机号验证码登录"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"body"
,
required
=
true
,
dataType
=
"String"
,
name
=
"mobile"
,
value
=
"手机号"
),
@ApiImplicitParam
(
type
=
"body"
,
required
=
true
,
dataType
=
"String"
,
name
=
"mobile"
,
value
=
"手机号"
,
example
=
"11122233344"
),
@ApiImplicitParam
(
type
=
"body"
,
required
=
true
,
dataType
=
"String"
,
name
=
"code"
,
value
=
"验证码"
),
@ApiImplicitParam
(
type
=
"body"
,
required
=
true
,
dataType
=
"String"
,
name
=
"code"
,
value
=
"验证码"
,
example
=
"111111"
),
})
})
@PostMapping
(
"login/sms"
)
@PostMapping
(
"login/sms"
)
public
ResponseDto
<
String
>
loginBySms
(
@RequestParam
String
mobile
,
@RequestParam
String
code
)
{
public
ResponseDto
<
String
>
loginBySms
(
@RequestParam
String
mobile
,
@RequestParam
String
code
)
{
...
@@ -100,53 +110,99 @@ public class KylinStationController {
...
@@ -100,53 +110,99 @@ public class KylinStationController {
@GetMapping
(
"performances/{mod}"
)
@GetMapping
(
"performances/{mod}"
)
public
ResponseDto
<
List
<
KylinStationPerformanceVo
>>
performances
(
@PathVariable
String
mod
)
{
public
ResponseDto
<
List
<
KylinStationPerformanceVo
>>
performances
(
@PathVariable
String
mod
)
{
List
<
KylinStationPerformanceVo
>
voList
=
new
ArrayList
<>();
List
<
KylinStationPerformanceVo
>
voList
=
new
ArrayList
<>();
log
.
info
(
"mod:{}"
,
mod
);
String
currentUid
=
CurrentUtil
.
getCurrentUid
(
);
try
{
switch
(
mod
)
{
switch
(
mod
)
{
case
"recent"
:
case
"recent"
:
KylinCheckUserPerformanceVo
checkUserRelationVo
=
dataUtils
.
getCheckUserRelationVo
(
CurrentUtil
.
getCurrentUid
());
log
.
info
(
":::performances/recent:{}"
,
currentUid
);
// 查取当前用户下关联演出ID列表
KylinCheckUserPerformanceVo
checkUserRelationVo
=
dataUtils
.
getCheckUserRelationVo
(
currentUid
);
if
(
null
!=
checkUserRelationVo
)
{
if
(
null
!=
checkUserRelationVo
)
{
List
<
CheckPerformanceRelationParam
>
relationParams
=
checkUserRelationVo
.
getRelationParams
();
List
<
CheckPerformanceRelationParam
>
performanceRelationList
=
checkUserRelationVo
.
getRelationParams
();
if
(!
CollectionUtils
.
isEmpty
(
performanceRelationList
))
{
if
(!
CollectionUtils
.
isEmpty
(
relationParams
))
{
LocalDateTime
tmpDt
=
LocalDateTime
.
of
(
LocalDate
.
now
(),
LocalTime
.
of
(
0
,
0
,
0
,
0
));
String
tmpDtStr
=
DateUtil
.
format
(
tmpDt
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
relationParams
.
forEach
(
r
->
{
KylinPerformanceVo
performanceVo
=
dataUtils
.
getPerformanceVo
(
r
.
getPerformanceId
());
// 转换Map<performanceId, canDownTime>
Map
<
String
,
String
>
performanceRelationMap
=
performanceRelationList
.
stream
().
collect
(
Collectors
.
toMap
(
CheckPerformanceRelationParam:
:
getPerformanceId
,
CheckPerformanceRelationParam:
:
getCanDownTime
));
KylinStationPerformanceVo
vo
=
KylinStationPerformanceVo
.
getNew
().
copy
(
performanceVo
);
// 查取指定条件的演出列表
vo
.
setCanDownTime
(
r
.
getCanDownTime
());
Query
performancesVoQuery
=
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
in
(
performanceRelationList
.
stream
().
map
(
CheckPerformanceRelationParam:
:
getPerformanceId
).
toArray
()
// TODO: 2021/5/30 票种数据统计
).
and
(
"timeEnd"
).
gt
(
tmpDtStr
));
KylinStationTicketVo
ticketVo
=
KylinStationTicketVo
.
getNew
();
performancesVoQuery
.
with
(
Sort
.
by
(
Sort
.
Order
.
asc
(
"timeEnd"
),
Sort
.
Order
.
desc
(
"sort"
)));
ticketVo
.
setTicketsId
(
"1"
);
voList
=
mongoTemplate
.
find
(
performancesVoQuery
,
KylinStationPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
ticketVo
.
setType
(
"1"
);
ticketVo
.
setTitle
(
"测试数据"
);
// 查取演出对应的订单票明细
ticketVo
.
setPrice
(
BigDecimal
.
TEN
);
Query
orderTicketEntitiesVoQuery
=
Query
.
query
(
Criteria
.
where
(
"performanceId"
).
in
(
ticketVo
.
setUseStart
(
"2021-05-30"
);
voList
.
stream
().
map
(
KylinStationPerformanceVo:
:
getPerformancesId
).
toArray
()
ticketVo
.
setUseEnd
(
"2021-06-02"
);
).
and
(
"isPayment"
).
is
(
1
));
ticketVo
.
setNumber
(
100
);
List
<
KylinOrderTicketEntitiesVo
>
oteVoList
=
mongoTemplate
.
find
(
orderTicketEntitiesVoQuery
,
KylinOrderTicketEntitiesVo
.
class
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
ticketVo
.
setPriceSum
(
ticketVo
.
getPrice
().
multiply
(
BigDecimal
.
valueOf
(
ticketVo
.
getNumber
())));
// 转换订单票明细结构为Map<performanceId, List<KylinOrderTicketEntitiesVo>>
ticketVo
.
setCheckedNum
(
0
);
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
oteVoMap
=
oteVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getPerformanceId
));
ticketVo
.
setRemainderNum
(
ticketVo
.
getNumber
()
-
ticketVo
.
getCheckedNum
());
// 查取订单对应票种
vo
.
setTicketVoList
(
Arrays
.
asList
(
ticketVo
,
ticketVo
));
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
,
KylinTicketVo
.
class
.
getSimpleName
());
// 转换票种信息结构为Map<ticketsId, ticketVo>
Map
<
String
,
KylinTicketVo
>
performanceTicketMap
=
performanceTicketVoList
.
stream
().
collect
(
Collectors
.
toMap
(
KylinTicketVo:
:
getTicketsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k2
));
// 补充演出列表票种统计
voList
.
forEach
(
r
->
{
// 演出的所有订单票明细
List
<
KylinOrderTicketEntitiesVo
>
performanceTicketEntitiesVoList
=
oteVoMap
.
get
(
r
.
getPerformancesId
());
// 订单票明细按票种分组
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
performanceTicketEntitiesVoMap
=
performanceTicketEntitiesVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getTicketId
));
List
<
KylinStationTicketVo
>
ticketVoList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
entry
:
performanceTicketEntitiesVoMap
.
entrySet
())
{
KylinTicketVo
ticketVo
=
performanceTicketMap
.
get
(
entry
.
getKey
());
KylinStationTicketVo
stationTicketVo
=
KylinStationTicketVo
.
getNew
();
stationTicketVo
.
setTicketId
(
ticketVo
.
getTicketsId
());
stationTicketVo
.
setTitle
(
ticketVo
.
getTitle
());
stationTicketVo
.
setPrice
(
ticketVo
.
getPrice
());
stationTicketVo
.
setUseStart
(
ticketVo
.
getUseStart
());
stationTicketVo
.
setUseEnd
(
ticketVo
.
getUseEnd
());
List
<
KylinOrderTicketEntitiesVo
>
subPerformanceTicketEntitiesVoList
=
entry
.
getValue
();
// 订单票明细按出票状态分组
Map
<
Integer
,
List
<
KylinOrderTicketEntitiesVo
>>
subStatusPerformanceTicketEntitiesVoMap
=
subPerformanceTicketEntitiesVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getStatus
));
stationTicketVo
.
setNumber
(
subPerformanceTicketEntitiesVoList
.
size
());
stationTicketVo
.
setPriceSum
(
stationTicketVo
.
getPrice
().
multiply
(
BigDecimal
.
valueOf
(
stationTicketVo
.
getNumber
())));
List
<
KylinOrderTicketEntitiesVo
>
checkedEntitiesVoList
=
subStatusPerformanceTicketEntitiesVoMap
.
get
(
1
);
stationTicketVo
.
setCheckedNum
(
CollectionUtils
.
isEmpty
(
checkedEntitiesVoList
)
?
0
:
checkedEntitiesVoList
.
size
());
List
<
KylinOrderTicketEntitiesVo
>
remainderEntitiesVoList
=
subStatusPerformanceTicketEntitiesVoMap
.
get
(
0
);
stationTicketVo
.
setRemainderNum
(
CollectionUtils
.
isEmpty
(
remainderEntitiesVoList
)
?
0
:
remainderEntitiesVoList
.
size
());
ticketVoList
.
add
(
stationTicketVo
);
}
voList
.
add
(
vo
);
r
.
setTicketVoList
(
ticketVoList
);
r
.
setCanDownTime
(
performanceRelationMap
.
get
(
r
.
getPerformancesId
()));
});
});
}
}
}
}
break
;
break
;
case
"down"
:
case
"down"
:
log
.
info
(
":::performances/down:{}"
,
currentUid
);
break
;
break
;
case
"over"
:
case
"over"
:
log
.
info
(
":::performances/over:{}"
,
currentUid
);
break
;
break
;
default
:
default
:
log
.
info
(
":::performances/default:{}"
,
currentUid
);
break
;
break
;
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"验票:查取演出列表异常:/station/performances/?"
,
e
);
}
return
ResponseDto
.
success
(
voList
);
return
ResponseDto
.
success
(
voList
);
}
}
...
@@ -159,17 +215,49 @@ public class KylinStationController {
...
@@ -159,17 +215,49 @@ public class KylinStationController {
public
ResponseDto
<
List
<
KylinStationCheckOrderVo
>>
downloadTicketData
(
@PathVariable
String
type
,
@PathVariable
String
performanceId
)
{
public
ResponseDto
<
List
<
KylinStationCheckOrderVo
>>
downloadTicketData
(
@PathVariable
String
type
,
@PathVariable
String
performanceId
)
{
log
.
info
(
"type:{},performanceId:{}"
,
type
,
performanceId
);
log
.
info
(
"type:{},performanceId:{}"
,
type
,
performanceId
);
List
<
KylinStationCheckOrderVo
>
voList
=
new
ArrayList
<>();
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
// 查取当前用户下关联演出ID列表
KylinCheckUserPerformanceVo
checkUserRelationVo
=
dataUtils
.
getCheckUserRelationVo
(
currentUid
);
List
<
CheckPerformanceRelationParam
>
relationParams
;
if
(
null
==
checkUserRelationVo
||
CollectionUtils
.
isEmpty
(
relationParams
=
checkUserRelationVo
.
getRelationParams
()))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20606"
));
}
Optional
<
CheckPerformanceRelationParam
>
optional
=
relationParams
.
stream
().
findFirst
().
filter
(
r
->
r
.
getPerformanceId
().
equals
(
performanceId
));
if
(!
optional
.
isPresent
())
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20607"
));
}
CheckPerformanceRelationParam
relationParam
=
optional
.
get
();
LocalDateTime
canDownDt
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
relationParam
.
getCanDownTime
());
if
(
canDownDt
.
isAfter
(
LocalDateTime
.
now
()))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20608"
));
}
// 查取演出对应的订单票明细
Query
orderTicketEntitiesVoQuery
=
Query
.
query
(
Criteria
.
where
(
"performanceId"
).
is
(
performanceId
).
and
(
"isPayment"
).
is
(
1
));
voList
=
mongoTemplate
.
find
(
orderTicketEntitiesVoQuery
,
KylinStationCheckOrderVo
.
class
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
Query
query
=
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
in
(
voList
.
stream
().
map
(
KylinStationCheckOrderVo:
:
getOrderId
).
toArray
()
));
query
.
fields
().
include
(
"orderTicketsId"
).
include
(
"qrCode"
);
List
<
KylinOrderTicketVo
>
orderTicketVoList
=
mongoTemplate
.
find
(
query
,
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
for
(
KylinOrderTicketVo
t
:
orderTicketVoList
)
for
(
KylinStationCheckOrderVo
r
:
voList
)
if
(
r
.
getOrderId
().
equals
(
t
.
getOrderTicketsId
()))
r
.
setQrCode
(
t
.
getQrCode
());
return
ResponseDto
.
success
(
Collections
.
singletonList
(
KylinStationCheckOrderVo
.
getNew
())
);
return
ResponseDto
.
success
(
voList
);
}
}
@ApiOperation
(
value
=
"上载验票数据"
)
@ApiOperation
(
value
=
"上载验票数据"
)
@PostMapping
(
"upload"
)
@PostMapping
(
"upload"
)
public
ResponseDto
<
Boolean
>
uploadTicketData
(
@RequestBody
List
<
KylinStationCheckOrderParam
>
checkDataParams
)
{
public
ResponseDto
<
Boolean
>
uploadTicketData
(
@RequestBody
KylinStationCheckOrderParam
checkDataParam
)
{
log
.
info
(
"checkDataParams:{}"
,
JsonUtils
.
toJson
(
checkDataParams
));
log
.
info
(
"checkDataParams:{}"
,
JsonUtils
.
toJson
(
checkDataParam
));
kylinOrderTicketEntitiesService
.
updateByStation
(
checkDataParam
);
return
ResponseDto
.
success
(
true
);
return
ResponseDto
.
success
(
true
);
}
}
...
@@ -239,4 +327,9 @@ public class KylinStationController {
...
@@ -239,4 +327,9 @@ public class KylinStationController {
return
ResponseDto
.
success
(
token
);
return
ResponseDto
.
success
(
token
);
}
}
private
static
<
T
>
Predicate
<
T
>
distinctByKey
(
Function
<?
super
T
,
Object
>
keyExtractor
)
{
Map
<
Object
,
Boolean
>
seen
=
new
ConcurrentHashMap
<>();
return
t
->
seen
.
putIfAbsent
(
keyExtractor
.
apply
(
t
),
Boolean
.
TRUE
)
==
null
;
}
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketEntitiesServiceImpl.java
View file @
75592fa4
package
com
.
liquidnet
.
service
.
kylin
.
service
.
impl
;
package
com
.
liquidnet
.
service
.
kylin
.
service
.
impl
;
import
com.liquidnet.common.mq.constant.MQConst
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam
;
import
com.liquidnet.service.kylin.dto.vo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
import
com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper
;
import
com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.mongodb.BasicDBObject
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.convert.MongoConverter
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
/**
* <p>
* <p>
...
@@ -16,5 +34,37 @@ import org.springframework.stereotype.Service;
...
@@ -16,5 +34,37 @@ import org.springframework.stereotype.Service;
*/
*/
@Service
@Service
public
class
KylinOrderTicketEntitiesServiceImpl
extends
ServiceImpl
<
KylinOrderTicketEntitiesMapper
,
KylinOrderTicketEntities
>
implements
IKylinOrderTicketEntitiesService
{
public
class
KylinOrderTicketEntitiesServiceImpl
extends
ServiceImpl
<
KylinOrderTicketEntitiesMapper
,
KylinOrderTicketEntities
>
implements
IKylinOrderTicketEntitiesService
{
@Autowired
MongoConverter
mongoConverter
;
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
RabbitTemplate
rabbitTemplate
;
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
rollbackFor
=
Exception
.
class
)
public
void
updateByStation
(
KylinStationCheckOrderParam
checkDataParam
)
{
String
performanceId
=
checkDataParam
.
getPerformanceId
();
KylinOrderTicketEntitiesVo
updateVo
=
new
KylinOrderTicketEntitiesVo
();
updateVo
.
setCheckClient
(
checkDataParam
.
getCheckClient
());
updateVo
.
setStatus
(
1
);
// 1-已出票
List
<
String
>
checkedEntitiesIdList
=
checkDataParam
.
getCheckedEntitiesIdList
();
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"performanceId"
).
is
(
performanceId
)
.
and
(
"orderTicketEntitiesId"
).
in
(
checkedEntitiesIdList
.
toArray
())
.
and
(
"status"
).
is
(
0
)
).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
updateVo
))
);
LocalDateTime
nowDt
=
LocalDateTime
.
now
();
LinkedList
<
Object
[]>
paramsList
=
new
LinkedList
<>();
for
(
String
id
:
checkedEntitiesIdList
)
{
paramsList
.
add
(
new
Object
[]{
1
,
nowDt
,
id
});
}
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramsList));
}
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/resources/errors.properties
View file @
75592fa4
...
@@ -37,3 +37,9 @@
...
@@ -37,3 +37,9 @@
# 专业版APP
# 专业版APP
20601
=
账号不存在
20601
=
账号不存在
20602
=
密码错误
20602
=
密码错误
20603
=
20604
=
20605
=
20606
=
当前账号无关联演出数据
20607
=
当前账号未关联当前演出
20608
=
当前演出还未开放下载
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/resources/sqlmap/kylin_order_ticket_entities.properties
View file @
75592fa4
kylin_order_ticket_entities.add
=
INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_ticket_entities.add
=
INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_ticket_entities.synPay
=
UPDATE kylin_order_ticket_status SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
kylin_order_ticket_entities.synPay
=
UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
\ No newline at end of file
kylin_order_ticket_entities.updateStatusByStation
=
UPDATE kylin_order_ticket_status SET `status`=?, updated_at=? WHERE order_ticket_entities_id =?
\ No newline at end of file
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