记得上下班打卡 | 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
8ba80223
Commit
8ba80223
authored
Dec 03, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+API:迁移调整验票代码(kylin to merchant, 去除登录登出,新增权限逻辑);
parent
8bfd0036
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
770 additions
and
1 deletion
+770
-1
MerchantStationController.java
...ervice/merchant/controller/MerchantStationController.java
+280
-0
MerchantStationCheckOrderParam.java
...ce/merchant/dto/param/MerchantStationCheckOrderParam.java
+28
-0
MerchantStationUploadParam.java
...ervice/merchant/dto/param/MerchantStationUploadParam.java
+19
-0
MerchantStationCheckOrderVo.java
.../service/merchant/dto/vo/MerchantStationCheckOrderVo.java
+53
-0
MerchantStationCheckRefreshVo.java
...ervice/merchant/dto/vo/MerchantStationCheckRefreshVo.java
+25
-0
MerchantStationPerformanceVo.java
...service/merchant/dto/vo/MerchantStationPerformanceVo.java
+57
-0
MerchantStationTicketVo.java
...dnet/service/merchant/dto/vo/MerchantStationTicketVo.java
+42
-0
MerchantStationService.java
...service/merchant/service/impl/MerchantStationService.java
+228
-0
ObjectUtil.java
.../java/com/liquidnet/service/merchant/util/ObjectUtil.java
+29
-0
errors.properties
...ervice-merchant-impl/src/main/resources/errors.properties
+6
-0
sqlmap.properties
...ervice-merchant-impl/src/main/resources/sqlmap.properties
+3
-1
No files found.
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/controller/MerchantStationController.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.liquidnet.commons.lang.constant.LnsRegex
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.ServletUtils
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.merchant.constant.MerchantAuthorizationConst
;
import
com.liquidnet.service.merchant.dto.param.MerchantStationCheckOrderParam
;
import
com.liquidnet.service.merchant.dto.param.MerchantStationUploadParam
;
import
com.liquidnet.service.merchant.dto.vo.MerchantAuthorizationPerformanceVo
;
import
com.liquidnet.service.merchant.dto.vo.MerchantStationCheckRefreshVo
;
import
com.liquidnet.service.merchant.dto.vo.MerchantStationPerformanceVo
;
import
com.liquidnet.service.merchant.service.impl.MerchantStationService
;
import
com.liquidnet.service.merchant.util.ObjectUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
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.util.CollectionUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@ApiSupport
(
order
=
10099
)
@Api
(
tags
=
"验票"
)
@Slf4j
@Validated
@RestController
@RequestMapping
(
"station"
)
public
class
MerchantStationController
{
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
MerchantStationService
merchantStationService
;
/* ------------------------------------------------------------------ */
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
value
=
"演出列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"mod"
,
value
=
"模块[recent-近期的,over-历史]"
,
allowableValues
=
"recent,over"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
false
,
dataType
=
"String"
,
name
=
"match"
,
value
=
"匹配字符[title|cityName|fieldName]"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"pageNo"
,
value
=
"页码"
,
example
=
"1"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"pageSize"
,
value
=
"页记录数"
,
example
=
"5"
),
})
@GetMapping
(
"performances"
)
public
ResponseDto
<
PagedResult
<
MerchantStationPerformanceVo
>>
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
)
{
PagedResult
<
MerchantStationPerformanceVo
>
pagedResult
=
ObjectUtil
.
getMerchantStationPerformanceVoPagedResult
();
List
<
MerchantStationPerformanceVo
>
voList
=
ObjectUtil
.
getMerchantStationPerformanceVoArrayList
();
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
long
count
=
0
;
try
{
// 查取当前用户下关联演出ID列表
List
<
MerchantAuthorizationPerformanceVo
>
authorizationPerformanceVoList
=
merchantStationService
.
getCheckUserRelationVo
(
currentUid
);
if
(!
CollectionUtils
.
isEmpty
(
authorizationPerformanceVoList
))
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"performanceRelationList:{}"
,
JsonUtils
.
toJson
(
authorizationPerformanceVoList
));
}
Map
<
String
,
MerchantAuthorizationPerformanceVo
>
authorizationPerformanceVoMap
=
authorizationPerformanceVoList
.
stream
().
collect
(
Collectors
.
toMap
(
MerchantAuthorizationPerformanceVo:
:
getPerformanceId
,
Function
.
identity
()));
Object
[]
performanceIdArr
=
authorizationPerformanceVoMap
.
keySet
().
toArray
();
Criteria
criteria
=
Criteria
.
where
(
"performancesId"
).
in
(
performanceIdArr
);
LocalDateTime
tmpDt
=
LocalDateTime
.
of
(
LocalDate
.
now
(),
LocalTime
.
of
(
0
,
0
,
0
,
0
));
String
tmpDtStr
=
DateUtil
.
format
(
tmpDt
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
switch
(
mod
)
{
case
"recent"
:
log
.
debug
(
":::performances/recent:{},match:{}"
,
currentUid
,
match
);
criteria
.
andOperator
(
Criteria
.
where
(
"timeEnd"
).
gt
(
tmpDtStr
));
break
;
// case "down":
// log.info(":::performances/down:{}", currentUid);
// break;
case
"over"
:
log
.
info
(
":::performances/over:{}"
,
currentUid
);
criteria
.
andOperator
(
Criteria
.
where
(
"timeEnd"
).
lte
(
tmpDtStr
));
break
;
default
:
log
.
info
(
":::performances/default:{}"
,
currentUid
);
return
ResponseDto
.
success
(
pagedResult
);
}
if
(
StringUtils
.
isNotBlank
(
match
))
{
java
.
util
.
regex
.
Pattern
pattern
=
java
.
util
.
regex
.
Pattern
.
compile
(
"^.*"
+
match
+
".*$"
,
java
.
util
.
regex
.
Pattern
.
CASE_INSENSITIVE
);
criteria
.
orOperator
(
Criteria
.
where
(
"title"
).
regex
(
pattern
),
Criteria
.
where
(
"cityName"
).
regex
(
pattern
),
Criteria
.
where
(
"fieldName"
).
regex
(
pattern
)
);
}
Query
performancesVoQuery
=
Query
.
query
(
criteria
);
count
=
mongoTemplate
.
count
(
performancesVoQuery
,
KylinPerformanceVo
.
class
.
getSimpleName
());
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"
)));
voList
=
mongoTemplate
.
find
(
performancesVoQuery
,
MerchantStationPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"voList:{}"
,
JsonUtils
.
toJson
(
voList
));
}
// 包含`销售统计`权限的演出ID
Object
[]
hasSalesPerformanceIdArr
=
authorizationPerformanceVoList
.
stream
()
.
filter
(
f
->
f
.
getPermissionIds
().
contains
(
MerchantAuthorizationConst
.
PerformancePermission
.
SALES
.
getId
()))
.
map
(
MerchantAuthorizationPerformanceVo:
:
getPerformanceId
).
toArray
();
MerchantAuthorizationPerformanceVo
defaultAuthorizationPerformanceVo
=
MerchantAuthorizationPerformanceVo
.
getNew
();
if
(
ArrayUtils
.
isNotEmpty
(
hasSalesPerformanceIdArr
))
{
// 查取演出对应的订单票明细
Query
orderTicketEntitiesVoQuery
=
Query
.
query
(
Criteria
.
where
(
"performanceId"
).
in
(
hasSalesPerformanceIdArr
).
and
(
"isPayment"
).
is
(
1
));
List
<
KylinOrderTicketEntitiesVo
>
oteVoList
=
mongoTemplate
.
find
(
orderTicketEntitiesVoQuery
,
KylinOrderTicketEntitiesVo
.
class
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"oteVoList:{}"
,
JsonUtils
.
toJson
(
oteVoList
));
}
// 转换订单票明细结构为Map<performanceId, List<KylinOrderTicketEntitiesVo>>
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
oteVoMap
=
oteVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getPerformanceId
));
for
(
MerchantStationPerformanceVo
r
:
voList
)
{
List
<
String
>
permissionIds
=
authorizationPerformanceVoMap
.
getOrDefault
(
r
.
getPerformancesId
(),
defaultAuthorizationPerformanceVo
).
getPermissionIds
();
r
.
setPermissionIds
(
StringUtils
.
join
(
permissionIds
.
toArray
(),
"."
));
r
.
setTicketTimeList
(
null
);
MerchantAuthorizationPerformanceVo
authorizationPerformanceVo
=
authorizationPerformanceVoMap
.
get
(
r
.
getPerformancesId
());
if
(
authorizationPerformanceVo
.
getPermissionIds
().
contains
(
MerchantAuthorizationConst
.
PerformancePermission
.
SALES
.
getId
()))
{
// 演出的所有订单票明细
List
<
KylinOrderTicketEntitiesVo
>
performanceTicketEntitiesVoList
=
oteVoMap
.
get
(
r
.
getPerformancesId
());
if
(!
CollectionUtils
.
isEmpty
(
performanceTicketEntitiesVoList
))
{
merchantStationService
.
salesStatisticsSetter
(
r
,
performanceTicketEntitiesVoList
);
}
}
}
}
else
{
voList
.
forEach
(
r
->
{
List
<
String
>
permissionIds
=
authorizationPerformanceVoMap
.
getOrDefault
(
r
.
getPerformancesId
(),
defaultAuthorizationPerformanceVo
).
getPermissionIds
();
r
.
setPermissionIds
(
StringUtils
.
join
(
permissionIds
.
toArray
(),
"."
));
r
.
setTicketTimeList
(
null
);
});
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"验票:查取演出列表异常[station/performances]"
,
e
);
}
pagedResult
.
setList
(
voList
).
setTotal
(
count
,
pageSize
).
setPageSize
(
pageSize
);
return
ResponseDto
.
success
(
pagedResult
);
}
@ApiOperationSupport
(
order
=
2
)
@ApiOperation
(
value
=
"下载验票数据"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"performanceId"
,
value
=
"演出ID[64]"
),
})
@GetMapping
(
"download"
)
public
ResponseDto
<
MerchantStationCheckRefreshVo
>
downloadTicketData
(
@NotBlank
(
message
=
"演出ID不能为空"
)
@RequestParam
String
performanceId
)
{
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
log
.
info
(
"验票:下载验票数据[UID:{},performanceId:{}]"
,
currentUid
,
performanceId
);
ResponseDto
<
MerchantStationCheckRefreshVo
>
responseDto
=
this
.
downloadRefreshTicketDataValid
(
currentUid
,
performanceId
);
if
(!
responseDto
.
isSuccess
())
{
return
responseDto
;
}
return
ResponseDto
.
success
(
merchantStationService
.
downloadRefreshTicketData
(
performanceId
,
null
));
}
@ApiOperationSupport
(
order
=
3
)
@ApiOperation
(
value
=
"刷新验票数据"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"performanceId"
,
value
=
"演出ID[64]"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"latestUpdateAt"
,
value
=
"最近更新时间[yyyy-MM-dd HH:mm:ss]"
),
})
@PostMapping
(
"refresh"
)
public
ResponseDto
<
MerchantStationCheckRefreshVo
>
refreshTicketData
(
@NotBlank
(
message
=
"演出ID不能为空"
)
@RequestParam
String
performanceId
,
@Pattern
(
regexp
=
LnsRegex
.
Valid
.
DATETIME_FULL
,
message
=
"时间格式有误"
)
@RequestParam
String
latestUpdateAt
)
{
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
log
.
info
(
"验票:刷新验票数据[UID:{},performanceId:{},latestUpdateAt:{}]"
,
currentUid
,
performanceId
,
latestUpdateAt
);
ResponseDto
<
MerchantStationCheckRefreshVo
>
responseDto
=
this
.
downloadRefreshTicketDataValid
(
currentUid
,
performanceId
);
if
(!
responseDto
.
isSuccess
())
{
return
responseDto
;
}
return
ResponseDto
.
success
(
merchantStationService
.
downloadRefreshTicketData
(
performanceId
,
latestUpdateAt
));
}
@ApiOperationSupport
(
order
=
4
)
@ApiOperation
(
value
=
"上载验票数据"
)
@PutMapping
(
"upload"
)
public
ResponseDto
<
Object
>
uploadTicketData
(
@Valid
@RequestBody
MerchantStationUploadParam
parameter
)
{
String
currentUid
=
CurrentUtil
.
getCurrentUid
();
log
.
info
(
"验票:上载验票数据[UID:{}]"
,
currentUid
);
HttpServletRequest
request
=
ServletUtils
.
getRequest
();
String
agent
=
request
.
getParameter
(
"User-Agent"
);
if
(
StringUtils
.
containsIgnoreCase
(
agent
,
"android"
))
{
parameter
.
setCheckClient
(
"ANDROID"
);
}
else
if
(
StringUtils
.
containsIgnoreCase
(
agent
,
"iPhone"
)
||
StringUtils
.
containsIgnoreCase
(
agent
,
"iPod"
)
||
StringUtils
.
containsIgnoreCase
(
agent
,
"iPad"
))
{
parameter
.
setCheckClient
(
"IOS"
);
}
else
{
parameter
.
setCheckClient
(
"APP"
);
}
List
<
MerchantStationCheckOrderParam
>
checkOrderParamList
=
parameter
.
getCheckOrderParamList
();
if
(!
CollectionUtils
.
isEmpty
(
checkOrderParamList
))
{
merchantStationService
.
updateByStation
(
parameter
);
}
return
ResponseDto
.
success
();
}
/* ------------------------------------------------------------------ */
// 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;
// }
/* ------------------------------------------------------------------ */
/**
* 下载、更新验票数据逻辑校验
*
* @param currentUid UID
* @param performanceId 演出ID
* @return ResponseDto<MerchantStationCheckRefreshVo>
*/
public
ResponseDto
<
MerchantStationCheckRefreshVo
>
downloadRefreshTicketDataValid
(
String
currentUid
,
String
performanceId
)
{
// 查取当前用户下关联演出ID列表
List
<
MerchantAuthorizationPerformanceVo
>
authorizationPerformanceVoList
=
merchantStationService
.
getCheckUserRelationVo
(
currentUid
);
if
(
CollectionUtils
.
isEmpty
(
authorizationPerformanceVoList
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"130901"
));
}
List
<
MerchantAuthorizationPerformanceVo
>
targetAuthPerformanceVoList
=
authorizationPerformanceVoList
.
stream
().
filter
(
r
->
r
.
getPerformanceId
().
equals
(
performanceId
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
targetAuthPerformanceVoList
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"130902"
));
}
// MerchantAuthorizationPerformanceVo authorizationPerformanceVo = targetAuthPerformanceVoList.get(0);
// LocalDateTime canDownDt = DateUtil.Formatter.yyyyMMddHHmmss.parse(relationParam.getCanDownTime());
// if (canDownDt.isAfter(LocalDateTime.now())) {
// return ResponseDto.failure(ErrorMapping.get("130903"));
// }
return
ResponseDto
.
success
();
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/param/MerchantStationCheckOrderParam.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
param
;
import
com.liquidnet.commons.lang.constant.LnsRegex
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"MerchantStationCheckOrderParam"
,
description
=
"上载验票入参"
)
@Data
public
class
MerchantStationCheckOrderParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6456177634242162305L
;
@ApiModelProperty
(
position
=
10
,
value
=
"票明细ID"
)
@NotBlank
(
message
=
"票明细ID不能为空"
)
private
String
ticketEntitiesId
;
@ApiModelProperty
(
position
=
11
,
value
=
"验票类型:1-扫码,2-手机号"
)
private
String
checkType
;
@ApiModelProperty
(
position
=
12
,
value
=
"验票时间[yyyy-MM-dd HH:mm:ss]"
)
@NotBlank
(
message
=
"验票时间不能为空"
)
@Pattern
(
regexp
=
LnsRegex
.
Valid
.
DATETIME_FULL
,
message
=
"验票时间格式有误"
)
private
String
checkedAt
;
@ApiModelProperty
(
position
=
13
,
value
=
"验票操作人ID"
)
@NotBlank
(
message
=
"验票操作人不能为空"
)
private
String
checkUserId
;
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/param/MerchantStationUploadParam.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
java.io.Serializable
;
import
java.util.List
;
@ApiModel
(
value
=
"MerchantStationUploadParam"
,
description
=
"上载入参"
)
@Data
public
class
MerchantStationUploadParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7029677911036924098L
;
@ApiModelProperty
(
position
=
10
,
value
=
"票明细数据"
)
@Valid
List
<
MerchantStationCheckOrderParam
>
checkOrderParamList
;
String
checkClient
;
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/vo/MerchantStationCheckOrderVo.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"MerchantStationCheckOrderVo"
,
description
=
"下载验票-订单响应参数"
)
@Data
public
class
MerchantStationCheckOrderVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
7634492610346603681L
;
@ApiModelProperty
(
position
=
10
,
value
=
"ID[64]"
)
private
String
orderTicketEntitiesId
;
@ApiModelProperty
(
position
=
11
,
value
=
"演出ID[64]"
)
private
String
performanceId
;
@ApiModelProperty
(
position
=
12
,
value
=
"订单ID"
)
private
String
orderId
;
@ApiModelProperty
(
position
=
13
,
value
=
"票种ID"
)
private
String
ticketId
;
@ApiModelProperty
(
position
=
14
,
value
=
"二维身份CODE"
)
private
String
qrCode
;
@ApiModelProperty
(
position
=
15
,
value
=
"订单用户姓名"
)
private
String
userName
;
@ApiModelProperty
(
position
=
16
,
value
=
"订单用户手机号"
)
private
String
userMobile
;
@ApiModelProperty
(
position
=
17
,
value
=
"入场人姓名"
)
private
String
enterName
;
@ApiModelProperty
(
position
=
18
,
value
=
"入场人手机号"
)
private
String
enterMobile
;
@ApiModelProperty
(
position
=
19
,
value
=
"出票状态:0-未出票,1-已出票"
)
private
Integer
status
;
@ApiModelProperty
(
position
=
20
,
value
=
"支付状态:0-未支付,1-已支付,2-退款中,3-已退款"
)
private
Integer
isPayment
;
@ApiModelProperty
(
position
=
21
,
value
=
"出票端:(验票app)android/ios"
)
private
String
checkClient
;
@ApiModelProperty
(
position
=
22
,
value
=
"验票类型:1-扫码,2-手机号"
)
private
String
checkType
;
@ApiModelProperty
(
position
=
23
,
value
=
"验票时间[yyyy-MM-dd HH:mm:ss]"
)
private
String
checkedAt
;
@ApiModelProperty
(
position
=
24
,
value
=
"更新时间[yyyy-MM-dd HH:mm:ss]"
)
private
String
updatedAt
;
private
static
final
MerchantStationCheckOrderVo
obj
=
new
MerchantStationCheckOrderVo
();
public
static
MerchantStationCheckOrderVo
getNew
()
{
try
{
return
(
MerchantStationCheckOrderVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
MerchantStationCheckOrderVo
();
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/vo/MerchantStationCheckRefreshVo.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@ApiModel
(
value
=
"MerchantStationCheckRefreshVo"
,
description
=
"下载刷新验票信息响应参数"
)
@Data
public
class
MerchantStationCheckRefreshVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
-
6108305147829613655L
;
private
MerchantStationPerformanceVo
performanceVo
;
private
List
<
MerchantStationCheckOrderVo
>
checkOrderVos
;
private
static
final
MerchantStationCheckRefreshVo
obj
=
new
MerchantStationCheckRefreshVo
();
public
static
MerchantStationCheckRefreshVo
getNew
()
{
try
{
return
(
MerchantStationCheckRefreshVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
MerchantStationCheckRefreshVo
();
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/vo/MerchantStationPerformanceVo.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
vo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
@ApiModel
(
value
=
"MerchantStationPerformanceVo"
,
description
=
"演出列表响应参数"
)
@Data
public
class
MerchantStationPerformanceVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
2904227908512047961L
;
@ApiModelProperty
(
position
=
10
,
value
=
"演出ID[64]"
)
private
String
performancesId
;
@ApiModelProperty
(
position
=
11
,
value
=
"类型[101-音乐节,102小型演出(livehouse演出),103巡演]"
)
private
Integer
type
;
@ApiModelProperty
(
position
=
12
,
value
=
"演出标题[255]"
)
private
String
title
;
@ApiModelProperty
(
position
=
13
,
value
=
"开始时间[yyyy/MM/dd]"
)
private
String
timeStart
;
@ApiModelProperty
(
position
=
14
,
value
=
"结束时间[yyyy/MM/dd]"
)
private
String
timeEnd
;
@ApiModelProperty
(
position
=
15
,
value
=
"城市名称"
)
private
String
cityName
;
@ApiModelProperty
(
position
=
16
,
value
=
"场地名称"
)
private
String
fieldName
;
@ApiModelProperty
(
position
=
17
,
value
=
"票种列表信息"
)
private
List
<
MerchantStationTicketVo
>
ticketVoList
;
@ApiModelProperty
(
position
=
18
,
value
=
"可下载时间"
)
private
String
canDownTime
;
@ApiModelProperty
(
position
=
20
,
value
=
"票房"
)
private
BigDecimal
priceSum
;
@ApiModelProperty
(
position
=
21
,
value
=
"票量[9]"
)
private
Integer
number
;
@ApiModelProperty
(
position
=
22
,
value
=
"已验票量[9]"
)
private
Integer
checkedNum
;
@ApiModelProperty
(
position
=
23
,
value
=
"余量[9]"
)
private
Integer
remainderNum
;
@ApiModelProperty
(
position
=
29
,
value
=
"权限(多个权限以.分隔)[4-销售统计|5-验票]"
)
private
String
permissionIds
;
@ApiModelProperty
(
position
=
30
,
value
=
"#过程数据,前端无需关注"
)
private
List
<
KylinTicketTimesVo
>
ticketTimeList
;
private
static
final
MerchantStationPerformanceVo
obj
=
new
MerchantStationPerformanceVo
();
public
static
MerchantStationPerformanceVo
getNew
()
{
try
{
return
(
MerchantStationPerformanceVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
MerchantStationPerformanceVo
();
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/dto/vo/MerchantStationTicketVo.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@ApiModel
(
value
=
"MerchantStationTicketVo"
,
description
=
"票种统计信息"
)
@Data
public
class
MerchantStationTicketVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
-
2995250476517713387L
;
@ApiModelProperty
(
position
=
10
,
value
=
"票种ID[64]"
)
private
String
ticketId
;
@ApiModelProperty
(
position
=
11
,
value
=
"名称[32]"
)
private
String
title
;
@ApiModelProperty
(
position
=
12
,
value
=
"单价(8,2)"
)
private
BigDecimal
price
;
@ApiModelProperty
(
position
=
13
,
value
=
"适用开始时间"
)
private
String
useStart
;
@ApiModelProperty
(
position
=
14
,
value
=
"适用结束时间"
)
private
String
useEnd
;
@ApiModelProperty
(
position
=
15
,
value
=
"票房"
)
private
BigDecimal
priceSum
;
@ApiModelProperty
(
position
=
16
,
value
=
"票量[9]"
)
private
Integer
number
;
@ApiModelProperty
(
position
=
17
,
value
=
"已验票量[9]"
)
private
Integer
checkedNum
;
@ApiModelProperty
(
position
=
18
,
value
=
"余量[9]"
)
private
Integer
remainderNum
;
private
static
final
MerchantStationTicketVo
obj
=
new
MerchantStationTicketVo
();
public
static
MerchantStationTicketVo
getNew
()
{
try
{
return
(
MerchantStationTicketVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
MerchantStationTicketVo
();
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/service/impl/MerchantStationService.java
0 → 100644
View file @
8ba80223
package
com
.
liquidnet
.
service
.
merchant
.
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
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.merchant.constant.MerchantAuthorizationConst
;
import
com.liquidnet.service.merchant.dto.param.MerchantStationUploadParam
;
import
com.liquidnet.service.merchant.dto.vo.*
;
import
com.liquidnet.service.merchant.util.ObjectUtil
;
import
com.liquidnet.service.merchant.util.QueueUtil
;
import
com.mongodb.bulk.BulkWriteResult
;
import
com.mongodb.client.model.UpdateOneModel
;
import
com.mongodb.client.model.WriteModel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
MerchantStationService
{
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
QueueUtil
queueUtil
;
/**
* 查取用户存在权限的演出
*
* @param checkUserId UID
* @return List<MerchantAuthorizationPerformanceVo>
*/
public
List
<
MerchantAuthorizationPerformanceVo
>
getCheckUserRelationVo
(
String
checkUserId
)
{
return
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"uid"
).
is
(
checkUserId
).
and
(
"permissionIds"
).
in
(
MerchantAuthorizationConst
.
PerformancePermission
.
SALES
.
getId
(),
MerchantAuthorizationConst
.
PerformancePermission
.
CHECK
.
getId
())
),
MerchantAuthorizationPerformanceVo
.
class
,
MerchantAuthorizationPerformanceVo
.
class
.
getSimpleName
());
}
/**
* 销售统计数据整理
*
* @param r 演出基础信息
* @param performanceTicketEntitiesVoList 演出订单票明细:Map<performanceId, List<KylinOrderTicketEntitiesVo>>
*/
public
void
salesStatisticsSetter
(
MerchantStationPerformanceVo
r
,
List
<
KylinOrderTicketEntitiesVo
>
performanceTicketEntitiesVoList
)
{
try
{
List
<
KylinTicketVo
>
performanceTicketVoList
=
ObjectUtil
.
getKylinTicketVoArrayList
();
r
.
getTicketTimeList
().
forEach
(
tt
->
performanceTicketVoList
.
addAll
(
tt
.
getTicketList
()));
// 提取演出对应票种信息
// 转换票种信息结构为Map<ticketsId, ticketVo>
Map
<
String
,
KylinTicketVo
>
performanceTicketMap
=
performanceTicketVoList
.
stream
().
collect
(
Collectors
.
toMap
(
KylinTicketVo:
:
getTicketsId
,
Function
.
identity
(),
(
k1
,
k2
)
->
k2
));
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"performanceTicketMap:{}"
,
JsonUtils
.
toJson
(
performanceTicketMap
));
}
// 订单票明细按票种分组
Map
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
performanceTicketEntitiesVoMap
=
performanceTicketEntitiesVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
KylinOrderTicketEntitiesVo:
:
getTicketId
));
List
<
MerchantStationTicketVo
>
ticketVoList
=
ObjectUtil
.
getMerchantStationTicketVoArrayList
();
BigDecimal
priceSum
=
BigDecimal
.
ZERO
;
int
number
=
0
,
checkedNum
=
0
,
remainderNum
=
0
;
for
(
Map
.
Entry
<
String
,
List
<
KylinOrderTicketEntitiesVo
>>
entry
:
performanceTicketEntitiesVoMap
.
entrySet
())
{
KylinTicketVo
ticketVo
=
performanceTicketMap
.
get
(
entry
.
getKey
());
MerchantStationTicketVo
stationTicketVo
=
MerchantStationTicketVo
.
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
());
number
+=
stationTicketVo
.
getNumber
();
checkedNum
+=
stationTicketVo
.
getCheckedNum
();
remainderNum
+=
stationTicketVo
.
getRemainderNum
();
priceSum
=
priceSum
.
add
(
stationTicketVo
.
getPriceSum
());
ticketVoList
.
add
(
stationTicketVo
);
}
r
.
setPriceSum
(
priceSum
);
r
.
setNumber
(
number
);
r
.
setCheckedNum
(
checkedNum
);
r
.
setRemainderNum
(
remainderNum
);
r
.
setTicketVoList
(
ticketVoList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"验票:整合销售统计异常[station/performances],performancesId:{}"
,
r
.
getPerformancesId
(),
e
);
}
}
/**
* 上载验票数据
*
* @param parameter MerchantStationUploadParam
*/
public
void
updateByStation
(
MerchantStationUploadParam
parameter
)
{
// // 根据验票用户ID分组
// Map<String, List<KylinStationCheckOrderParam>> checkOrderByUserIdMap = checkOrderParamList.stream().collect(Collectors.groupingBy(KylinStationCheckOrderParam::getCheckUserId));
//
// for (Map.Entry<String, List<KylinStationCheckOrderParam>> entry : checkOrderByUserIdMap.entrySet()) {
// List<KylinStationCheckOrderParam> checkOrderByUserList = entry.getValue();
//
// // 根据验票类型分组
// Map<String, List<KylinStationCheckOrderParam>> checkOrderByCheckTypeMap = checkOrderByUserList.stream().collect(Collectors.groupingBy(KylinStationCheckOrderParam::getCheckType));
// }
LocalDateTime
nowDt
=
LocalDateTime
.
now
();
String
nowDtStr
=
DateUtil
.
format
(
nowDt
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
);
LinkedList
<
Object
[]>
paramsList
=
CollectionUtil
.
linkedListObjectArr
();
List
<
WriteModel
<
Document
>>
list
=
ObjectUtil
.
getWriteModelDocumentArrayList
();
parameter
.
getCheckOrderParamList
().
forEach
(
r
->
{
if
(
StringUtils
.
isNotBlank
(
r
.
getTicketEntitiesId
()))
{
KylinOrderTicketEntitiesVo
updateVo
=
KylinOrderTicketEntitiesVo
.
getNew
();
updateVo
.
setStatus
(
1
);
// 出票状态: 0未出票 1已出票
updateVo
.
setCheckClient
(
parameter
.
getCheckClient
());
updateVo
.
setUpdatedAt
(
nowDtStr
);
updateVo
.
setCheckType
(
r
.
getCheckType
());
updateVo
.
setCheckedAt
(
r
.
getCheckedAt
());
updateVo
.
setCheckUserId
(
r
.
getCheckUserId
());
paramsList
.
add
(
new
Object
[]{
1
,
updateVo
.
getCheckClient
()
+
updateVo
.
getCheckType
(),
nowDt
,
r
.
getTicketEntitiesId
()});
Document
updateQuery
=
Query
.
query
(
Criteria
.
where
(
"orderTicketEntitiesId"
).
is
(
r
.
getTicketEntitiesId
())).
getQueryObject
();
Document
updateDoc
=
new
Document
(
"status"
,
updateVo
.
getStatus
())
.
append
(
"checkClient"
,
updateVo
.
getCheckClient
())
.
append
(
"updatedAt"
,
updateVo
.
getUpdatedAt
())
.
append
(
"checkType"
,
updateVo
.
getCheckType
())
.
append
(
"checkedAt"
,
updateVo
.
getCheckedAt
())
.
append
(
"checkUserId"
,
updateVo
.
getUserId
());
list
.
add
(
new
UpdateOneModel
<>(
updateQuery
,
new
Document
(
"$set"
,
updateDoc
)));
}
});
BulkWriteResult
bulkWriteResult
=
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
bulkWrite
(
list
);
log
.
info
(
"验票:上载验票数据[bulkWriteResult:{}]"
,
JsonUtils
.
toJson
(
bulkWriteResult
));
if
(
bulkWriteResult
.
getModifiedCount
()
>
0
)
{
queueUtil
.
sendMsgByRedis
(
MQConst
.
KylinQueue
.
SQL_STATION
.
getKey
(),
SqlMapping
.
get
(
"kylin_order_ticket_entities.update_status_bystation"
,
paramsList
));
}
}
/**
* 下载、更新验票数据
*
* @param performanceId 演出ID
* @param latestUpdateAt 最近更新时间(仅当更新时必传,下载时传null)
* @return MerchantStationCheckRefreshVo
*/
public
MerchantStationCheckRefreshVo
downloadRefreshTicketData
(
String
performanceId
,
String
latestUpdateAt
)
{
Criteria
criteria
=
Criteria
.
where
(
"performanceId"
).
is
(
performanceId
).
and
(
"isPayment"
).
is
(
1
);
if
(
StringUtils
.
isNotEmpty
(
latestUpdateAt
))
{
criteria
.
and
(
"updatedAt"
).
gte
(
latestUpdateAt
);
}
// 查取演出对应的订单票明细
Query
orderTicketEntitiesVoQuery
=
Query
.
query
(
criteria
);
List
<
MerchantStationCheckOrderVo
>
checkOrderVos
=
mongoTemplate
.
find
(
orderTicketEntitiesVoQuery
,
MerchantStationCheckOrderVo
.
class
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
// 查取订单信息(orderTicketsId,userMobile,userName,qrCode)
Query
query
=
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
in
(
checkOrderVos
.
stream
().
map
(
MerchantStationCheckOrderVo:
:
getOrderId
).
toArray
()));
query
.
fields
().
include
(
"orderTicketsId"
).
include
(
"userMobile"
).
include
(
"userName"
).
include
(
"qrCode"
);
List
<
KylinOrderTicketVo
>
orderTicketVoList
=
mongoTemplate
.
find
(
query
,
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
for
(
KylinOrderTicketVo
t
:
orderTicketVoList
)
{
for
(
MerchantStationCheckOrderVo
r
:
checkOrderVos
)
{
if
(
r
.
getOrderId
().
equals
(
t
.
getOrderTicketsId
()))
{
r
.
setQrCode
(
t
.
getQrCode
());
r
.
setUserMobile
(
t
.
getUserMobile
());
r
.
setUserName
(
t
.
getUserName
());
}
}
}
MerchantStationCheckRefreshVo
stationCheckRefreshVo
=
MerchantStationCheckRefreshVo
.
getNew
();
stationCheckRefreshVo
.
setCheckOrderVos
(
checkOrderVos
);
// 查取演出信息
MerchantStationPerformanceVo
performanceVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
MerchantStationPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
// 提取演出对应票种信息
List
<
KylinTicketVo
>
performanceTicketVoList
=
ObjectUtil
.
getKylinTicketVoArrayList
();
performanceVo
.
getTicketTimeList
().
forEach
(
tt
->
performanceTicketVoList
.
addAll
(
tt
.
getTicketList
()));
List
<
MerchantStationTicketVo
>
ticketVoList
=
ObjectUtil
.
getMerchantStationTicketVoArrayList
();
for
(
KylinTicketVo
r
:
performanceTicketVoList
)
{
MerchantStationTicketVo
stationTicketVo
=
MerchantStationTicketVo
.
getNew
();
stationTicketVo
.
setTicketId
(
r
.
getTicketsId
());
stationTicketVo
.
setTitle
(
r
.
getTitle
());
stationTicketVo
.
setPrice
(
r
.
getPrice
());
stationTicketVo
.
setUseStart
(
r
.
getUseStart
());
stationTicketVo
.
setUseEnd
(
r
.
getUseEnd
());
ticketVoList
.
add
(
stationTicketVo
);
}
performanceVo
.
setTicketTimeList
(
null
);
performanceVo
.
setTicketVoList
(
ticketVoList
);
stationCheckRefreshVo
.
setPerformanceVo
(
performanceVo
);
return
stationCheckRefreshVo
;
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/merchant/util/ObjectUtil.java
View file @
8ba80223
...
@@ -2,10 +2,13 @@ package com.liquidnet.service.merchant.util;
...
@@ -2,10 +2,13 @@ package com.liquidnet.service.merchant.util;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.kylin.dao.PerformancePartnerListDao
;
import
com.liquidnet.service.kylin.dao.PerformancePartnerListDao
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancePartnerListVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancePartnerListVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo
;
import
com.liquidnet.service.merchant.dto.vo.*
;
import
com.liquidnet.service.merchant.dto.vo.*
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.model.WriteModel
;
import
org.bson.Document
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -21,13 +24,19 @@ public class ObjectUtil {
...
@@ -21,13 +24,19 @@ public class ObjectUtil {
private
static
final
PagedResult
<
MerchantSponsorsVo
>
merchantSponsorsVoPagedResult
=
new
PagedResult
<>();
private
static
final
PagedResult
<
MerchantSponsorsVo
>
merchantSponsorsVoPagedResult
=
new
PagedResult
<>();
private
static
final
ArrayList
<
MerchantStationPerformanceVo
>
merchantStationPerformanceVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
MerchantStationTicketVo
>
merchantStationTicketVoArrayList
=
new
ArrayList
<>();
private
static
final
PagedResult
<
MerchantStationPerformanceVo
>
merchantStationPerformanceVoPagedResult
=
new
PagedResult
<>();
private
static
final
BasicDBObject
basicDBObject
=
new
BasicDBObject
();
private
static
final
BasicDBObject
basicDBObject
=
new
BasicDBObject
();
private
static
final
ArrayList
<
WriteModel
<
Document
>>
writeModelDocumentArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
PerformancePartnerListDao
>
performancePartnerListDaoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
PerformancePartnerListDao
>
performancePartnerListDaoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
TicketTimesTicketCreatePartnerVo
>
ticketTimesTicketCreatePartnerVoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
TicketTimesTicketCreatePartnerVo
>
ticketTimesTicketCreatePartnerVoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
KylinPerformancePartnerListVo
>
performancePartnerListVo
=
new
ArrayList
<>();
private
static
final
ArrayList
<
KylinPerformancePartnerListVo
>
performancePartnerListVo
=
new
ArrayList
<>();
private
static
final
ArrayList
<
MerchantAuthorizationPerformanceVo
>
permissionVoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
MerchantAuthorizationPerformanceVo
>
permissionVoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
KylinTicketVo
>
kylinTicketVoArrayList
=
new
ArrayList
<>();
public
static
ArrayList
<
PerformancePartnerListDao
>
getPerformancePartnerListDaoArrayList
()
{
public
static
ArrayList
<
PerformancePartnerListDao
>
getPerformancePartnerListDaoArrayList
()
{
return
(
ArrayList
<
PerformancePartnerListDao
>)
performancePartnerListDaoArrayList
.
clone
();
return
(
ArrayList
<
PerformancePartnerListDao
>)
performancePartnerListDaoArrayList
.
clone
();
...
@@ -69,7 +78,27 @@ public class ObjectUtil {
...
@@ -69,7 +78,27 @@ public class ObjectUtil {
return
(
ArrayList
<
MerchantSponsorAppliesVo
>)
merchantSponsorAppliesVoArrayList
.
clone
();
return
(
ArrayList
<
MerchantSponsorAppliesVo
>)
merchantSponsorAppliesVoArrayList
.
clone
();
}
}
public
static
ArrayList
<
MerchantStationPerformanceVo
>
getMerchantStationPerformanceVoArrayList
()
{
return
(
ArrayList
<
MerchantStationPerformanceVo
>)
merchantStationPerformanceVoArrayList
.
clone
();
}
public
static
ArrayList
<
MerchantStationTicketVo
>
getMerchantStationTicketVoArrayList
()
{
return
(
ArrayList
<
MerchantStationTicketVo
>)
merchantStationTicketVoArrayList
.
clone
();
}
public
static
PagedResult
<
MerchantStationPerformanceVo
>
getMerchantStationPerformanceVoPagedResult
()
{
return
merchantStationPerformanceVoPagedResult
.
clone
();
}
public
static
BasicDBObject
cloneBasicDBObject
()
{
public
static
BasicDBObject
cloneBasicDBObject
()
{
return
(
BasicDBObject
)
basicDBObject
.
clone
();
return
(
BasicDBObject
)
basicDBObject
.
clone
();
}
}
public
static
ArrayList
<
WriteModel
<
Document
>>
getWriteModelDocumentArrayList
()
{
return
(
ArrayList
<
WriteModel
<
Document
>>)
writeModelDocumentArrayList
.
clone
();
}
public
static
ArrayList
<
KylinTicketVo
>
getKylinTicketVoArrayList
()
{
return
(
ArrayList
<
KylinTicketVo
>)
kylinTicketVoArrayList
.
clone
();
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/errors.properties
View file @
8ba80223
...
@@ -62,3 +62,9 @@
...
@@ -62,3 +62,9 @@
29999
=
无权限
29999
=
无权限
# 专业版APP
130901
=
当前账号无关联演出数据
130902
=
当前账号未关联当前演出
130903
=
当前演出还未开放下载
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/sqlmap.properties
View file @
8ba80223
...
@@ -21,7 +21,9 @@ merchant_authorization_permissions.insert=INSERT INTO merchant_authorization_per
...
@@ -21,7 +21,9 @@ merchant_authorization_permissions.insert=INSERT INTO merchant_authorization_per
# ---------------------------------------------------------------------------------------------------------------------
kylin_order_ticket_entities.update_status_bystation
=
UPDATE kylin_order_ticket_entities SET `status`=?,check_client=?,updated_at=? WHERE order_ticket_entities_id=?
# ---------------------------------------------------------------------------------------------------------------------
...
...
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