记得上下班打卡 | 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
105839ae
Commit
105839ae
authored
Jun 29, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 platform
parent
ea54b97c
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
3374 additions
and
6 deletions
+3374
-6
pom.xml
...-service-platform/liquidnet-service-platform-impl/pom.xml
+10
-6
FieldsPartnerServiceImpl.java
.../service/kylin/partner/impl/FieldsPartnerServiceImpl.java
+84
-0
KylinBuyNoticePartnerServiceImpl.java
.../kylin/partner/impl/KylinBuyNoticePartnerServiceImpl.java
+50
-0
KylinCheckUserPartnerServiceImpl.java
.../kylin/partner/impl/KylinCheckUserPartnerServiceImpl.java
+141
-0
KylinCheckUserPerformancesPartnerServiceImpl.java
...er/impl/KylinCheckUserPerformancesPartnerServiceImpl.java
+142
-0
KylinPerformancesPartnerServiceImpl.java
...lin/partner/impl/KylinPerformancesPartnerServiceImpl.java
+700
-0
KylinTicketTimesPartnerServiceImpl.java
...ylin/partner/impl/KylinTicketTimesPartnerServiceImpl.java
+246
-0
KylinTicketsPartnerServiceImpl.java
...ce/kylin/partner/impl/KylinTicketsPartnerServiceImpl.java
+417
-0
DataUtils.java
.../com/liquidnet/service/kylin/partner/utils/DataUtils.java
+667
-0
MongoVoUtils.java
...m/liquidnet/service/kylin/partner/utils/MongoVoUtils.java
+232
-0
OrderUtils.java
...com/liquidnet/service/kylin/partner/utils/OrderUtils.java
+124
-0
OtherUtils.java
...com/liquidnet/service/kylin/partner/utils/OtherUtils.java
+94
-0
PerformanceVoTask.java
...uidnet/service/kylin/partner/utils/PerformanceVoTask.java
+467
-0
No files found.
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/pom.xml
View file @
105839ae
...
@@ -45,12 +45,6 @@
...
@@ -45,12 +45,6 @@
<artifactId>
liquidnet-service-adam-api
</artifactId>
<artifactId>
liquidnet-service-adam-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-api-feign-kylin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
@@ -65,6 +59,16 @@
...
@@ -65,6 +59,16 @@
<groupId>
com.aliyun
</groupId>
<groupId>
com.aliyun
</groupId>
<artifactId>
aliyun-java-sdk-dypnsapi
</artifactId>
<artifactId>
aliyun-java-sdk-dypnsapi
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-kylin-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-adam-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/FieldsPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.KylinFieldsVo
;
import
com.liquidnet.service.kylin.mapper.KylinFieldRelationMapper
;
import
com.liquidnet.service.kylin.mapper.KylinFieldStatusMapper
;
import
com.liquidnet.service.kylin.mapper.KylinFieldsMapper
;
import
com.liquidnet.service.kylin.service.partner.KylinFieldsPartnerService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
@Service
public
class
FieldsPartnerServiceImpl
implements
KylinFieldsPartnerService
{
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
KylinFieldsMapper
fieldsMapper
;
@Autowired
private
KylinFieldStatusMapper
kylinFieldStatusMapper
;
@Autowired
private
KylinFieldRelationMapper
fieldRelationsMapper
;
/**
* 根据名字模糊查询 partner 场地列表
* @param page
* @param size
* @param name
* @return
*/
@Override
public
HashMap
<
String
,
Object
>
fieldList
(
int
page
,
int
size
,
String
name
)
{
HashMap
<
String
,
Object
>
info
=
new
HashMap
<>();
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
0
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
//条件
Query
query
=
Query
.
query
(
Criteria
.
where
(
"name"
).
regex
(
".*?\\"
+
name
));
// 查询总数
long
count
=
mongoTemplate
.
count
(
query
,
KylinFieldsVo
.
class
,
KylinFieldsVo
.
class
.
getSimpleName
());
query
.
with
(
pageable
);
info
.
put
(
"total"
,
count
);
info
.
put
(
"data"
,
mongoTemplate
.
find
(
query
,
KylinFieldsVo
.
class
,
KylinFieldsVo
.
class
.
getSimpleName
()));
return
info
;
}
/**
* partner 场地详情
* @param fieldId
* @return
*/
@Override
public
KylinFieldsVo
fieldDetails
(
String
fieldId
)
{
KylinFieldsVo
info
=
null
;
// 获取 redis数据
info
=
(
KylinFieldsVo
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
,
fieldId
+
""
);
//不存在 获取 mongo数据
if
(
null
==
info
)
{
info
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"fieldsId"
).
is
(
fieldId
)),
KylinFieldsVo
.
class
,
KylinFieldsVo
.
class
.
getSimpleName
());
redisUtil
.
hset
(
KylinRedisConst
.
FIELDS
,
fieldId
+
""
,
info
);
}
return
info
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinBuyNoticePartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo
;
import
com.liquidnet.service.kylin.entity.KylinBuyNotice
;
import
com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper
;
import
com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 购票须知表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-18
*/
@Service
public
class
KylinBuyNoticePartnerServiceImpl
extends
ServiceImpl
<
KylinBuyNoticeMapper
,
KylinBuyNotice
>
implements
IKylinBuyNoticePartnerService
{
@Autowired
private
KylinBuyNoticeMapper
kylinBuyNoticeMapper
;
@Override
public
PageInfo
<
KylinBuyNoticeVo
>
getBuyNotice
()
{
PageInfo
<
KylinBuyNoticeVo
>
pageInfoTmp
=
null
;
PageHelper
.
startPage
(
1
,
20
);
List
<
KylinBuyNotice
>
buyNoticeList
=
kylinBuyNoticeMapper
.
selectList
(
new
UpdateWrapper
<
KylinBuyNotice
>().
eq
(
"status"
,
1
).
orderByDesc
(
"sort"
).
orderByDesc
(
"mid"
));
List
<
KylinBuyNoticeVo
>
kylinBuyNoticeVoList
=
new
ArrayList
<>();
for
(
KylinBuyNotice
item
:
buyNoticeList
)
{
KylinBuyNoticeVo
kylinBuyNoticeVo
=
new
KylinBuyNoticeVo
();
BeanUtils
.
copyProperties
(
item
,
kylinBuyNoticeVo
);
kylinBuyNoticeVoList
.
add
(
kylinBuyNoticeVo
);
}
pageInfoTmp
=
new
PageInfo
(
kylinBuyNoticeVoList
);
return
pageInfoTmp
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinCheckUserPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dao.ChildDetailsDao
;
import
com.liquidnet.service.kylin.dao.ChildListDao
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserVo
;
import
com.liquidnet.service.kylin.entity.KylinCheckUser
;
import
com.liquidnet.service.kylin.mapper.KylinCheckUserMapper
;
import
com.liquidnet.service.kylin.partner.utils.DataUtils
;
import
com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService
;
import
com.mongodb.BasicDBObject
;
import
org.springframework.beans.BeanUtils
;
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.util.DigestUtils
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 验票用户表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public
class
KylinCheckUserPartnerServiceImpl
extends
ServiceImpl
<
KylinCheckUserMapper
,
KylinCheckUser
>
implements
IKylinCheckUserPartnerService
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
KylinCheckUserMapper
checkUserMapper
;
@Override
public
PageInfo
<
ChildListDao
>
getCheckUserList
(
String
merchantId
,
String
mobile
,
int
page
,
int
size
)
{
PageInfo
<
ChildListDao
>
pageInfo
=
null
;
try
{
PageHelper
.
startPage
(
page
,
size
);
List
<
ChildListDao
>
data
=
checkUserMapper
.
childSimpleList
(
merchantId
,
mobile
);
pageInfo
=
new
PageInfo
(
data
);
return
pageInfo
;
}
catch
(
Exception
e
)
{
return
pageInfo
;
}
}
@Override
public
ResponseDto
<
String
>
del
(
String
merchantId
,
String
checkUserId
)
{
try
{
KylinCheckUser
checkUser
=
new
KylinCheckUser
();
checkUser
.
setUpdatedAt
(
LocalDateTime
.
now
());
checkUser
.
setStatus
(
0
);
checkUserMapper
.
update
(
checkUser
,
new
UpdateWrapper
<
KylinCheckUser
>().
eq
(
"check_user_id"
,
checkUserId
));
dataUtils
.
delCheckUserRedis
(
checkUserId
);
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
0
);
// BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
// mongoTemplate.getCollection(CheckUserVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("checkUserId").is(checkUserId)).getQueryObject(),
// obj
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
checkUserId
)),
KylinCheckUserVo
.
class
,
KylinCheckUserVo
.
class
.
getSimpleName
());
return
ResponseDto
.
success
(
"删除成功"
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20102
));
}
}
@Override
public
ResponseDto
<
String
>
create
(
String
merchantId
,
String
name
,
String
pwd
,
String
mobile
)
{
try
{
KylinCheckUser
checkUser
=
new
KylinCheckUser
();
checkUser
.
setName
(
name
);
checkUser
.
setPwd
(
DigestUtils
.
md5DigestAsHex
(
pwd
.
getBytes
()));
checkUser
.
setMobile
(
mobile
);
checkUser
.
setCheckUserId
(
IDGenerator
.
nextSnowId
().
toString
());
checkUser
.
setCreatedAt
(
LocalDateTime
.
now
());
checkUser
.
setMerchantId
(
merchantId
);
checkUser
.
setStatus
(
1
);
checkUserMapper
.
insert
(
checkUser
);
KylinCheckUserVo
kylinCheckUserVo
=
new
KylinCheckUserVo
();
BeanUtils
.
copyProperties
(
checkUser
,
kylinCheckUserVo
);
mongoTemplate
.
insert
(
kylinCheckUserVo
,
KylinCheckUserVo
.
class
.
getSimpleName
());
return
ResponseDto
.
success
(
"添加成功"
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
}
@Override
public
ResponseDto
<
String
>
change
(
String
merchantId
,
String
checkUserId
,
String
name
,
String
pwd
,
String
mobile
)
{
try
{
KylinCheckUser
checkUser
=
new
KylinCheckUser
();
checkUser
.
setName
(
name
);
if
(
null
!=
pwd
)
{
checkUser
.
setPwd
(
DigestUtils
.
md5DigestAsHex
(
pwd
.
getBytes
()));
}
checkUser
.
setMobile
(
mobile
);
checkUser
.
setUpdatedAt
(
LocalDateTime
.
now
());
checkUserMapper
.
update
(
checkUser
,
new
UpdateWrapper
<
KylinCheckUser
>().
eq
(
"check_user_id"
,
checkUserId
).
eq
(
"merchant_id"
,
merchantId
));
BasicDBObject
obj
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
checkUser
));
mongoTemplate
.
getCollection
(
KylinCheckUserVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
checkUserId
)).
getQueryObject
(),
obj
);
dataUtils
.
delCheckUserRedis
(
checkUserId
);
return
ResponseDto
.
success
(
"修改成功"
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20103
));
}
}
@Override
public
ResponseDto
<
ChildDetailsDao
>
details
(
String
merchantId
,
String
checkUserId
)
{
try
{
ChildDetailsDao
data
=
checkUserMapper
.
childDetails
(
merchantId
,
checkUserId
);
return
ResponseDto
.
success
(
data
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinCheckUserPerformancesPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dao.ChildPerformanceDao
;
import
com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam
;
import
com.liquidnet.service.kylin.dto.param.CheckUserParam
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserPerformanceVo
;
import
com.liquidnet.service.kylin.entity.KylinCheckUserPerformances
;
import
com.liquidnet.service.kylin.mapper.KylinCheckUserPerformancesMapper
;
import
com.liquidnet.service.kylin.partner.utils.DataUtils
;
import
com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService
;
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
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 验票用户可看演出表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public
class
KylinCheckUserPerformancesPartnerServiceImpl
extends
ServiceImpl
<
KylinCheckUserPerformancesMapper
,
KylinCheckUserPerformances
>
implements
IKylinCheckUserPerformancesPartnerService
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
KylinCheckUserPerformancesMapper
checkUserPerformancesMapper
;
@Override
public
ResponseDto
<
PageInfo
<
ChildPerformanceDao
>>
childPerformanceList
(
String
merchantId
,
String
checkUserId
,
int
page
,
int
size
,
String
name
)
{
PageInfo
<
ChildPerformanceDao
>
pageInfo
=
null
;
try
{
PageHelper
.
startPage
(
page
,
size
);
List
<
ChildPerformanceDao
>
data
=
checkUserPerformancesMapper
.
childPerformanceList
(
merchantId
,
checkUserId
,
name
);
pageInfo
=
new
PageInfo
(
data
);
return
ResponseDto
.
success
(
pageInfo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
success
(
pageInfo
);
}
}
@Override
public
ResponseDto
<
PageInfo
<
ChildPerformanceDao
>>
unChildPerformanceList
(
String
merchantId
,
String
checkUserId
,
int
page
,
int
size
,
String
name
)
{
PageInfo
<
ChildPerformanceDao
>
pageInfo
=
null
;
try
{
PageHelper
.
startPage
(
page
,
size
);
List
<
ChildPerformanceDao
>
data
=
checkUserPerformancesMapper
.
unChildPerformanceList
(
merchantId
,
checkUserId
,
name
);
pageInfo
=
new
PageInfo
(
data
);
return
ResponseDto
.
success
(
pageInfo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
success
(
pageInfo
);
}
}
@Override
public
ResponseDto
<
String
>
setPerformance
(
CheckUserParam
param
)
{
try
{
for
(
CheckPerformanceRelationParam
item
:
param
.
getCheckPerformanceRelationParamList
())
{
if
(
null
==
item
.
getCanDownTime
())
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
KylinCheckUserPerformances
checkUserPerformances
=
new
KylinCheckUserPerformances
();
checkUserPerformances
.
setCheckUserId
(
param
.
getCheckUserId
());
checkUserPerformances
.
setCanDownTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
item
.
getCanDownTime
()));
checkUserPerformances
.
setPerformanceId
(
item
.
getPerformanceId
());
checkUserPerformances
.
setCheckUserPerformanceId
(
IDGenerator
.
nextSnowId
());
checkUserPerformances
.
setCreatedAt
(
LocalDateTime
.
now
());
checkUserPerformances
.
setStatus
(
1
);
checkUserPerformancesMapper
.
insert
(
checkUserPerformances
);
}
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
param
.
getCheckUserId
())),
KylinCheckUserPerformanceVo
.
class
,
KylinCheckUserPerformanceVo
.
class
.
getSimpleName
());
KylinCheckUserPerformanceVo
userPerformanceVo
=
new
KylinCheckUserPerformanceVo
();
List
<
CheckPerformanceRelationParam
>
performanceRelationParamsList
=
new
ArrayList
<>();
List
<
KylinCheckUserPerformances
>
data
=
checkUserPerformancesMapper
.
selectList
(
new
UpdateWrapper
<
KylinCheckUserPerformances
>().
eq
(
"check_user_id"
,
param
.
getCheckUserId
()));
for
(
KylinCheckUserPerformances
item
:
data
)
{
CheckPerformanceRelationParam
performanceRelationParam
=
new
CheckPerformanceRelationParam
();
performanceRelationParam
.
setCanDownTime
(
item
.
getCanDownTime
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performanceRelationParam
.
setPerformanceId
(
item
.
getPerformanceId
());
performanceRelationParamsList
.
add
(
performanceRelationParam
);
}
userPerformanceVo
.
setCheckUserId
(
param
.
getCheckUserId
());
userPerformanceVo
.
setRelationParams
(
performanceRelationParamsList
);
mongoTemplate
.
insert
(
userPerformanceVo
,
KylinCheckUserPerformanceVo
.
class
.
getSimpleName
());
dataUtils
.
delCheckUserRelationRedis
(
param
.
getCheckUserId
());
return
ResponseDto
.
success
(
"添加成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
}
@Override
public
ResponseDto
<
String
>
delPerformance
(
List
<
String
>
performanceIds
,
String
checkUserId
)
{
try
{
for
(
String
performanceId
:
performanceIds
)
{
checkUserPerformancesMapper
.
delete
(
new
UpdateWrapper
<
KylinCheckUserPerformances
>().
eq
(
"check_user_id"
,
checkUserId
).
eq
(
"performance_id"
,
performanceId
));
}
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
checkUserId
)),
KylinCheckUserPerformanceVo
.
class
,
KylinCheckUserPerformanceVo
.
class
.
getSimpleName
());
KylinCheckUserPerformanceVo
userPerformanceVo
=
new
KylinCheckUserPerformanceVo
();
List
<
CheckPerformanceRelationParam
>
performanceRelationParamsList
=
new
ArrayList
<>();
List
<
KylinCheckUserPerformances
>
data
=
checkUserPerformancesMapper
.
selectList
(
new
UpdateWrapper
<
KylinCheckUserPerformances
>().
eq
(
"check_user_id"
,
checkUserId
));
for
(
KylinCheckUserPerformances
item
:
data
)
{
CheckPerformanceRelationParam
performanceRelationParam
=
new
CheckPerformanceRelationParam
();
performanceRelationParam
.
setCanDownTime
(
item
.
getCanDownTime
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performanceRelationParam
.
setPerformanceId
(
item
.
getPerformanceId
());
performanceRelationParamsList
.
add
(
performanceRelationParam
);
}
userPerformanceVo
.
setCheckUserId
(
checkUserId
);
userPerformanceVo
.
setRelationParams
(
performanceRelationParamsList
);
mongoTemplate
.
insert
(
userPerformanceVo
,
KylinCheckUserPerformanceVo
.
class
.
getSimpleName
());
dataUtils
.
delCheckUserRelationRedis
(
checkUserId
);
return
ResponseDto
.
success
(
"删除成功"
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20102
));
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinPerformancesPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao
;
import
com.liquidnet.service.kylin.dao.PerformancePartnerListDao
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.dto.param.PerformanceStep1Param
;
import
com.liquidnet.service.kylin.dto.param.PerformanceStep2Param
;
import
com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.*
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
com.liquidnet.service.kylin.partner.utils.DataUtils
;
import
com.liquidnet.service.kylin.partner.utils.PerformanceVoTask
;
import
com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService
;
import
com.mongodb.BasicDBObject
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
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
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 演出 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-05
*/
@Service
@Slf4j
public
class
KylinPerformancesPartnerServiceImpl
extends
ServiceImpl
<
KylinPerformancesMapper
,
KylinPerformances
>
implements
IKylinPerformancesPartnerService
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
PerformanceVoTask
performanceVoTask
;
@Autowired
private
KylinPerformancesMapper
performancesMapper
;
@Autowired
private
KylinPerformanceStatusMapper
performanceStatusMapper
;
@Autowired
private
KylinPerformanceRelationsMapper
performanceRelationsMapper
;
@Autowired
private
KylinTicketTimesMapper
ticketTimesMapper
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinTicketsMapper
ticketsMapper
;
@Autowired
private
KylinTicketStatusMapper
ticketStatusMapper
;
@Autowired
private
KylinTicketRelationsMapper
ticketRelationsMapper
;
@Autowired
private
KylinTicketsPartnerServiceImpl
ticketsPartnerService
;
@Autowired
private
KylinTicketTimesPartnerServiceImpl
ticketTimesPartnerService
;
@Override
public
String
step1
(
PerformanceStep1Param
step1Param
)
{
String
result
=
null
;
// 无 performancesId 则 创建
if
(
null
==
step1Param
.
getPerformancesId
())
{
result
=
createStep1
(
step1Param
);
}
else
{
// 获取 create 数据 status = 0 或 无数据 创建
PerformancePartnerVo
createParam
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
step1Param
.
getPerformancesId
())),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
createParam
==
null
)
{
result
=
createStep1
(
step1Param
);
}
else
{
// 修改
result
=
updateStep1
(
step1Param
);
}
}
return
result
;
}
@Override
public
String
createStep1
(
PerformanceStep1Param
step1Param
)
{
// 获取 主键id
String
performanceId
=
IDGenerator
.
nextSnowId
().
toString
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
try
{
step1Param
.
setPerformancesId
(
performanceId
);
PerformancePartnerVo
performancePartnerVo
=
new
PerformancePartnerVo
();
BeanUtils
.
copyProperties
(
step1Param
,
performancePartnerVo
);
performancePartnerVo
.
setIsTrueName
(
0
);
performancePartnerVo
.
setLimitCount
(
0
);
performancePartnerVo
.
setCreatedAt
(
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performancePartnerVo
.
setIsSubmit
(
0
);
performancePartnerVo
.
setStatus
(
0
);
performancePartnerVo
.
setStatusSell
(
1
);
performancePartnerVo
.
setAuditStatus
(-
1
);
performancePartnerVo
.
setRoadShowId
(
"0"
);
performancePartnerVo
.
setProjectId
(
"0"
);
performancePartnerVo
.
setIsShow
(
1
);
performancePartnerVo
.
setFieldName
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
performancePartnerVo
.
getFieldId
(),
"name"
));
performancePartnerVo
.
setNoticeImage
(
dataUtils
.
getBuyNoticeJsonString
(
step1Param
.
getNoticeIds
()));
mongoTemplate
.
insert
(
performancePartnerVo
,
PerformancePartnerVo
.
class
.
getSimpleName
()
);
return
performanceId
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
@Override
public
String
updateStep1
(
PerformanceStep1Param
step1Param
)
{
// 获取 当前时间 -> 创建时间
LocalDateTime
timeNow
=
LocalDateTime
.
now
();
String
performanceId
=
step1Param
.
getPerformancesId
();
try
{
PerformancePartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
data
==
null
||
data
.
getAuditStatus
()
==
null
||
data
.
getAuditStatus
()
==
0
)
{
return
"不可修改"
;
}
step1Param
.
setPerformancesId
(
performanceId
);
PerformancePartnerVo
performancePartnerVo
=
new
PerformancePartnerVo
();
BeanUtils
.
copyProperties
(
step1Param
,
performancePartnerVo
);
performancePartnerVo
.
setCreatedAt
(
timeNow
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performancePartnerVo
.
setUpdatedAt
(
timeNow
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performancePartnerVo
.
setIsSubmit
(
0
);
performancePartnerVo
.
setStatus
(
0
);
performancePartnerVo
.
setNoticeImage
(
dataUtils
.
getBuyNoticeJsonString
(
step1Param
.
getNoticeIds
()));
performancePartnerVo
.
setFieldName
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
performancePartnerVo
.
getFieldId
(),
"name"
));
performancePartnerVo
.
setNoticeImage
(
dataUtils
.
getBuyNoticeJsonString
(
step1Param
.
getNoticeIds
()));
if
(
data
!=
null
)
{
// 有修改记录
performancePartnerVo
.
setIsTrueName
(
data
.
getIsTrueName
());
performancePartnerVo
.
setLimitCount
(
data
.
getLimitCount
());
performancePartnerVo
.
setStatusSell
(
data
.
getStatusSell
());
performancePartnerVo
.
setRoadShowId
(
data
.
getRoadShowId
());
performancePartnerVo
.
setProjectId
(
data
.
getProjectId
());
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
performancePartnerVo
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)).
getQueryObject
(),
object
);
}
else
{
// 无修改记录
KylinPerformanceStatus
statusData
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performanceId"
,
performanceId
));
KylinPerformanceRelations
relationsData
=
performanceRelationsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceRelations
>().
eq
(
"performancesId"
,
performanceId
));
performancePartnerVo
.
setIsTrueName
(
statusData
.
getIsTrueName
());
performancePartnerVo
.
setLimitCount
(
statusData
.
getLimitCount
());
performancePartnerVo
.
setStatusSell
(
statusData
.
getStatusSell
());
performancePartnerVo
.
setRoadShowId
(
relationsData
.
getRoadShowId
());
performancePartnerVo
.
setProjectId
(
relationsData
.
getProjectId
());
mongoTemplate
.
insert
(
performancePartnerVo
,
PerformancePartnerVo
.
class
.
getSimpleName
()
);
}
return
performanceId
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
@Override
public
ResponseDto
<
PerformancePartnerVo
>
getStep1
(
String
performancesId
)
{
PerformancePartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
()
);
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
if
(
data
==
null
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
}
if
(
null
!=
performanceStatus
)
{
data
.
setStatus
(
performanceStatus
.
getStatus
());
}
return
ResponseDto
.
success
(
data
);
}
@Override
public
ResponseDto
<
String
>
step2
(
PerformanceStep2Param
step2Param
)
{
ResponseDto
<
String
>
result
=
null
;
// 无 performancesId 则 创建
if
(
step2Param
.
getPerformancesId
().
isEmpty
())
{
}
else
{
// 获取 create 数据 status = 0 或 无数据 创建
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
step2Param
.
getPerformancesId
()));
if
(
performanceStatus
==
null
||
performanceStatus
.
getStatus
()
==
0
||
performanceStatus
.
getStatus
()
==
4
)
{
result
=
createStep2
(
step2Param
);
}
else
if
(
performanceStatus
.
getStatus
()
==
1
||
performanceStatus
.
getStatus
()
==
3
||
performanceStatus
.
getStatus
()
==
6
||
performanceStatus
.
getStatus
()
==
7
||
performanceStatus
.
getStatus
()
==
8
||
performanceStatus
.
getStatus
()
==
9
)
{
// 修改
result
=
updateStep2
(
step2Param
);
}
else
if
(
performanceStatus
.
getStatus
()
==
10
){
result
=
ResponseDto
.
failure
(
"演出已结束不可修改"
);
}
}
return
result
;
}
@Override
public
ResponseDto
<
String
>
createStep2
(
PerformanceStep2Param
step2Param
)
{
try
{
// 获取 主键id
String
performanceId
=
step2Param
.
getPerformancesId
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
boolean
isExistsSubmit
=
mongoTemplate
.
exists
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
).
and
(
"auditStatus"
).
is
(
0
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
isExistsSubmit
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20112
));
}
//演出修改数据
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"isTrueName"
,
step2Param
.
getIsTrueName
());
map
.
put
(
"limitCount"
,
step2Param
.
getLimitCount
());
map
.
put
(
"createdAt"
,
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
map
.
put
(
"isSubmit"
,
step2Param
.
getIsSubmit
());
map
.
put
(
"statusSell"
,
1
);
// 获取第一步数据
if
(
step2Param
.
getIsSubmit
()
==
1
)
{
// 提交
map
.
put
(
"status"
,
1
);
map
.
put
(
"isCreateSave"
,
0
);
map
.
put
(
"auditStatus"
,
0
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)).
getQueryObject
(),
object
);
//提交 票
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVoList
=
ticketTimesPartnerService
.
getTimesMongoList
(
performanceId
);
for
(
KylinTicketTimesPartnerVo
ticketTimes
:
kylinTicketTimesPartnerVoList
)
{
boolean
boolResult
=
ticketsPartnerService
.
submitTicketByTimes
(
ticketTimes
.
getTicketTimesId
(),
null
);
if
(
boolResult
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20114
));
}
}
if
(
kylinTicketTimesPartnerVoList
.
size
()
<=
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20113
));
}
else
{
KylinPerformanceMisVo
kylinPerformanceMisVo
=
performanceVoTask
.
getPerformanceMisVo
(
performanceId
);
HashMap
<
String
,
Object
>
mapSql
=
new
HashMap
<>();
mapSql
.
put
(
"isCreateSave"
,
0
);
mapSql
.
put
(
"rejectTxt"
,
""
);
mapSql
.
put
(
"status"
,
1
);
mapSql
.
put
(
"updatedAt"
,
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
performanceVoTask
.
createPerformanceMySql
(
performanceId
,
mapSql
,
kylinPerformanceMisVo
,
createdAt
);
KylinPerformances
performances
=
new
KylinPerformances
();
performances
.
setAuditTime
(
LocalDateTime
.
now
());
performancesMapper
.
update
(
performances
,
new
UpdateWrapper
<
KylinPerformances
>().
eq
(
"performances_id"
,
performanceId
));
}
return
ResponseDto
.
success
(
"操作成功"
);
}
else
{
//保存
map
.
put
(
"status"
,
0
);
map
.
put
(
"isCreateSave"
,
1
);
map
.
put
(
"auditStatus"
,
-
1
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)).
getQueryObject
(),
object
);
return
ResponseDto
.
success
(
"保存成功"
);
}
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20115
));
}
}
@Override
public
ResponseDto
<
String
>
updateStep2
(
PerformanceStep2Param
step2Param
)
{
try
{
// 获取 主键id
String
performanceId
=
step2Param
.
getPerformancesId
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
boolean
isExistsSubmit
=
mongoTemplate
.
exists
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
).
and
(
"auditStatus"
).
is
(
0
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
isExistsSubmit
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20112
));
}
//演出修改数据
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"isTrueName"
,
step2Param
.
getIsTrueName
());
map
.
put
(
"limitCount"
,
step2Param
.
getLimitCount
());
map
.
put
(
"createdAt"
,
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
map
.
put
(
"updatedAt"
,
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
map
.
put
(
"isSubmit"
,
step2Param
.
getIsSubmit
());
// 获取第一步数据
if
(
step2Param
.
getIsSubmit
()
==
1
)
{
// 提交
if
(
performanceVoTask
.
judgeIsAudit
(
performanceId
))
{
map
.
put
(
"auditStatus"
,
0
);
map
.
put
(
"status"
,
1
);
}
else
{
map
.
put
(
"auditStatus"
,
1
);
map
.
put
(
"status"
,
9
);
}
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)).
getQueryObject
(),
object
);
//提交 票
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVoList
=
ticketTimesPartnerService
.
getTimesMongoList
(
performanceId
);
for
(
KylinTicketTimesPartnerVo
ticketTimes
:
kylinTicketTimesPartnerVoList
)
{
boolean
boolResult
=
ticketsPartnerService
.
submitTicketByTimes
(
ticketTimes
.
getTicketTimesId
(),
(
int
)
(
map
.
get
(
"status"
)));
if
(
boolResult
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20114
));
}
}
if
(
kylinTicketTimesPartnerVoList
.
size
()
<=
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20113
));
}
else
{
KylinPerformanceMisVo
kylinPerformanceMisVo
=
performanceVoTask
.
getPerformanceMisVo
(
performanceId
);
HashMap
<
String
,
Object
>
mapSql
=
new
HashMap
<>();
mapSql
.
put
(
"rejectTxt"
,
""
);
mapSql
.
put
(
"status"
,
map
.
get
(
"status"
));
mapSql
.
put
(
"updatedAt"
,
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
KylinPerformances
performances
=
new
KylinPerformances
();
performances
.
setAuditTime
(
LocalDateTime
.
now
());
performances
.
setNoticeImage
(
kylinPerformanceMisVo
.
getNoticeImage
());
performancesMapper
.
update
(
performances
,
new
UpdateWrapper
<
KylinPerformances
>().
eq
(
"performances_id"
,
performanceId
));
KylinPerformanceStatus
performanceStatus
=
new
KylinPerformanceStatus
();
performanceStatus
.
setAuditStatus
((
int
)
map
.
get
(
"auditStatus"
));
performanceStatus
.
setIsTrueName
(
step2Param
.
getIsTrueName
());
performanceStatus
.
setLimitCount
(
step2Param
.
getLimitCount
());
performanceStatusMapper
.
update
(
performanceStatus
,
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performanceId
));
//提示:票种价格、售票时间、票种购票限制 直接生效 (演出购票限制,购票须知 演出是否实名 票种缺货登记 票种是否电子票 票种是否快递票 票种最低购买张数 票种是否显示二维码)
List
<
TicketTimesTicketCreatePartnerVo
>
timeList
=
kylinPerformanceMisVo
.
getTicketTimes
();
for
(
TicketTimesTicketCreatePartnerVo
timesItem
:
timeList
)
{
List
<
KylinTicketPartnerVo
>
ticketList
=
timesItem
.
getTicket
();
for
(
KylinTicketPartnerVo
ticketItem
:
ticketList
)
{
//修改 redis库存
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketItem
.
getTicketsId
()
+
":"
+
KylinRedisConst
.
SURPLUS_GENERAL
))
{
KylinTicketStatus
ticketStatus
=
ticketStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketItem
.
getTicketsId
()));
int
changeGeneral
=
ticketItem
.
getTotalGeneral
()
-
ticketStatus
.
getTotalGeneral
();
int
changeExchange
=
ticketItem
.
getTotalExchange
()
-
ticketStatus
.
getTotalExchange
();
log
.
debug
(
"ticketItem.getTotalGeneral() = "
+
ticketItem
.
getTotalGeneral
());
log
.
debug
(
"ticketStatus.getTotalGeneral() = "
+
ticketStatus
.
getTotalGeneral
());
dataUtils
.
changeSurplusGeneral
(
ticketItem
.
getTicketsId
(),
changeGeneral
);
dataUtils
.
changeSurplusExchange
(
ticketItem
.
getTicketsId
(),
changeExchange
);
}
//修改 mysql 库存
KylinTicketStatus
inventory
=
new
KylinTicketStatus
();
inventory
.
setTotalExchange
(
ticketItem
.
getTotalExchange
());
inventory
.
setTotalGeneral
(
ticketItem
.
getTotalGeneral
());
inventory
.
setIsTrueName
(
kylinPerformanceMisVo
.
getIsTrueName
());
inventory
.
setLimitCount
(
ticketItem
.
getLimitCount
());
inventory
.
setIsLackRegister
(
ticketItem
.
getIsLackRegister
());
inventory
.
setIsExpress
(
ticketItem
.
getIsExpress
());
inventory
.
setIsElectronic
(
ticketItem
.
getIsElectronic
());
inventory
.
setCounts
(
ticketItem
.
getCounts
());
inventory
.
setIsShowCode
(
ticketItem
.
getIsShowCode
());
inventory
.
setQrCodeShowTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketItem
.
getQrCodeShowTime
()));
//修改 mysql 售卖时间
KylinTickets
ticketSellTime
=
new
KylinTickets
();
ticketSellTime
.
setTimeEnd
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketItem
.
getTimeEnd
()));
ticketSellTime
.
setTimeStart
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketItem
.
getTimeStart
()));
ticketSellTime
.
setAdvanceMinuteMember
(
null
);
ticketSellTime
.
setPayCountdownMinute
(
kylinPerformanceMisVo
.
getPayCountdownMinute
());
//修改 价格
ticketSellTime
.
setPrice
(
ticketItem
.
getPrice
());
ticketSellTime
.
setPriceDiscountMember
(
null
);
ticketsMapper
.
update
(
ticketSellTime
,
new
UpdateWrapper
<
KylinTickets
>().
eq
(
"tickets_id"
,
ticketItem
.
getTicketsId
()));
//修改 mysql 购票限购
ticketStatusMapper
.
update
(
inventory
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketItem
.
getTicketsId
()));
}
}
performanceVoTask
.
performanceVoStatus
(
performanceId
);
}
return
ResponseDto
.
success
(
"操作完成"
);
}
else
{
//保存
map
.
put
(
"status"
,
0
);
map
.
put
(
"auditStatus"
,
-
1
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)).
getQueryObject
(),
object
);
return
ResponseDto
.
success
(
"保存成功"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20115
));
}
}
@Override
public
ResponseDto
<
PerformanceStep2Param
>
getStep2
(
String
performancesId
)
{
PerformancePartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
()
);
if
(
data
==
null
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
}
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVos
=
ticketTimesPartnerService
.
getTimesMongoList
(
performancesId
);
List
<
TicketTimesTicketCreatePartnerVo
>
ticketTimesTicketCreatePartnerVoList
=
new
ArrayList
<
TicketTimesTicketCreatePartnerVo
>();
for
(
KylinTicketTimesPartnerVo
ticketTimes
:
kylinTicketTimesPartnerVos
)
{
TicketTimesTicketCreatePartnerVo
ticketTimesTicketCreatePartnerVo
=
new
TicketTimesTicketCreatePartnerVo
();
BeanUtils
.
copyProperties
(
ticketTimes
,
ticketTimesTicketCreatePartnerVo
);
List
<
KylinTicketPartnerVo
>
kylinTicketPartnerVos
=
ticketsPartnerService
.
getTicketMongoList
(
ticketTimes
.
getTicketTimesId
());
ticketTimesTicketCreatePartnerVo
.
setTicket
(
kylinTicketPartnerVos
);
ticketTimesTicketCreatePartnerVoList
.
add
(
ticketTimesTicketCreatePartnerVo
);
}
PerformanceStep2Param
performanceStep2Param
=
new
PerformanceStep2Param
();
BeanUtils
.
copyProperties
(
data
,
performanceStep2Param
);
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
if
(
null
!=
performanceStatus
)
{
performanceStep2Param
.
setStatus
(
performanceStatus
.
getStatus
());
}
else
{
performanceStep2Param
.
setStatus
(-
1
);
}
performanceStep2Param
.
setTicketTimes
(
ticketTimesTicketCreatePartnerVoList
);
return
ResponseDto
.
success
(
performanceStep2Param
);
}
@Override
public
ResponseDto
<
String
>
onLinePerformance
(
String
performancesId
)
{
try
{
KylinPerformanceStatus
performanceStatusData
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
if
(!(
performanceStatusData
.
getStatus
()
==
3
||
performanceStatusData
.
getStatus
()
==
7
))
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20110
));
}
// mysql
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinPerformanceStatus
performanceStatusUpdate
=
new
KylinPerformanceStatus
();
performanceStatusUpdate
.
setStatus
(
6
);
performanceStatusUpdate
.
setUpdatedAt
(
updatedAt
);
performanceStatusMapper
.
update
(
performanceStatusUpdate
,
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
//场次
List
<
KylinTicketTimeRelation
>
ticketTimeRelation
=
ticketTimeRelationMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"performance_id"
,
performancesId
)
);
for
(
KylinTicketTimeRelation
ticketTimeRelationItem
:
ticketTimeRelation
)
{
KylinTicketTimes
ticketTimes
=
ticketTimesMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketTimes
>().
eq
(
"ticket_times_id"
,
ticketTimeRelationItem
.
getTimesId
()).
eq
(
"status"
,
1
));
//票
List
<
KylinTicketRelations
>
ticketRelations
=
ticketRelationsMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketRelations
>().
eq
(
"times_id"
,
ticketTimes
.
getTicketTimesId
()));
for
(
KylinTicketRelations
ticketRelationsItem
:
ticketRelations
)
{
KylinTicketStatus
ticketStatusUpdate
=
new
KylinTicketStatus
();
ticketStatusUpdate
.
setStatus
(
9
);
ticketStatusUpdate
.
setUpdatedAt
(
updatedAt
);
ticketStatusMapper
.
update
(
ticketStatusUpdate
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketRelationsItem
.
getTicketId
()).
eq
(
"status"
,
7
));
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
9
);
map
.
put
(
"updatedAt"
,
updatedAt
);
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketRelationsItem
.
getTicketId
()).
and
(
"status"
).
ne
(
7
)).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
))
);
}
}
// 判断状态
performanceVoTask
.
performanceVoStatus
(
performancesId
);
return
ResponseDto
.
success
(
"上线成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20108
));
}
}
@Override
public
ResponseDto
<
String
>
outLinePerformance
(
String
performancesId
)
{
try
{
KylinPerformanceStatus
performanceStatusData
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
if
(
performanceStatusData
.
getStatus
()
>=
3
&&
performanceStatusData
.
getStatus
()
!=
4
&&
performanceStatusData
.
getStatus
()
!=
7
&&
performanceStatusData
.
getStatus
()
!=
10
)
{
//未提审||被拒绝
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinPerformanceStatus
performanceStatus
=
new
KylinPerformanceStatus
();
performanceStatus
.
setStatus
(
7
);
performanceStatus
.
setUpdatedAt
(
updatedAt
);
performanceStatusMapper
.
update
(
performanceStatus
,
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
performanceVoTask
.
performanceVoStatus
(
performancesId
);
// dataUtils.updatePerformanceMongo(performancesId);
return
ResponseDto
.
success
(
"下线成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20111
));
}
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20109
));
}
}
@Override
public
String
copyPerformance
(
String
performancesId
)
{
try
{
PerformancePartnerVo
performancePartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
//复制演出
performancePartnerVo
.
setPerformancesId
(
IDGenerator
.
nextSnowId
().
toString
());
performancePartnerVo
.
setStatus
(
0
);
performancePartnerVo
.
setAuditStatus
(-
1
);
performancePartnerVo
.
setIsCreateSave
(
1
);
mongoTemplate
.
insert
(
performancePartnerVo
,
PerformancePartnerVo
.
class
.
getSimpleName
());
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVos
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
for
(
KylinTicketTimesPartnerVo
timeItem
:
kylinTicketTimesPartnerVos
)
{
//复制场次
String
timesId
=
timeItem
.
getTicketTimesId
();
timeItem
.
setTicketTimesId
(
IDGenerator
.
nextSnowId
().
toString
());
timeItem
.
setPerformancesId
(
performancePartnerVo
.
getPerformancesId
());
mongoTemplate
.
insert
(
timeItem
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
List
<
KylinTicketPartnerVo
>
kylinTicketPartnerVos
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"timesId"
).
is
(
timesId
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
for
(
KylinTicketPartnerVo
ticketItem
:
kylinTicketPartnerVos
)
{
//复制票
ticketItem
.
setStatus
(
0
);
ticketItem
.
setTimesId
(
timeItem
.
getTicketTimesId
());
ticketItem
.
setTicketsId
(
IDGenerator
.
nextSnowId
().
toString
());
mongoTemplate
.
insert
(
ticketItem
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
}
}
return
performancePartnerVo
.
getPerformancesId
();
}
catch
(
Exception
e
)
{
return
null
;
}
}
@Override
public
ResponseDto
<
PageInfo
<
PerformancePartnerListDao
>>
getList
(
PerformancePartnerListParam
performancePartnerListParam
)
{
int
status
=
performancePartnerListParam
.
getStatus
();
int
page
=
performancePartnerListParam
.
getPage
()
-
1
;
int
size
=
performancePartnerListParam
.
getSize
();
PageInfo
<
PerformancePartnerListDao
>
pageInfoTmp
=
null
;
if
(
status
==
0
)
{
//未发布演出
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
page
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
//条件
Criteria
criteria
=
Criteria
.
where
(
"status"
).
is
(
status
).
and
(
"isCreateSave"
).
is
(
1
);
if
(!
performancePartnerListParam
.
getTitle
().
isEmpty
())
{
criteria
.
and
(
"title"
).
regex
(
".*?\\"
+
performancePartnerListParam
.
getTitle
());
}
Query
query
=
Query
.
query
(
criteria
);
// 查询总数
long
count
=
mongoTemplate
.
count
(
query
,
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
List
<
PerformancePartnerVo
>
performancePartnerVo
=
mongoTemplate
.
find
(
query
,
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
query
.
with
(
pageable
);
//处理Vo
List
<
KylinPerformancePartnerListVo
>
voList
=
new
ArrayList
<>();
for
(
PerformancePartnerVo
item
:
performancePartnerVo
)
{
KylinPerformancePartnerListVo
voData
=
new
KylinPerformancePartnerListVo
();
voData
.
setStatus0Data
(
item
);
voList
.
add
(
voData
);
}
pageInfoTmp
=
new
PageInfo
(
voList
);
pageInfoTmp
.
setTotal
(
count
);
}
else
{
//演出列表
try
{
PageHelper
.
startPage
(
performancePartnerListParam
.
getPage
(),
performancePartnerListParam
.
getSize
());
List
<
PerformancePartnerListDao
>
voList
=
performancesMapper
.
partnerPerformanceList
(
BeanUtil
.
convertBeanToMap
(
performancePartnerListParam
));
for
(
int
i
=
0
;
i
<
voList
.
size
();
i
++)
{
PerformancePartnerListDao
vo
=
voList
.
get
(
i
);
if
(
vo
.
getStatus
()
>=
6
&&
vo
.
getStatus
()
!=
7
)
{
if
(
DateUtil
.
compareStrDay
(
vo
.
getTimeSell
(),
DateUtil
.
getNowTime
())
>
0
)
{
//未开始
vo
.
setStatus
(
9
);
}
else
if
(
DateUtil
.
compareStrDay
(
vo
.
getTimeStop
(),
DateUtil
.
getNowTime
())
<
0
)
{
//已结束
vo
.
setStatus
(
10
);
}
else
{
vo
.
setStatus
(
6
);
}
}
}
pageInfoTmp
=
new
PageInfo
(
voList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
}
}
return
ResponseDto
.
success
(
pageInfoTmp
);
}
@Override
public
ResponseDto
<
String
>
withdraw
(
String
performancesId
)
{
try
{
//mysql auditStatus
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
if
(
performanceStatus
!=
null
&&
performanceStatus
.
getAuditStatus
()
==
0
)
{
KylinPerformanceStatus
data1
=
new
KylinPerformanceStatus
();
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
performanceStatus
.
getStatus
()
>=
3
)
{
//通过审核
data1
.
setAuditStatus
(
1
);
data1
.
setStatus
(
null
);
map
.
put
(
"auditStatus"
,
1
);
}
else
if
(
performanceStatus
.
getStatus
()
==
4
||
performanceStatus
.
getStatus
()
==
1
)
{
//未通过审核
data1
.
setAuditStatus
(-
1
);
data1
.
setStatus
(
0
);
map
.
put
(
"auditStatus"
,
-
1
);
map
.
put
(
"status"
,
0
);
}
else
{
data1
.
setAuditStatus
(
2
);
data1
.
setStatus
(
null
);
map
.
put
(
"auditStatus"
,
2
);
}
performanceStatusMapper
.
update
(
data1
,
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
PerformancePartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)).
getQueryObject
(),
object
);
return
ResponseDto
.
success
(
"撤回成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20116
));
}
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20117
));
}
}
@Override
public
List
<
PerformanceOrderStatisticalVo
>
getPerformanceOrderStatisticalList
(
String
performancesId
)
{
PerformanceOrderStatisticalDao
countBean
=
new
PerformanceOrderStatisticalDao
();
countBean
.
setTitle
(
"总计:"
);
List
<
PerformanceOrderStatisticalVo
>
voList
=
new
ArrayList
<>();
List
<
PerformanceOrderStatisticalDao
>
dtoList
=
performancesMapper
.
getPerformanceOrderStatisticalList
(
performancesId
);
dtoList
.
forEach
(
dto
->
{
PerformanceOrderStatisticalVo
vo
=
new
PerformanceOrderStatisticalVo
();
BeanUtil
.
copy
(
dto
,
vo
);
voList
.
add
(
vo
);
countBean
.
setTotalGeneral
(
countBean
.
getTotalGeneral
().
add
(
dto
.
getTotalGeneral
()));
countBean
.
setSaleGeneral
(
countBean
.
getSaleGeneral
().
add
(
dto
.
getSaleGeneral
()));
countBean
.
setSurplusGeneral
(
countBean
.
getSurplusGeneral
().
add
(
dto
.
getSurplusGeneral
()));
countBean
.
setTotalSalePrice
(
countBean
.
getTotalSalePrice
().
add
(
dto
.
getTotalSalePrice
()));
countBean
.
setTotalExchange
(
countBean
.
getTotalExchange
().
add
(
dto
.
getTotalExchange
()));
countBean
.
setTotalRefundGeneral
(
countBean
.
getTotalRefundGeneral
().
add
(
dto
.
getTotalRefundGeneral
()));
countBean
.
setTotalRefundPrice
(
countBean
.
getTotalRefundPrice
().
add
(
dto
.
getTotalRefundPrice
()));
countBean
.
setTotalMemberNumber
(
countBean
.
getTotalMemberNumber
().
add
(
dto
.
getTotalMemberNumber
()));
countBean
.
setTotalPayingNumber
(
countBean
.
getTotalPayingNumber
().
add
(
dto
.
getTotalPayingNumber
()));
countBean
.
setTotalBuyUsers
(
dto
.
getTotalBuyUsers
());
});
PerformanceOrderStatisticalVo
vo
=
new
PerformanceOrderStatisticalVo
();
BeanUtil
.
copy
(
countBean
,
vo
);
voList
.
add
(
vo
);
return
voList
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinTicketTimesPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo
;
import
com.liquidnet.service.kylin.entity.KylinPerformanceStatus
;
import
com.liquidnet.service.kylin.entity.KylinTicketTimeRelation
;
import
com.liquidnet.service.kylin.entity.KylinTicketTimes
;
import
com.liquidnet.service.kylin.mapper.KylinPerformanceStatusMapper
;
import
com.liquidnet.service.kylin.mapper.KylinTicketTimeRelationMapper
;
import
com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper
;
import
com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.model.FindOneAndUpdateOptions
;
import
com.mongodb.client.model.ReturnDocument
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.beans.BeanUtils
;
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
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 场次 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public
class
KylinTicketTimesPartnerServiceImpl
extends
ServiceImpl
<
KylinTicketTimesMapper
,
KylinTicketTimes
>
implements
IKylinTicketTimesPartnerService
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinPerformanceStatusMapper
performanceStatusMapper
;
@Override
public
ResponseDto
<
KylinTicketTimesPartnerVo
>
createTimesSummary
(
CreateTicketTimesParam
createTicketTimesParam
)
{
ResponseDto
<
KylinTicketTimesPartnerVo
>
ticketTimesPartnerVo
=
null
;
//获取演出状态
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
createTicketTimesParam
.
getPerformancesId
()));
if
(
null
==
performanceStatus
)
{
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
}
else
if
(
performanceStatus
.
getAuditStatus
()==
0
){
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
ticketTimesPartnerVo
=
addNewTimes
(
createTicketTimesParam
);
}
else
{
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
}
return
ticketTimesPartnerVo
;
}
@Override
public
ResponseDto
<
KylinTicketTimesPartnerVo
>
createTimes
(
CreateTicketTimesParam
createTicketTimesParam
)
{
try
{
// 获取 主键id
String
ticketTimesId
=
IDGenerator
.
nextSnowId
().
toString
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
// 标题
String
title
=
""
;
String
useStart
;
String
useEnd
;
if
(
createTicketTimesParam
.
getType
()
==
1
)
{
useStart
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
useEnd
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
title
=
useStart
;
}
else
{
useStart
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
useEnd
=
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
title
=
useStart
+
"-"
+
useEnd
;
}
// mongo 操作
KylinTicketTimesPartnerVo
kylinTicketTimesPartnerVo
=
new
KylinTicketTimesPartnerVo
();
kylinTicketTimesPartnerVo
.
setTicketTimesId
(
ticketTimesId
);
kylinTicketTimesPartnerVo
.
setUseStart
(
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
if
(
createTicketTimesParam
.
getType
()
==
2
)
{
kylinTicketTimesPartnerVo
.
setUseEnd
(
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
else
{
kylinTicketTimesPartnerVo
.
setUseEnd
(
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
kylinTicketTimesPartnerVo
.
setStatus
(
1
);
kylinTicketTimesPartnerVo
.
setTitle
(
title
);
kylinTicketTimesPartnerVo
.
setPerformancesId
(
createTicketTimesParam
.
getPerformancesId
());
kylinTicketTimesPartnerVo
.
setType
(
createTicketTimesParam
.
getType
());
kylinTicketTimesPartnerVo
.
setCreatedAt
(
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
mongoTemplate
.
insert
(
kylinTicketTimesPartnerVo
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
()
);
return
ResponseDto
.
success
(
kylinTicketTimesPartnerVo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20105
));
}
}
@Override
public
ResponseDto
<
KylinTicketTimesPartnerVo
>
addNewTimes
(
CreateTicketTimesParam
createTicketTimesParam
)
{
try
{
// 获取 主键id
String
ticketTimesId
=
IDGenerator
.
nextSnowId
().
toString
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
// 标题
String
title
=
""
;
String
useStart
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
String
useEnd
=
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
if
(
createTicketTimesParam
.
getType
()
==
1
)
{
if
(!
useStart
.
split
(
" "
)[
0
].
equals
(
useEnd
.
split
(
" "
)[
0
])){
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20118
));
}
title
=
useStart
;
}
else
{
title
=
useStart
+
"-"
+
useEnd
;
}
// mongo 操作
KylinTicketTimesPartnerVo
kylinTicketTimesPartnerVo
=
new
KylinTicketTimesPartnerVo
();
kylinTicketTimesPartnerVo
.
setTicketTimesId
(
ticketTimesId
);
kylinTicketTimesPartnerVo
.
setUseStart
(
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketTimesPartnerVo
.
setUseEnd
(
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketTimesPartnerVo
.
setStatus
(-
1
);
kylinTicketTimesPartnerVo
.
setTitle
(
title
);
kylinTicketTimesPartnerVo
.
setPerformancesId
(
createTicketTimesParam
.
getPerformancesId
());
kylinTicketTimesPartnerVo
.
setType
(
createTicketTimesParam
.
getType
());
kylinTicketTimesPartnerVo
.
setCreatedAt
(
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
mongoTemplate
.
insert
(
kylinTicketTimesPartnerVo
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
()
);
return
ResponseDto
.
success
(
kylinTicketTimesPartnerVo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
}
@Override
public
ResponseDto
<
String
>
deleteTimes
(
String
ticketTimesId
)
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinTicketTimesPartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketTimesId
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
if
(
data
.
getStatus
()
==
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20106
));
}
KylinTicketTimeRelation
ticketTimeRelation
=
ticketTimeRelationMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"times_id"
,
ticketTimesId
));
if
(
ticketTimeRelation
!=
null
)
{
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
ticketTimeRelation
.
getPerformanceId
()));
if
(
performanceStatus
.
getAuditStatus
()==
0
){
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
if
(
performanceStatus
.
getStatus
()
==
0
||
performanceStatus
.
getStatus
()
==
4
)
{
//未提审||被拒绝
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"updatedAt"
,
updatedAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
map
.
put
(
"status"
,
0
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
Document
doc
=
mongoTemplate
.
getCollection
(
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketTimesId
)).
getQueryObject
(),
object
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
return
ResponseDto
.
success
(
"删除成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20106
));
}
}
else
{
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketTimesId
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
return
ResponseDto
.
success
();
}
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20102
));
}
}
@Override
public
ResponseDto
<
KylinTicketTimesPartnerVo
>
changeTimes
(
CreateTicketTimesParam
createTicketTimesParam
)
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
String
title
=
""
;
if
(
createTicketTimesParam
.
getType
()
==
1
)
{
title
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
}
else
{
title
=
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
))
+
"-"
+
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
));
}
createTicketTimesParam
.
setTitle
(
title
);
// mongo 操作
KylinTicketTimesPartnerVo
kylinTicketTimesPartnerVo
=
new
KylinTicketTimesPartnerVo
();
BeanUtils
.
copyProperties
(
createTicketTimesParam
,
kylinTicketTimesPartnerVo
);
kylinTicketTimesPartnerVo
.
setTicketTimesId
(
createTicketTimesParam
.
getTicketTimesId
());
kylinTicketTimesPartnerVo
.
setUpdatedAt
(
updatedAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketTimesPartnerVo
.
setUseStart
(
createTicketTimesParam
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketTimesPartnerVo
.
setUseEnd
(
createTicketTimesParam
.
getUseEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketTimesPartnerVo
.
setStatus
(
null
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinTicketTimesPartnerVo
)));
Document
doc
=
mongoTemplate
.
getCollection
(
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
createTicketTimesParam
.
getTicketTimesId
())).
getQueryObject
(),
object
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
return
ResponseDto
.
success
(
JsonUtils
.
fromJson
(
doc
.
toJson
(),
KylinTicketTimesPartnerVo
.
class
));
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20103
));
}
}
@Override
public
List
<
KylinTicketTimesPartnerVo
>
getTimesMongoList
(
String
performancesId
)
{
return
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
).
and
(
"status"
).
ne
(
0
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
}
@Override
public
KylinTicketTimesPartnerVo
getTimesMongo
(
String
timesId
)
{
return
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
timesId
).
and
(
"status"
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/impl/KylinTicketsPartnerServiceImpl.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.dto.param.TicketCreateParam
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
com.liquidnet.service.kylin.partner.utils.PerformanceVoTask
;
import
com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.model.FindOneAndUpdateOptions
;
import
com.mongodb.client.model.ReturnDocument
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.beans.BeanUtils
;
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
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public
class
KylinTicketsPartnerServiceImpl
extends
ServiceImpl
<
KylinTicketsMapper
,
KylinTickets
>
implements
IKylinTicketsPartnerService
{
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
KylinPerformanceStatusMapper
performanceStatusMapper
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinTicketStatusMapper
ticketStatusMapper
;
@Autowired
private
KylinTicketRelationsMapper
ticketRelationsMapper
;
@Autowired
private
PerformanceVoTask
performanceVoTask
;
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
createTicketSummary
(
TicketCreateParam
ticketCreateParam
)
{
ResponseDto
<
KylinTicketPartnerVo
>
ticketPartnerVo
=
null
;
//获取演出状态
KylinTicketTimesPartnerVo
timesPartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
if
(
null
!=
timesPartnerVo
)
{
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
timesPartnerVo
.
getPerformancesId
()));
if
(
null
==
performanceStatus
)
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
ticketPartnerVo
=
addNewTicket
(
ticketCreateParam
);
}
else
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
}
}
else
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
}
return
ticketPartnerVo
;
}
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
createTicket
(
TicketCreateParam
ticketCreateParam
)
{
try
{
// 获取 主键id
String
ticketsId
=
IDGenerator
.
nextSnowId
().
toString
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
ticketCreateParam
.
setTicketsId
(
ticketsId
);
// mongo 操作
KylinTicketPartnerVo
kylinTicketPartnerVo
=
new
KylinTicketPartnerVo
();
BeanUtils
.
copyProperties
(
ticketCreateParam
,
kylinTicketPartnerVo
);
kylinTicketPartnerVo
.
setTicketsId
(
ticketsId
);
kylinTicketPartnerVo
.
setCreatedAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
createdAt
));
kylinTicketPartnerVo
.
setTimeStart
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
ticketCreateParam
.
getTimeStart
()));
kylinTicketPartnerVo
.
setTimeEnd
(
ticketCreateParam
.
getTimeEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
KylinTicketTimesPartnerVo
kylinTicketTimesPartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
kylinTicketPartnerVo
.
setUseStart
(
kylinTicketTimesPartnerVo
.
getUseStart
());
kylinTicketPartnerVo
.
setUseEnd
(
kylinTicketTimesPartnerVo
.
getUseEnd
());
kylinTicketPartnerVo
.
setType
(
kylinTicketTimesPartnerVo
.
getType
());
kylinTicketPartnerVo
.
setStatus
(
0
);
kylinTicketPartnerVo
.
setDefault
();
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeExpress
(
ticketCreateParam
.
getDescribeExpress
()==
null
?
""
:
ticketCreateParam
.
getDescribeExpress
());
}
else
{
kylinTicketPartnerVo
.
setDescribeExpress
(
""
);
}
if
(
ticketCreateParam
.
getIsElectronic
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeElectronic
(
ticketCreateParam
.
getDescribeElectronic
()==
null
?
""
:
ticketCreateParam
.
getDescribeElectronic
());
}
else
{
kylinTicketPartnerVo
.
setDescribeElectronic
(
""
);
}
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setTimeEndExpress
(
ticketCreateParam
.
getTimeEndExpress
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
if
(
ticketCreateParam
.
getIsShowCode
()
==
1
)
{
kylinTicketPartnerVo
.
setQrCodeShowTime
(
ticketCreateParam
.
getQrCodeShowTime
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
KylinTicketPartnerVo
data
=
mongoTemplate
.
insert
(
kylinTicketPartnerVo
,
KylinTicketPartnerVo
.
class
.
getSimpleName
()
);
return
ResponseDto
.
success
(
kylinTicketPartnerVo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20105
));
}
}
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
addNewTicket
(
TicketCreateParam
ticketCreateParam
)
{
try
{
// 获取 主键id
String
ticketsId
=
IDGenerator
.
nextSnowId
().
toString
();
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
ticketCreateParam
.
setTicketsId
(
ticketsId
);
// mongo 操作
KylinTicketPartnerVo
kylinTicketPartnerVo
=
new
KylinTicketPartnerVo
();
BeanUtils
.
copyProperties
(
ticketCreateParam
,
kylinTicketPartnerVo
);
kylinTicketPartnerVo
.
setTicketsId
(
ticketsId
);
kylinTicketPartnerVo
.
setCreatedAt
(
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTimeStart
(
ticketCreateParam
.
getTimeStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTimeEnd
(
ticketCreateParam
.
getTimeEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
KylinTicketTimesPartnerVo
kylinTicketTimesPartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
kylinTicketPartnerVo
.
setUseStart
(
kylinTicketTimesPartnerVo
.
getUseStart
());
kylinTicketPartnerVo
.
setUseEnd
(
kylinTicketTimesPartnerVo
.
getUseEnd
());
kylinTicketPartnerVo
.
setType
(
kylinTicketTimesPartnerVo
.
getType
());
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeExpress
(
ticketCreateParam
.
getDescribeExpress
()==
null
?
""
:
ticketCreateParam
.
getDescribeExpress
());
}
else
{
kylinTicketPartnerVo
.
setDescribeExpress
(
""
);
}
if
(
ticketCreateParam
.
getIsElectronic
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeElectronic
(
ticketCreateParam
.
getDescribeElectronic
()==
null
?
""
:
ticketCreateParam
.
getDescribeElectronic
());
}
else
{
kylinTicketPartnerVo
.
setDescribeElectronic
(
""
);
}
kylinTicketPartnerVo
.
setStatus
(-
2
);
kylinTicketPartnerVo
.
setDefault
();
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setTimeEndExpress
(
ticketCreateParam
.
getTimeEndExpress
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
if
(
ticketCreateParam
.
getIsShowCode
()
==
1
)
{
kylinTicketPartnerVo
.
setQrCodeShowTime
(
ticketCreateParam
.
getQrCodeShowTime
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
KylinTicketPartnerVo
data
=
mongoTemplate
.
insert
(
kylinTicketPartnerVo
,
KylinTicketPartnerVo
.
class
.
getSimpleName
()
);
return
ResponseDto
.
success
(
kylinTicketPartnerVo
);
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
}
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
updateTicket
(
TicketCreateParam
ticketCreateParam
)
{
try
{
KylinTicketTimesPartnerVo
ticketTimeRelation
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
PerformancePartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
ticketTimeRelation
.
getPerformancesId
())),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
data
==
null
||
data
.
getAuditStatus
()
==
null
||
data
.
getAuditStatus
()
==
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20112"
));
}
String
ticketId
=
ticketCreateParam
.
getTicketsId
();
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
// mongo 操作
KylinTicketPartnerVo
kylinTicketPartnerVo
=
new
KylinTicketPartnerVo
();
BeanUtils
.
copyProperties
(
ticketCreateParam
,
kylinTicketPartnerVo
);
kylinTicketPartnerVo
.
setUpdatedAt
(
updatedAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTimeStart
(
ticketCreateParam
.
getTimeStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTimeEnd
(
ticketCreateParam
.
getTimeEnd
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTimesId
(
null
);
kylinTicketPartnerVo
.
setStatus
(
null
);
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeExpress
(
ticketCreateParam
.
getDescribeExpress
()==
null
?
""
:
ticketCreateParam
.
getDescribeExpress
());
}
if
(
ticketCreateParam
.
getIsElectronic
()
==
1
)
{
kylinTicketPartnerVo
.
setDescribeElectronic
(
ticketCreateParam
.
getDescribeElectronic
()==
null
?
""
:
ticketCreateParam
.
getDescribeElectronic
());
}
kylinTicketPartnerVo
.
setDefault
();
if
(
ticketCreateParam
.
getIsExpress
()
==
1
)
{
kylinTicketPartnerVo
.
setTimeEndExpress
(
ticketCreateParam
.
getTimeEndExpress
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
if
(
ticketCreateParam
.
getIsShowCode
()
==
1
)
{
kylinTicketPartnerVo
.
setQrCodeShowTime
(
ticketCreateParam
.
getQrCodeShowTime
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
}
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
kylinTicketPartnerVo
));
Document
doc
=
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketId
)).
getQueryObject
(),
object
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
KylinTicketPartnerVo
kylinTicketPartnerVoData
=
JsonUtils
.
fromJson
(
doc
.
toJson
(),
KylinTicketPartnerVo
.
class
);
return
ResponseDto
.
success
(
kylinTicketPartnerVoData
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20103
));
}
}
@Override
public
ResponseDto
<
String
>
deleteTicket
(
String
ticketsId
)
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinTicketRelations
ticketRelations
=
ticketRelationsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketRelations
>().
eq
(
"ticket_id"
,
ticketsId
));
if
(
ticketRelations
==
null
)
{
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
return
ResponseDto
.
success
(
"删除成功"
);
}
KylinTicketTimeRelation
ticketTimeRelation
=
ticketTimeRelationMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"times_id"
,
ticketRelations
.
getTimesId
()));
PerformancePartnerVo
data
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
ticketTimeRelation
.
getPerformanceId
())),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
data
==
null
||
data
.
getAuditStatus
()
==
null
||
data
.
getAuditStatus
()
==
0
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20106"
));
}
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
ticketTimeRelation
.
getPerformanceId
()));
if
(
performanceStatus
.
getStatus
()
==
0
||
performanceStatus
.
getStatus
()
==
4
)
{
//未提审||被拒绝
// mongo 操作
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"updatedAt"
,
updatedAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
map
.
put
(
"status"
,
-
1
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
Document
doc
=
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)).
getQueryObject
(),
object
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
return
ResponseDto
.
success
(
"删除成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20106
));
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20102
));
}
}
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
copyTicket
(
String
performanceId
,
String
ticketsId
)
{
try
{
// 获取 当前时间 -> 创建时间
LocalDateTime
createdAt
=
LocalDateTime
.
now
();
PerformancePartnerVo
performancePartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
performancePartnerVo
.
getAuditStatus
()
==
0
||
performancePartnerVo
.
getAuditStatus
()
==
1
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20107
));
}
KylinTicketPartnerVo
kylinTicketPartnerVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
kylinTicketPartnerVo
.
setCreatedAt
(
createdAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
kylinTicketPartnerVo
.
setTicketsId
(
IDGenerator
.
nextSnowId
().
toString
());
KylinTicketPartnerVo
data
=
mongoTemplate
.
insert
(
kylinTicketPartnerVo
,
KylinTicketPartnerVo
.
class
.
getSimpleName
()
);
return
ResponseDto
.
success
(
kylinTicketPartnerVo
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20107
));
}
}
@Override
public
boolean
submitTicketByTimes
(
String
timesId
,
Integer
status
)
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
null
==
status
)
{
map
.
put
(
"status"
,
1
);
}
else
{
map
.
put
(
"status"
,
status
);
}
map
.
put
(
"updatedAt"
,
updatedAt
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"timesId"
).
is
(
timesId
).
and
(
"status"
).
nin
(-
2
,
7
)).
getQueryObject
(),
object
);
long
count
=
mongoTemplate
.
count
(
Query
.
query
(
Criteria
.
where
(
"timesId"
).
is
(
timesId
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
()
);
return
count
<=
0
;
}
@Override
public
List
<
KylinTicketPartnerVo
>
getTicketMongoList
(
String
timesId
)
{
return
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"timesId"
).
is
(
timesId
).
and
(
"status"
).
ne
(-
1
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
}
@Override
public
KylinTicketPartnerVo
getTicketsMongo
(
String
ticketsId
)
{
return
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
}
@Override
public
ResponseDto
<
String
>
onLine
(
String
ticketsId
,
String
performancesId
)
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinTicketStatus
ticketStatus
=
ticketStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketsId
));
if
(
ticketStatus
.
getStatus
()
>=
3
&&
ticketStatus
.
getStatus
()
!=
4
&&
ticketStatus
.
getStatus
()
!=
6
)
{
//未提审||被拒绝
//mysql
KylinTicketStatus
changeStatus
=
new
KylinTicketStatus
();
changeStatus
.
setUpdatedAt
(
updatedAt
);
changeStatus
.
setStatus
(
9
);
ticketStatusMapper
.
update
(
changeStatus
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketsId
));
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
9
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)).
getQueryObject
(),
object
);
performanceVoTask
.
performanceVoStatus
(
performancesId
);
return
ResponseDto
.
success
(
"上线成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20110
));
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20108
));
}
}
@Override
public
ResponseDto
<
String
>
outLine
(
String
ticketsId
,
String
performancesId
)
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
KylinTicketStatus
ticketStatus
=
ticketStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketsId
));
if
(
ticketStatus
.
getStatus
()
>=
3
&&
ticketStatus
.
getStatus
()
!=
4
&&
ticketStatus
.
getStatus
()
!=
7
)
{
//未提审||被拒绝
//mysql
KylinTicketStatus
changeStatus
=
new
KylinTicketStatus
();
changeStatus
.
setUpdatedAt
(
updatedAt
);
changeStatus
.
setStatus
(
7
);
ticketStatusMapper
.
update
(
changeStatus
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketsId
));
// mongo 操作
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
7
);
BasicDBObject
object
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketsId
)).
getQueryObject
(),
object
);
performanceVoTask
.
performanceVoStatus
(
performancesId
);
return
ResponseDto
.
success
(
"下线成功"
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20111
));
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20109
));
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/utils/DataUtils.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
utils
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.*
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo
;
import
com.liquidnet.service.kylin.entity.KylinBuyNotice
;
import
com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
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.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.regex.Pattern
;
@Component
public
class
DataUtils
{
@Autowired
private
KylinBuyNoticeMapper
buyNoticeMapper
;
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
MongoVoUtils
mongoVoUtils
;
@Autowired
private
RedisTemplate
redisTemplate
;
/**
* 根据 购票须知 id 获取 购票须知文案
*
* @param buyNoticeIds 购票须知 数组
* @return 购票须知 json串
*/
public
String
getBuyNoticeJsonString
(
List
<
String
>
buyNoticeIds
)
{
List
<
KylinBuyNotice
>
data
=
buyNoticeMapper
.
selectList
(
new
UpdateWrapper
<
KylinBuyNotice
>().
in
(
"buy_notice_id"
,
buyNoticeIds
));
return
JsonUtils
.
toJson
(
data
);
}
/**
* 初始化普通库存
*
* @param ticketId 票id
* @param totalGeneral 普通库存
*/
public
void
setSurplusGeneral
(
String
ticketId
,
int
totalGeneral
)
{
redisUtil
.
set
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_GENERAL
,
totalGeneral
);
}
/**
* 获取普通剩余库存
*
* @param ticketId 票id
* @return 普通剩余库存
*/
public
int
getSurplusGeneral
(
String
ticketId
)
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_GENERAL
);
}
/**
* 修改普通库存 并 返回修改后的数量
*
* @param ticketId 票id
* @param surplusGeneral 普通库存
* @return 普通剩余库存
*/
public
int
changeSurplusGeneral
(
String
ticketId
,
int
surplusGeneral
)
{
if
(
surplusGeneral
>
0
)
{
return
(
int
)
redisUtil
.
incr
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_GENERAL
,
surplusGeneral
);
}
else
{
return
(
int
)
redisUtil
.
decr
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_GENERAL
,
Math
.
abs
(
surplusGeneral
));
}
}
/**
* 判断 当前库存是否售罄
*
* @param ticketId 票id
* @return boolean
*/
public
boolean
ticketIsSoldOut
(
String
ticketId
)
{
if
(
0
>=
getSurplusGeneral
(
ticketId
))
{
return
true
;
}
else
{
return
false
;
}
}
/**
* 初始化兑换库存
*
* @param ticketId 票id
* @param totalExchange 兑换库存
*/
public
void
setSurplusExchange
(
String
ticketId
,
int
totalExchange
)
{
redisUtil
.
set
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_EXCHANGE
,
totalExchange
);
}
/**
* 获取兑换剩余库存
*
* @param ticketId 票id
* @return 兑换剩余库存
*/
public
int
getSurplusExchange
(
String
ticketId
)
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_EXCHANGE
);
}
/**
* 变更兑换库存 并 返回 修改后的数量
*
* @param ticketId 票id
* @param surplusExchange 普通库存
* @return 兑换剩余库存
*/
public
int
changeSurplusExchange
(
String
ticketId
,
int
surplusExchange
)
{
if
(
surplusExchange
>
0
)
{
return
(
int
)
redisUtil
.
incr
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_EXCHANGE
,
surplusExchange
);
}
else
{
return
(
int
)
redisUtil
.
decr
(
KylinRedisConst
.
PERFORMANCES_INVENTORY
+
ticketId
+
":"
+
KylinRedisConst
.
SURPLUS_EXCHANGE
,
Math
.
abs
(
surplusExchange
));
}
}
public
void
setOrderList
(
String
userId
,
List
<
KylinOrderListVo
>
vo
)
{
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
vo
);
}
public
List
<
KylinOrderListVo
>
getOrderList
(
String
userId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
ORDER_LIST
+
userId
))
{
}
else
{
List
<
KylinOrderListVo
>
voList
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"userId"
).
is
(
userId
))
.
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
)).
limit
(
40
),
KylinOrderListVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
voList
);
}
return
(
List
<
KylinOrderListVo
>)
redisUtil
.
get
(
KylinRedisConst
.
ORDER_LIST
+
userId
);
}
/**
* 根据订单id 获取 订单vo 详情
*
* @param orderId
* @return
*/
public
KylinOrderTicketVo
getOrderTicketVo
(
String
orderId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
ORDER
+
orderId
))
{
}
else
{
KylinOrderTicketVo
ticketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderId
)),
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
List
<
KylinOrderTicketEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderId"
).
is
(
orderId
)),
KylinOrderTicketEntitiesVo
.
class
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
ticketData
.
setEntitiesVoList
(
kylinOrderTicketEntitiesVoList
);
redisUtil
.
set
(
KylinRedisConst
.
ORDER
+
orderId
,
ticketData
);
}
return
(
KylinOrderTicketVo
)
redisUtil
.
get
(
KylinRedisConst
.
ORDER
+
orderId
);
}
/**
* 删除订单redis
*
* @param orderId
*/
public
void
delOrderTicketRedis
(
String
orderId
)
{
redisUtil
.
del
(
KylinRedisConst
.
ORDER
+
orderId
);
}
/**
* 获取 验票账号 vo
*
* @param checkUserId
* @return
*/
public
KylinCheckUserVo
getCheckUserVo
(
String
checkUserId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
CHECK_USER
+
checkUserId
))
{
}
else
{
KylinCheckUserVo
ticketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
checkUserId
)),
KylinCheckUserVo
.
class
,
KylinCheckUserVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
KylinRedisConst
.
CHECK_USER
+
checkUserId
,
ticketData
);
}
return
(
KylinCheckUserVo
)
redisUtil
.
get
(
KylinRedisConst
.
CHECK_USER
+
checkUserId
);
}
/**
* 删除 验票账号 redis
*
* @param checkUserId
*/
public
void
delCheckUserRedis
(
String
checkUserId
)
{
redisUtil
.
del
(
KylinRedisConst
.
CHECK_USER
+
checkUserId
);
}
/**
* 获取 验票账号关系 vo
*
* @param checkUserId
* @return
*/
public
KylinCheckUserPerformanceVo
getCheckUserRelationVo
(
String
checkUserId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
CHECK_USER_RELATION
+
checkUserId
))
{
}
else
{
KylinCheckUserPerformanceVo
ticketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"checkUserId"
).
is
(
checkUserId
)),
KylinCheckUserPerformanceVo
.
class
,
KylinCheckUserPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
KylinRedisConst
.
CHECK_USER_RELATION
+
checkUserId
,
ticketData
);
}
return
(
KylinCheckUserPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
CHECK_USER_RELATION
+
checkUserId
);
}
/**
* 删除 验票账号关系 vo
*
* @param checkUserId
*/
public
void
delCheckUserRelationRedis
(
String
checkUserId
)
{
redisUtil
.
del
(
KylinRedisConst
.
CHECK_USER_RELATION
+
checkUserId
);
}
/**
* 获取入场须知
*
* @param enterInfoId
* @return
*/
public
String
getEnterInfo
(
String
enterInfoId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
ENTER_INFO
+
enterInfoId
))
{
}
else
{
return
"入场须知"
;
}
return
(
String
)
redisUtil
.
get
(
KylinRedisConst
.
ENTER_INFO
+
enterInfoId
);
}
public
void
updatePerformanceMongo
(
String
performanceIds
,
KylinPerformanceVo
paramVo
)
{
//查询 mysql 数据
KylinPerformanceVo
vo
;
if
(
null
==
paramVo
)
{
vo
=
mongoVoUtils
.
combinePerformanceVoData
(
performanceIds
);
}
else
{
vo
=
paramVo
;
}
if
(
vo
!=
null
)
{
try
{
//删除 mongo数据
mongoTemplate
.
remove
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceIds
)),
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
try
{
//新增 mongo数据
mongoTemplate
.
insert
(
vo
,
KylinPerformanceVo
.
class
.
getSimpleName
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
try
{
//删除redis
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES
+
performanceIds
);
// 大龙相关 演出列表
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_LIST_CITYNAME
+
vo
.
getCityName
());
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_ROADLIST
+
vo
.
getRoadShowId
());
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_LIST_SYSTEM_RECOMMEND
);
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_LIST_RECOMMEND
);
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_LIST_NOTICE
);
redisUtil
.
del
(
KylinRedisConst
.
PERFORMANCES_LIST_EXCLUSIVE
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
else
{
System
.
out
.
println
(
"创建Vo异常"
);
}
}
/**
* @param performanceId 演出id
* @param ticketId 票种id
* @param buyCount 购买数量 大于 0 增加 小于 0 减少 对应 支付 退款表
*/
public
void
changeBuyInfo
(
String
userId
,
String
idCard
,
String
performanceId
,
String
ticketId
,
int
buyCount
)
{
String
redisKey
;
KylinPerformanceVo
vo
=
getPerformanceVo
(
performanceId
);
int
isTrueName
=
vo
.
getIsTrueName
();
String
useTime
=
""
;
HashMap
<
String
,
ArrayList
<
String
>>
allTicketId
=
new
HashMap
<>();
for
(
int
x
=
0
;
x
<
vo
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
vo
.
getTicketTimeList
().
get
(
x
);
ArrayList
<
String
>
ticketList
=
new
ArrayList
<>();
for
(
int
y
=
0
;
y
<
timeItem
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
timeItem
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getType
()
==
1
)
{
ticketList
.
add
(
ticketItem
.
getTicketsId
());
}
if
(
ticketItem
.
getTicketsId
().
equals
(
ticketId
))
{
useTime
=
ticketItem
.
getUseStart
();
}
}
allTicketId
.
put
(
timeItem
.
getUseStart
(),
ticketList
);
}
if
(
0
==
isTrueName
)
{
redisKey
=
KylinRedisConst
.
USERID_BUY_INFO
+
userId
;
}
else
{
redisKey
=
KylinRedisConst
.
IDCARD_BUY_INFO
+
idCard
;
}
String
performanceIdKey
=
redisKey
+
":"
+
KylinRedisConst
.
PERFORMANCE_ID
+
":"
+
performanceId
;
String
ticketIdKey
=
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
;
String
ticketUseTimeKey
=
ticketIdKey
+
":"
+
KylinRedisConst
.
USE_TIME
;
redisUtil
.
set
(
ticketUseTimeKey
,
useTime
);
if
(
buyCount
>
0
)
{
redisUtil
.
incr
(
ticketIdKey
,
buyCount
);
redisUtil
.
incr
(
performanceIdKey
,
buyCount
);
}
else
{
redisUtil
.
decr
(
ticketIdKey
,
Math
.
abs
(
buyCount
));
redisUtil
.
decr
(
performanceIdKey
,
Math
.
abs
(
buyCount
));
}
}
// 获取 用户维度 演出购买数量
public
int
getUserPBuyCount
(
String
userId
,
String
performanceId
)
{
try
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
USERID_BUY_INFO
+
userId
+
":"
+
KylinRedisConst
.
PERFORMANCE_ID
+
":"
+
performanceId
);
}
catch
(
Exception
e
)
{
return
0
;
}
}
// 获取 用户维度 票种购买数量
public
int
getUserTBuyCount
(
String
userId
,
String
ticketId
)
{
try
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
USERID_BUY_INFO
+
userId
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
);
}
catch
(
Exception
e
)
{
return
0
;
}
}
// 获取 证件维度 演出购买数量
public
int
getIdCardPBuyCount
(
String
idCard
,
String
performanceId
)
{
try
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
IDCARD_BUY_INFO
+
idCard
+
":"
+
KylinRedisConst
.
PERFORMANCE_ID
+
":"
+
performanceId
);
}
catch
(
Exception
e
)
{
return
0
;
}
}
// 获取 证件维度 票种购买数量
public
int
getIdCardTBuyCount
(
String
idCard
,
String
ticketId
)
{
try
{
return
(
int
)
redisUtil
.
get
(
KylinRedisConst
.
IDCARD_BUY_INFO
+
idCard
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
);
}
catch
(
Exception
e
)
{
return
0
;
}
}
/**
* 删除订单redis
*
* @param orderEntitiesId
*/
public
void
delOrderTicketEntitiesRedis
(
String
orderEntitiesId
)
{
redisUtil
.
del
(
KylinRedisConst
.
ORDER_ENTITIES
+
orderEntitiesId
);
}
/**
* 根据演出id 获取 演出vo 详情
*
* @param performanceId
* @return
*/
public
KylinPerformanceVo
getPerformanceVo
(
String
performanceId
)
{
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
))
{
}
else
{
KylinPerformanceVo
performanceData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
,
performanceData
);
}
return
(
KylinPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
);
}
/**
* 获取分销用户名字
*
* @param agentId
* @return
*/
public
String
getAgentInfoName
(
String
agentId
)
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_AGENT_INFO
.
concat
(
agentId
);
// String name = (String) redisUtil.hget(redisKey, "name");
String
name
=
""
;
return
name
;
}
/**
* 获取演出列表redis
*
* @param cityName
*/
public
List
<
KylinPerformanceVo
>
getPerformancesListOfcityName
(
String
cityName
)
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_LIST_CITYNAME
.
concat
(
cityName
);
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
// 固定查询条件
Query
query
=
getCommonWhere
();
// 其他条件
Pattern
cityNameCompile
=
Pattern
.
compile
(
"^.*"
+
cityName
+
".*$"
,
Pattern
.
CASE_INSENSITIVE
);
query
.
addCriteria
(
Criteria
.
where
(
"cityName"
).
regex
(
cityNameCompile
));
// 排序
Sort
sortName
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"timeStart"
);
query
.
with
(
sortName
);
// 不要查询的字段
query
.
fields
().
exclude
(
"details"
);
query
.
fields
().
exclude
(
"noticeImage"
);
query
.
fields
().
exclude
(
"ticketTimeList"
);
query
.
fields
().
exclude
(
"describeElectronic"
);
List
<
KylinPerformanceVo
>
performancesList
=
mongoTemplate
.
find
(
query
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
redisKey
,
performancesList
);
}
return
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 获取系统推荐演出列表redis
*/
public
List
<
KylinPerformanceVo
>
getPerformancesListIsSystemRecommend
()
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_LIST_SYSTEM_RECOMMEND
;
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
// 固定条件
Query
query
=
getCommonWhere
();
// 排序
Sort
sortName
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"timeStart"
);
Pageable
pageable
=
PageRequest
.
of
(
0
,
8
,
sortName
);
query
.
with
(
pageable
);
// 不要查询的字段
query
.
fields
().
exclude
(
"details"
);
query
.
fields
().
exclude
(
"noticeImage"
);
query
.
fields
().
exclude
(
"ticketTimeList"
);
query
.
fields
().
exclude
(
"describeElectronic"
);
// 推荐
List
<
KylinPerformanceVo
>
systemRecommendList
=
mongoTemplate
.
find
(
query
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
redisKey
,
systemRecommendList
);
}
return
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 获取演出预告列表redis
*/
public
HashMap
<
String
,
Object
>
getPerformancesListNotice
()
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_LIST_NOTICE
;
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
// 固定条件
Query
query
=
getCommonWhere
();
// 今天的
HashMap
toDayTime
=
DateUtil
.
oneDayStartEnd
();
String
nowTimeTStr
=
(
String
)
toDayTime
.
get
(
"startStr"
);
String
toDayEndTimeStr
=
(
String
)
toDayTime
.
get
(
"endStr"
);
query
.
addCriteria
(
Criteria
.
where
(
"sellTime"
).
gte
(
nowTimeTStr
).
lt
(
toDayEndTimeStr
));
query
.
fields
().
exclude
(
"details"
);
query
.
fields
().
exclude
(
"noticeImage"
);
query
.
fields
().
exclude
(
"ticketTimeList"
);
query
.
fields
().
exclude
(
"describeElectronic"
);
List
<
KylinPerformanceVo
>
toDayList
=
mongoTemplate
.
find
(
query
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
// 固定条件
Query
queryT
=
getCommonWhere
();
// 三天的
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
((
Date
)
toDayTime
.
get
(
"end"
));
Date
beforeDayEnd
=
DateUtil
.
getBeforeDayEnd
(
cal
,
3
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
threeDaysLaterStr
=
sdf
.
format
(
beforeDayEnd
);
queryT
.
addCriteria
(
Criteria
.
where
(
"sellTime"
).
gte
(
toDayEndTimeStr
).
lt
(
threeDaysLaterStr
));
queryT
.
fields
().
exclude
(
"details"
);
queryT
.
fields
().
exclude
(
"noticeImage"
);
queryT
.
fields
().
exclude
(
"ticketTimeList"
);
queryT
.
fields
().
exclude
(
"describeElectronic"
);
List
<
KylinPerformanceVo
>
threeDaysList
=
mongoTemplate
.
find
(
queryT
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
HashMap
<
String
,
Object
>
info
=
new
HashMap
<>();
info
.
put
(
"toDayList"
,
toDayList
);
info
.
put
(
"threeDaysList"
,
threeDaysList
);
redisUtil
.
set
(
redisKey
,
info
);
}
return
(
HashMap
<
String
,
Object
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 获取推荐演出列表redis
*/
public
List
<
KylinPerformanceVo
>
getPerformancesListIsRecommend
()
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_LIST_RECOMMEND
;
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
// 固定条件
Query
query
=
getCommonWhere
();
// 排序
Sort
sortName
=
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"isRecommend"
);
query
.
with
(
sortName
);
// 不要查询的字段
query
.
fields
().
exclude
(
"details"
);
query
.
fields
().
exclude
(
"noticeImage"
);
query
.
fields
().
exclude
(
"ticketTimeList"
);
query
.
fields
().
exclude
(
"describeElectronic"
);
// 推荐
query
.
addCriteria
(
Criteria
.
where
(
"isRecommend"
).
gte
(
1
));
List
<
KylinPerformanceVo
>
recommendList
=
mongoTemplate
.
find
(
query
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
redisKey
,
recommendList
);
}
return
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 获取会员专属演出列表redis
*/
public
List
<
KylinPerformanceVo
>
getPerformancesListIsExclusive
()
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_LIST_EXCLUSIVE
;
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
// 固定条件
Query
query
=
getCommonWhere
();
// 不要查询的字段
query
.
fields
().
exclude
(
"details"
);
query
.
fields
().
exclude
(
"noticeImage"
);
query
.
fields
().
exclude
(
"ticketTimeList"
);
query
.
fields
().
exclude
(
"describeElectronic"
);
// 推荐
query
.
addCriteria
(
Criteria
.
where
(
"isExclusive"
).
is
(
1
));
List
<
KylinPerformanceVo
>
exclusiveList
=
mongoTemplate
.
find
(
query
,
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
redisKey
,
exclusiveList
);
}
return
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 获取所有城市演出列表redis
*/
public
List
<
KylinPerformanceVo
>
getPerformancesListAll
()
{
List
<
KylinPerformanceVo
>
list
=
new
ArrayList
<>();
Set
<
String
>
keys
=
redisTemplate
.
keys
(
KylinRedisConst
.
PERFORMANCES_LIST_ALL
);
for
(
String
key
:
keys
)
{
List
<
KylinPerformanceVo
>
OneCityList
=
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
key
);
list
.
addAll
(
OneCityList
);
}
return
list
;
}
/**
* 获取巡演列表redis
*/
public
List
<
KylinPerformanceVo
>
getRoadList
(
String
roadShowId
)
{
String
redisKey
=
KylinRedisConst
.
PERFORMANCES_ROADLIST
.
concat
(
roadShowId
);
if
(!
redisUtil
.
hasKey
(
redisKey
))
{
List
<
KylinPerformanceVo
>
roadList
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"roadShowId"
).
is
(
roadShowId
)),
KylinPerformanceVo
.
class
,
KylinPerformanceVo
.
class
.
getSimpleName
()
);
redisUtil
.
set
(
redisKey
,
roadList
);
}
return
(
List
<
KylinPerformanceVo
>)
redisUtil
.
get
(
redisKey
);
}
/**
* 演出搜索固定参数
*/
public
Query
getCommonWhere
()
{
// 固定条件
Query
query
=
new
Query
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nowTime
);
query
.
addCriteria
(
Criteria
.
where
(
"timeEnd"
).
gte
(
nowTimeStr
));
query
.
addCriteria
(
Criteria
.
where
(
"appStatus"
).
in
(
3
,
6
,
8
,
9
,
10
));
query
.
addCriteria
(
Criteria
.
where
(
"isShow"
).
is
(
1
));
return
query
;
}
public
KylinOrderRefundsVoBase
getOrderRefundVo
(
String
orderRefundsId
){
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
ORDER_REFUND
+
orderRefundsId
))
{
}
else
{
KylinOrderRefundsVoBase
orderRefundsVo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
orderRefundsId
)),
KylinOrderRefundsVoBase
.
class
,
KylinOrderRefundsVoBase
.
class
.
getSimpleName
());
List
<
KylinOrderRefundEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
orderRefundsId
)),
KylinOrderRefundEntitiesVo
.
class
,
KylinOrderRefundEntitiesVo
.
class
.
getSimpleName
());
List
<
KylinOrderRefundPicVo
>
picVos
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
orderRefundsId
)),
KylinOrderRefundPicVo
.
class
,
KylinOrderRefundPicVo
.
class
.
getSimpleName
());
orderRefundsVo
.
setOrderRefundEntitiesVoList
(
kylinOrderTicketEntitiesVoList
);
orderRefundsVo
.
setOrderRefundPicVos
(
picVos
);
redisUtil
.
set
(
KylinRedisConst
.
ORDER_REFUND
+
orderRefundsId
,
orderRefundsVo
);
}
return
(
KylinOrderRefundsVoBase
)
redisUtil
.
get
(
KylinRedisConst
.
ORDER_REFUND
+
orderRefundsId
);
}
public
List
<
KylinOrderRefundsVoBase
>
getOrderRefundVoByOrderId
(
String
orderId
){
if
(
redisUtil
.
hasKey
(
KylinRedisConst
.
ORDER_REFUND_BY_ORDER_ID
+
orderId
))
{
}
else
{
List
<
KylinOrderRefundsVoBase
>
orderRefundsVoList
=
new
ArrayList
<>();
List
<
KylinOrderRefundsVoBase
>
data
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderId
)),
KylinOrderRefundsVoBase
.
class
,
KylinOrderRefundsVoBase
.
class
.
getSimpleName
());
for
(
KylinOrderRefundsVoBase
item
:
data
)
{
List
<
KylinOrderRefundEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
item
.
getOrderRefundsId
())),
KylinOrderRefundEntitiesVo
.
class
,
KylinOrderRefundEntitiesVo
.
class
.
getSimpleName
());
if
(
kylinOrderTicketEntitiesVoList
.
size
()>
1
){
continue
;
}
item
.
setOrderRefundEntitiesVoList
(
kylinOrderTicketEntitiesVoList
);
List
<
KylinOrderRefundPicVo
>
picVos
=
mongoTemplate
.
find
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
item
.
getOrderRefundsId
())),
KylinOrderRefundPicVo
.
class
,
KylinOrderRefundPicVo
.
class
.
getSimpleName
());
item
.
setOrderRefundPicVos
(
picVos
);
orderRefundsVoList
.
add
(
item
);
}
redisUtil
.
set
(
KylinRedisConst
.
ORDER_REFUND_BY_ORDER_ID
+
orderId
,
orderRefundsVoList
);
}
return
(
List
<
KylinOrderRefundsVoBase
>)
redisUtil
.
get
(
KylinRedisConst
.
ORDER_REFUND_BY_ORDER_ID
+
orderId
);
}
public
void
delOrderRefundVo
(
String
orderRefundsId
){
redisUtil
.
del
(
KylinRedisConst
.
ORDER_REFUND
+
orderRefundsId
);
}
public
void
delOrderRefundVoByOrderId
(
String
orderId
){
redisUtil
.
del
(
KylinRedisConst
.
ORDER_REFUND_BY_ORDER_ID
+
orderId
);
}
/**
* 获取可退款票单价格
* @param orderTicketVo 订单vo数据
* @param orderTicketEntitiesId 票单id
* @return
*/
public
BigDecimal
getCanRefundOrderEntitiesPrice
(
KylinOrderTicketVo
orderTicketVo
,
List
<
KylinOrderRefundsVoBase
>
kylinOrderRefundsVoBaseList
,
String
orderTicketEntitiesId
){
//单票实付价格
BigDecimal
singlePrice
=
orderTicketVo
.
getPriceActual
().
subtract
(
orderTicketVo
.
getPriceExpress
()).
divide
(
BigDecimal
.
valueOf
(
orderTicketVo
.
getNumber
()));
//单票剩余未退款金额
BigDecimal
canRefundSinglePrice
=
new
BigDecimal
(
"0.00"
);
for
(
KylinOrderTicketEntitiesVo
item
:
orderTicketVo
.
getEntitiesVoList
())
{
if
(
item
.
getOrderTicketEntitiesId
().
equals
(
orderTicketEntitiesId
))
{
canRefundSinglePrice
=
singlePrice
.
subtract
(
item
.
getRefundPrice
()==
null
?
BigDecimal
.
valueOf
(
0.00
):
item
.
getRefundPrice
());
}
}
//订单锁定金额
BigDecimal
orderLockPrice
=
new
BigDecimal
(
"0.00"
);
for
(
KylinOrderRefundsVoBase
refundVo
:
kylinOrderRefundsVoBaseList
)
{
int
status
=
refundVo
.
getStatus
();
if
(
status
==
0
||
status
==
3
||
status
==
5
||
status
==
7
)
{
//退款流程未完成 金额锁定
List
<
KylinOrderRefundEntitiesVo
>
refundEntitiesVos
=
refundVo
.
getOrderRefundEntitiesVoList
();
for
(
KylinOrderRefundEntitiesVo
refundEntitiesVo
:
refundEntitiesVos
)
{
if
(
refundEntitiesVo
.
getOrderTicketEntitiesId
().
equals
(
orderTicketEntitiesId
))
{
orderLockPrice
=
orderLockPrice
.
add
(
refundEntitiesVo
.
getRefundPrice
());
}
}
}
}
//订单可退金额
BigDecimal
refundSinglePrice
=
canRefundSinglePrice
.
subtract
(
orderLockPrice
);
//是否包含快递费
if
(
orderTicketVo
.
getPriceActual
().
subtract
(
orderTicketVo
.
getPriceExpress
()).
subtract
(
orderTicketVo
.
getPriceRefund
()).
compareTo
(
canRefundSinglePrice
)
==
0
)
{
refundSinglePrice
=
refundSinglePrice
.
add
(
orderTicketVo
.
getPriceExpress
());
}
return
refundSinglePrice
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/utils/MongoVoUtils.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
utils
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
@Component
public
class
MongoVoUtils
{
@Autowired
private
KylinPerformancesMapper
performancesMapper
;
@Autowired
private
KylinPerformanceStatusMapper
performanceStatusMapper
;
@Autowired
private
KylinPerformanceRelationsMapper
performanceRelationsMapper
;
@Autowired
private
KylinTicketTimesMapper
ticketTimesMapper
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinTicketsMapper
ticketsMapper
;
@Autowired
private
KylinTicketStatusMapper
ticketStatusMapper
;
@Autowired
private
KylinTicketRelationsMapper
ticketRelationsMapper
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
DataUtils
dataUtils
;
public
KylinPerformanceVo
combinePerformanceVoData
(
String
performancesId
)
{
try
{
KylinPerformanceVo
voData
=
new
KylinPerformanceVo
();
//演出数据
KylinPerformances
p1
=
performancesMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformances
>().
eq
(
"performances_id"
,
performancesId
));
KylinPerformanceStatus
p2
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
KylinPerformanceRelations
p3
=
performanceRelationsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceRelations
>().
eq
(
"performance_id"
,
performancesId
));
//场地相关数据
KylinFields
fields
=
new
KylinFields
();
String
cityName
=
(
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"city_name"
);
fields
.
setCityId
(
Integer
.
parseInt
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"city_id"
)));
fields
.
setLatitude
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"latitude"
));
fields
.
setLongitude
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"longitude"
));
fields
.
setCityName
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"city_name"
));
fields
.
setName
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
p3
.
getFieldId
(),
"name"
));
//相关状态时间初始变量
LocalDateTime
stopSellTime
=
null
;
LocalDateTime
sellTime
=
null
;
LocalDateTime
sellMemberTime
=
null
;
int
isLackRegister
=
0
;
int
isMember
=
0
;
int
isExclusive
=
0
;
int
isAdvance
=
0
;
int
isDiscount
=
0
;
int
payCountdownMinute
=
15
;
BigDecimal
price
=
new
BigDecimal
(
"0.00"
);
//场次数据
List
<
KylinTicketTimeRelation
>
tt3
=
ticketTimeRelationMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"performance_id"
,
performancesId
));
List
<
KylinTicketTimesVo
>
timeList
=
new
ArrayList
<>();
for
(
int
x
=
0
;
x
<
tt3
.
size
();
x
++)
{
KylinTicketTimeRelation
times
=
tt3
.
get
(
x
);
KylinTicketTimes
tt1
=
ticketTimesMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketTimes
>().
eq
(
"ticket_times_id"
,
times
.
getTimesId
()));
//票种数据
List
<
KylinTicketRelations
>
t3
=
ticketRelationsMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketRelations
>().
eq
(
"times_id"
,
times
.
getTimesId
()));
List
<
KylinTicketVo
>
ticketList
=
new
ArrayList
<>();
for
(
int
y
=
0
;
y
<
t3
.
size
();
y
++)
{
KylinTicketRelations
ticket
=
t3
.
get
(
y
);
KylinTickets
t1
=
ticketsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTickets
>().
eq
(
"tickets_id"
,
ticket
.
getTicketId
()));
KylinTicketStatus
t2
=
ticketStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticket
.
getTicketId
()));
// if(t2.getStatus()==7){
// continue;
// }
KylinTicketVo
kylinTicketVo
=
new
KylinTicketVo
();
kylinTicketVo
.
setTimeId
(
ticket
.
getTimesId
());
kylinTicketVo
.
setTicket
(
t1
);
kylinTicketVo
.
setTicketStatus
(
t2
);
ticketList
.
add
(
kylinTicketVo
);
// //票种 库存redis
// if (!redisUtil.hHasKey(KylinRedisConst.PERFORMANCES_INVENTORY + kylinTicketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL)) {
// dataUtils.setSurplusGeneral(kylinTicketVo.getTicketsId(), t2.getTotalGeneral());
// dataUtils.setSurplusExchange(kylinTicketVo.getTicketsId(), t2.getSurplusExchange());
// }
if
(
kylinTicketVo
.
getIsMember
()
==
1
)
{
if
(
kylinTicketVo
.
getMemberPrice
().
compareTo
(
kylinTicketVo
.
getPrice
())
!=
0
)
{
isDiscount
=
1
;
}
if
(
DateUtil
.
compareStrDay
(
DateUtil
.
getNowTime
(),
kylinTicketVo
.
getMemberTimeStart
())
<
0
)
{
isAdvance
=
1
;
}
if
(
kylinTicketVo
.
getIsMember
()
==
1
)
{
isMember
=
1
;
}
if
(
kylinTicketVo
.
getIsExclusive
()
==
1
)
{
isExclusive
=
1
;
}
if
(
isAdvance
==
0
&&
isDiscount
==
0
&&
isExclusive
==
0
)
{
isMember
=
0
;
}
}
if
(
kylinTicketVo
.
getIsLackRegister
()
==
1
)
{
isLackRegister
=
1
;
}
payCountdownMinute
=
t1
.
getPayCountdownMinute
();
if
(
price
.
compareTo
(
new
BigDecimal
(
"0.00"
))
==
0
)
{
price
=
kylinTicketVo
.
getPrice
();
}
else
{
if
(
kylinTicketVo
.
getPrice
().
compareTo
(
price
)
<
0
)
{
price
=
kylinTicketVo
.
getPrice
();
}
}
if
(
stopSellTime
==
null
||
stopSellTime
.
isBefore
(
t1
.
getTimeEnd
()))
{
stopSellTime
=
t1
.
getTimeEnd
();
}
if
(
sellMemberTime
==
null
||
sellMemberTime
.
isAfter
(
t1
.
getTimeStart
().
plusMinutes
(-
t1
.
getAdvanceMinuteMember
())))
{
sellMemberTime
=
t1
.
getTimeStart
().
plusMinutes
(-
t1
.
getAdvanceMinuteMember
());
}
if
(
sellTime
==
null
||
sellTime
.
isAfter
(
t1
.
getTimeStart
()))
{
sellTime
=
t1
.
getTimeStart
();
}
}
// if(ticketList.size()>0) {
KylinTicketTimesVo
kylinTicketTimesVo
=
new
KylinTicketTimesVo
();
kylinTicketTimesVo
.
setTicketTimes
(
tt1
);
kylinTicketTimesVo
.
setPerformanceId
(
times
.
getPerformanceId
());
kylinTicketTimesVo
.
setTimeId
(
times
.
getTimesId
());
kylinTicketTimesVo
.
setTicketList
(
ticketList
);
timeList
.
add
(
kylinTicketTimesVo
);
// }
}
voData
.
setPerformance
(
p1
);
voData
.
setPerformanceStatus
(
p2
);
voData
.
setPerformanceRelations
(
p3
);
voData
.
setFieldsData
(
fields
,
cityName
);
voData
.
setTimePriceVipAndLack
(
isLackRegister
,
isMember
,
isExclusive
,
price
,
stopSellTime
,
sellMemberTime
,
sellTime
,
isAdvance
,
isDiscount
,
payCountdownMinute
);
voData
.
setTicketTimeList
(
timeList
);
voData
.
setAppStatus
(
p2
.
getStatus
());
return
voData
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public
Boolean
resetOrderListVo
(
String
userId
,
Integer
type
,
String
orderId
,
KylinOrderTicketVo
dataSingle
)
{
List
<
KylinOrderListVo
>
vo
=
new
ArrayList
<>();
List
<
KylinOrderListVo
>
redisVo
=
new
ArrayList
();
KylinOrderListVo
voItem
=
new
KylinOrderListVo
();
KylinOrderTicketVo
data
;
if
(
dataSingle
==
null
)
{
data
=
dataUtils
.
getOrderTicketVo
(
orderId
);
}
else
{
data
=
dataSingle
;
}
BeanUtils
.
copyProperties
(
data
,
voItem
);
List
<
KylinOrderListVo
>
redisData
=
dataUtils
.
getOrderList
(
userId
);
if
(
type
==
1
)
{
redisVo
.
add
(
voItem
);
if
(
redisData
.
size
()
>
0
)
{
if
(
redisData
.
get
(
0
).
getOrderTicketsId
().
equals
(
orderId
))
{
redisData
.
remove
(
0
);
}
}
}
redisVo
.
addAll
(
redisData
);
switch
(
type
)
{
case
1
:
for
(
int
i
=
0
;
i
<
redisVo
.
size
();
i
++)
{
if
(
i
==
40
)
{
break
;
}
if
(
i
==
0
)
{
vo
.
add
(
voItem
);
}
else
{
vo
.
add
(
redisVo
.
get
(
i
));
}
}
if
(
redisVo
.
size
()
==
0
)
{
vo
.
add
(
voItem
);
}
dataUtils
.
setOrderList
(
userId
,
vo
);
return
true
;
case
2
:
for
(
int
i
=
0
;
i
<
redisVo
.
size
();
i
++)
{
if
(
i
==
40
)
{
break
;
}
if
(
redisVo
.
get
(
i
).
getOrderTicketsId
().
equals
(
orderId
))
{
vo
.
add
(
voItem
);
}
else
{
vo
.
add
(
redisVo
.
get
(
i
));
}
}
dataUtils
.
setOrderList
(
userId
,
vo
);
return
true
;
default
:
return
false
;
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/utils/OrderUtils.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.vo.AdamAddressesVo
;
import
com.liquidnet.service.adam.dto.vo.AdamEntersVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserMemberVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
public
class
OrderUtils
{
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
RedisUtil
redisUtil
;
public
String
judgeOrderLimit
(
int
type
,
String
userId
,
String
idCard
,
String
performanceId
,
String
ticketId
,
int
performanceLimitCount
,
int
performanceMemberLimitCount
,
int
ticketLimitCount
,
int
ticketMemberLimitCount
,
int
performanceBuyCount
,
int
ticketBuyCount
,
int
memberType
,
int
isTrueName
)
{
Integer
[]
integers
;
System
.
out
.
println
(
"TYPE = "
+
type
);
if
(
101
==
type
)
{
integers
=
festivalOrderLimit
(
userId
,
idCard
,
performanceId
,
ticketId
,
performanceBuyCount
,
ticketBuyCount
,
isTrueName
);
}
else
{
integers
=
roadShowOrderLimit
(
userId
,
idCard
,
performanceId
,
ticketId
,
performanceBuyCount
,
ticketBuyCount
,
isTrueName
);
}
System
.
out
.
println
(
"integers PERFORMANCE= "
+
integers
[
0
]);
System
.
out
.
println
(
"integers TICKETS= "
+
integers
[
1
]);
return
judgeMemberType
(
performanceLimitCount
,
performanceMemberLimitCount
,
ticketLimitCount
,
ticketMemberLimitCount
,
memberType
,
integers
[
0
],
integers
[
1
]);
}
public
Integer
[]
roadShowOrderLimit
(
String
userId
,
String
idCard
,
String
performanceId
,
String
ticketId
,
int
performanceBuyCount
,
int
ticketBuyCount
,
int
isTrueName
)
{
if
(
1
==
isTrueName
)
{
//实名
performanceBuyCount
+=
dataUtils
.
getIdCardPBuyCount
(
idCard
,
performanceId
);
ticketBuyCount
+=
dataUtils
.
getIdCardTBuyCount
(
idCard
,
ticketId
);
}
else
{
//非实名
performanceBuyCount
+=
dataUtils
.
getUserPBuyCount
(
userId
,
performanceId
);
ticketBuyCount
+=
dataUtils
.
getUserTBuyCount
(
userId
,
ticketId
);
}
return
new
Integer
[]{
performanceBuyCount
,
ticketBuyCount
};
}
public
Integer
[]
festivalOrderLimit
(
String
userId
,
String
idCard
,
String
performanceId
,
String
ticketId
,
int
performanceBuyCount
,
int
ticketBuyCount
,
int
isTrueName
)
{
if
(
1
==
isTrueName
)
{
//实名
performanceBuyCount
+=
dataUtils
.
getIdCardPBuyCount
(
idCard
,
performanceId
);
ticketBuyCount
+=
dataUtils
.
getIdCardTBuyCount
(
idCard
,
ticketId
);
}
else
{
//非实名
performanceBuyCount
+=
dataUtils
.
getUserPBuyCount
(
userId
,
performanceId
);
ticketBuyCount
+=
dataUtils
.
getUserTBuyCount
(
userId
,
ticketId
);
}
return
new
Integer
[]{
performanceBuyCount
,
ticketBuyCount
};
}
public
String
judgeMemberType
(
int
performanceLimitCount
,
int
performanceMemberLimitCount
,
int
ticketLimitCount
,
int
ticketMemberLimitCount
,
int
memberType
,
int
performanceBuyCount
,
int
ticketBuyCount
)
{
if
(
memberType
==
1
||
memberType
==
2
)
{
if
(
performanceBuyCount
>
performanceMemberLimitCount
&&
performanceMemberLimitCount
!=
0
)
{
return
"该演出只能购买"
+
performanceMemberLimitCount
+
"张"
;
//超过演出维度购买量
}
if
(
ticketBuyCount
>
ticketMemberLimitCount
&&
ticketMemberLimitCount
!=
0
)
{
return
"该票种只能购买"
+
ticketMemberLimitCount
+
"张"
;
//超过票维度购买量
}
}
else
{
//非会员区间
if
(
performanceBuyCount
>
performanceLimitCount
&&
performanceLimitCount
!=
0
)
{
return
"该演出只能购买"
+
performanceLimitCount
+
"张"
;
//超过演出维度购买量
}
if
(
ticketBuyCount
>
ticketLimitCount
&&
ticketLimitCount
!=
0
)
{
return
"该票种只能购买"
+
ticketLimitCount
+
"张"
;
//超过票维度购买量
}
}
return
""
;
}
public
boolean
isMember
(
String
uid
)
{
String
rk
=
AdamRedisConst
.
INFO_USER_MEMBER
.
concat
(
uid
);
AdamUserMemberVo
vo
=
(
AdamUserMemberVo
)
redisUtil
.
get
(
rk
);
return
null
!=
vo
&&
vo
.
isActive
();
}
public
AdamAddressesVo
getAddress
(
String
uid
,
String
addressesId
)
{
String
rk
=
AdamRedisConst
.
INFO_ADDRESSES
.
concat
(
uid
);
List
<
AdamAddressesVo
>
vos
=
(
List
<
AdamAddressesVo
>)
redisUtil
.
get
(
rk
);
return
vos
.
stream
().
filter
(
r
->
r
.
getAddressesId
().
equals
(
addressesId
)).
findAny
().
orElse
(
null
);
}
public
AdamEntersVo
getEnters
(
String
uid
,
String
entersId
)
{
String
rk
=
AdamRedisConst
.
INFO_ENTERS
.
concat
(
uid
);
List
<
AdamEntersVo
>
vos
=
(
List
<
AdamEntersVo
>)
redisUtil
.
get
(
rk
);
return
vos
.
stream
().
filter
(
r
->
r
.
getEntersId
().
equals
(
entersId
)).
findAny
().
orElse
(
null
);
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/utils/OtherUtils.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
utils
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLDecoder
;
import
java.security.MessageDigest
;
@Service
@Slf4j
public
class
OtherUtils
{
@Value
(
"${liquidnet.url-service.url}"
)
private
String
serviceUrl
;
//发短信
public
boolean
sendMessage
(
String
mobile
,
MessageDataVo
data
,
MessageConfigVo
configVo
,
Integer
sign_id
)
{
try
{
if
(
null
!=
configVo
&&
null
!=
configVo
.
getStatus
()
&&
configVo
.
getStatus
())
{
LinkedMultiValueMap
<
String
,
String
>
httpData
=
new
LinkedMultiValueMap
<>();
httpData
.
add
(
"mobile"
,
mobile
);
httpData
.
add
(
"templateId"
,
configVo
.
getId
());
httpData
.
add
(
"signId"
,
sign_id
.
toString
());
httpData
.
add
(
"data"
,
JsonUtils
.
toJson
(
data
));
String
sign
=
Ksort
(
httpData
);
sign
=
sign
.
concat
(
"&key="
).
concat
(
"R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V"
);
sign
=
sign
.
toUpperCase
();
httpData
.
add
(
"sign"
,
sign
);
System
.
out
.
println
(
"data = = = "
+
httpData
.
toString
());
String
returnData
=
HttpUtil
.
post
(
serviceUrl
+
"sendSmsMessage"
,
httpData
);
JsonNode
postResultNew
=
JsonUtils
.
fromJson
(
returnData
,
JsonNode
.
class
);
if
(!
postResultNew
.
get
(
"message"
).
toString
().
equals
(
"OK"
))
{
return
false
;
}
else
{
return
true
;
}
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
public
String
Ksort
(
MultiValueMap
<
String
,
String
>
map
)
{
String
sb
=
""
;
String
[]
key
=
new
String
[
map
.
size
()];
int
index
=
0
;
for
(
String
k
:
map
.
keySet
())
{
key
[
index
]
=
k
;
index
++;
}
for
(
String
s
:
key
)
{
sb
+=
s
+
"="
+
map
.
get
(
s
).
get
(
0
)
+
"&"
;
}
sb
=
sb
.
substring
(
0
,
sb
.
length
()
-
1
);
// 将得到的字符串进行处理得到目标格式的字符串
try
{
sb
=
URLDecoder
.
decode
(
sb
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
// 使用常见的UTF-8编码
sb
=
sb
.
replace
(
"%3D"
,
"="
).
replace
(
"%26"
,
"&"
);
return
sb
;
}
public
static
String
md5s
(
String
txt
)
{
try
{
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
md
.
update
(
txt
.
getBytes
(
"GBK"
));
//问题主要出在这里,Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。
StringBuilder
buf
=
new
StringBuilder
();
for
(
byte
b
:
md
.
digest
())
{
buf
.
append
(
String
.
format
(
"%02x"
,
b
&
0xff
));
}
return
buf
.
toString
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/kylin/partner/utils/PerformanceVoTask.java
0 → 100644
View file @
105839ae
package
com
.
liquidnet
.
service
.
kylin
.
partner
.
utils
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
com.liquidnet.service.kylin.partner.impl.KylinTicketTimesPartnerServiceImpl
;
import
com.liquidnet.service.kylin.partner.impl.KylinTicketsPartnerServiceImpl
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.model.FindOneAndUpdateOptions
;
import
com.mongodb.client.model.ReturnDocument
;
import
lombok.extern.slf4j.Slf4j
;
import
org.bson.Document
;
import
org.springframework.beans.BeanUtils
;
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.Component
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
@Component
@Slf4j
public
class
PerformanceVoTask
{
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
MongoConverter
mongoConverter
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
MongoVoUtils
mongoVoUtils
;
@Autowired
private
KylinPerformancesMapper
performancesMapper
;
@Autowired
private
KylinPerformanceStatusMapper
performanceStatusMapper
;
@Autowired
private
KylinPerformanceRelationsMapper
performanceRelationsMapper
;
@Autowired
private
KylinTicketTimesPartnerServiceImpl
ticketTimesPartnerService
;
@Autowired
private
KylinTicketsMapper
ticketsMapper
;
@Autowired
private
KylinTicketStatusMapper
ticketStatusMapper
;
@Autowired
private
KylinTicketRelationsMapper
ticketRelationsMapper
;
@Autowired
private
KylinTicketTimesMapper
ticketTimesMapper
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinTicketsPartnerServiceImpl
ticketsPartnerService
;
/**
* 根据票状态判断 演出状态 票状态
*
* @param performanceSingleId
*/
public
void
performanceVoStatus
(
String
performanceSingleId
)
{
LocalDateTime
timeNow
=
LocalDateTime
.
now
();
List
<
String
>
performanceIdList
=
new
ArrayList
<>();
if
(
performanceSingleId
==
null
)
{
List
<
KylinPerformanceStatus
>
list
=
performanceStatusMapper
.
selectList
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
in
(
"status"
,
6
,
8
,
9
));
for
(
KylinPerformanceStatus
item
:
list
)
{
performanceIdList
.
add
(
item
.
getPerformanceId
());
}
}
else
{
performanceIdList
.
add
(
performanceSingleId
);
}
for
(
String
performancesId
:
performanceIdList
)
{
KylinPerformanceVo
vo
=
mongoVoUtils
.
combinePerformanceVoData
(
performancesId
);
//场次
List
<
KylinTicketTimesVo
>
timesData
=
vo
.
getTicketTimeList
();
if
(
timesData
.
size
()
==
0
)
{
continue
;
}
int
ticketCount
=
0
;
//总循环次数
int
status9Count
=
0
;
//未开售次数
int
status8Count
=
0
;
//售罄次数
int
status10Count
=
0
;
//已结束次数
//演出数据
int
appStatus
=
6
;
for
(
KylinTicketTimesVo
kylinTicketTimesVoItem
:
timesData
)
{
//票
List
<
KylinTicketVo
>
kylinTicketVoList
=
kylinTicketTimesVoItem
.
getTicketList
();
ticketCount
+=
kylinTicketVoList
.
size
();
for
(
KylinTicketVo
kylinTicketVoItem
:
kylinTicketVoList
)
{
//时间判断
LocalDateTime
timeStart
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
kylinTicketVoItem
.
getMemberTimeStart
());
LocalDateTime
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
kylinTicketVoItem
.
getTimeEnd
());
int
surplusGeneral
=
-
1
;
int
status
=
0
;
if
(
timeStart
.
isAfter
(
timeNow
))
{
//未开始
status
=
9
;
status9Count
+=
1
;
}
else
if
(
timeEnd
.
isBefore
(
timeNow
))
{
//结束
status
=
10
;
status10Count
+=
1
;
}
else
{
//库存判断
surplusGeneral
=
dataUtils
.
getSurplusGeneral
(
kylinTicketVoItem
.
getTicketsId
());
if
(
surplusGeneral
>
0
)
{
status
=
6
;
}
else
{
status
=
8
;
status8Count
+=
1
;
}
}
if
(
kylinTicketVoItem
.
getStatus
()
==
7
)
{
status
=
7
;
}
//修改票状态
KylinTicketStatus
changeStatus
=
new
KylinTicketStatus
();
changeStatus
.
setStatus
(
status
);
if
(
surplusGeneral
!=
-
1
)
{
changeStatus
.
setSurplusGeneral
(
surplusGeneral
);
}
ticketStatusMapper
.
update
(
changeStatus
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
kylinTicketVoItem
.
getTicketsId
()));
kylinTicketVoItem
.
setStatus
(
status
);
//演出状态
if
(
status
==
6
)
{
//单一票 可购买 则为可购买
appStatus
=
6
;
}
else
if
(
ticketCount
==
status10Count
)
{
//全票结束 为结束
appStatus
=
10
;
}
else
if
(
ticketCount
==
status8Count
)
{
//全票售罄为售罄
appStatus
=
8
;
}
else
if
(
ticketCount
==
status9Count
)
{
//全票未开始 为未开始
appStatus
=
9
;
}
}
}
if
(
vo
.
getAppStatus
()
<=
4
)
{
appStatus
=
vo
.
getAppStatus
();
}
if
(
vo
.
getAppStatus
()
==
7
)
{
appStatus
=
7
;
}
//修改演出状态
KylinPerformanceStatus
changeStatus
=
new
KylinPerformanceStatus
();
changeStatus
.
setStatus
(
appStatus
);
performanceStatusMapper
.
update
(
changeStatus
,
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performancesId
));
vo
.
setAppStatus
(
appStatus
);
dataUtils
.
updatePerformanceMongo
(
performancesId
,
vo
);
}
}
/**
* 生成 PerformanceCreatePartnerVo(用于审核第一次提交数据)
*
* @param performancesId
* @return
*/
public
KylinPerformanceMisVo
getPerformanceMisVo
(
String
performancesId
)
{
try
{
PerformancePartnerVo
performanceData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performancesId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVos
=
ticketTimesPartnerService
.
getTimesMongoList
(
performancesId
);
List
<
TicketTimesTicketCreatePartnerVo
>
ticketTimesTicketCreatePartnerVoList
=
new
ArrayList
<
TicketTimesTicketCreatePartnerVo
>();
ArrayList
<
BigDecimal
>
floatList
=
new
ArrayList
<>();
ArrayList
<
String
>
StringList
=
new
ArrayList
<>();
for
(
KylinTicketTimesPartnerVo
ticketTimes
:
kylinTicketTimesPartnerVos
)
{
TicketTimesTicketCreatePartnerVo
ticketTimesTicketCreatePartnerVo
=
new
TicketTimesTicketCreatePartnerVo
();
BeanUtils
.
copyProperties
(
ticketTimes
,
ticketTimesTicketCreatePartnerVo
);
List
<
KylinTicketPartnerVo
>
kylinTicketPartnerVos
=
ticketsPartnerService
.
getTicketMongoList
(
ticketTimes
.
getTicketTimesId
());
ticketTimesTicketCreatePartnerVo
.
setTicket
(
kylinTicketPartnerVos
);
ticketTimesTicketCreatePartnerVoList
.
add
(
ticketTimesTicketCreatePartnerVo
);
for
(
KylinTicketPartnerVo
kylinTicketPartnerVoItem
:
kylinTicketPartnerVos
)
{
floatList
.
add
(
kylinTicketPartnerVoItem
.
getPrice
());
StringList
.
add
(
kylinTicketPartnerVoItem
.
getTimeEnd
());
}
}
KylinPerformanceMisVo
kylinPerformanceMisVo
=
new
KylinPerformanceMisVo
();
BeanUtils
.
copyProperties
(
performanceData
,
kylinPerformanceMisVo
);
floatList
.
sort
(
Comparator
.
naturalOrder
());
StringList
.
sort
(
Comparator
.
naturalOrder
());
kylinPerformanceMisVo
.
setPrice
(
floatList
.
get
(
0
)
+
"起"
);
kylinPerformanceMisVo
.
setStopSellTime
(
StringList
.
get
(
0
));
kylinPerformanceMisVo
.
setTicketTimes
(
ticketTimesTicketCreatePartnerVoList
);
kylinPerformanceMisVo
.
setIsDistribution
(
0
);
kylinPerformanceMisVo
.
setSyncAgent
(
0
);
kylinPerformanceMisVo
.
setAuditStatus
(
0
);
return
kylinPerformanceMisVo
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
/**
* 插入数据库
*
* @param performancesId
* @param map
* @param kylinPerformanceMisVo
* @param updatedAt
*/
public
void
createPerformanceMySql
(
String
performancesId
,
HashMap
<
String
,
Object
>
map
,
KylinPerformanceMisVo
kylinPerformanceMisVo
,
LocalDateTime
updatedAt
)
{
try
{
//创建演出
KylinPerformances
performances
=
new
KylinPerformances
();
BeanUtils
.
copyProperties
(
kylinPerformanceMisVo
,
performances
);
KylinPerformanceStatus
performanceStatus
=
new
KylinPerformanceStatus
();
BeanUtils
.
copyProperties
(
kylinPerformanceMisVo
,
performanceStatus
);
KylinPerformanceRelations
performanceRelations
=
new
KylinPerformanceRelations
();
BeanUtils
.
copyProperties
(
kylinPerformanceMisVo
,
performanceRelations
);
performances
.
setCreatedAt
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
kylinPerformanceMisVo
.
getCreatedAt
())));
performances
.
setTimeStart
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
kylinPerformanceMisVo
.
getTimeStart
())));
performances
.
setTimeEnd
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
kylinPerformanceMisVo
.
getTimeEnd
())));
performances
.
setCityName
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
performanceRelations
.
getFieldId
(),
"city_name"
));
performances
.
setCityId
(
Integer
.
parseInt
((
String
)
redisUtil
.
hget
(
KylinRedisConst
.
FIELDS
+
":"
+
performanceRelations
.
getFieldId
(),
"city_id"
)));
performances
.
setUpdatedAt
(
updatedAt
);
performanceStatus
.
setPerformanceId
(
performances
.
getPerformancesId
());
performanceStatus
.
setPerformanceStatusId
(
IDGenerator
.
nextSnowId
().
toString
());
performanceStatus
.
setCreatedAt
(
performances
.
getCreatedAt
());
performanceStatus
.
setAuditStatus
(
0
);
performanceStatus
.
setUpdatedAt
(
updatedAt
);
performanceStatus
.
setLimitCountMember
(
1
);
performanceRelations
.
setPerformanceId
(
performances
.
getPerformancesId
());
performanceRelations
.
setPerformanceRelationsId
(
IDGenerator
.
nextSnowId
().
toString
());
performanceRelations
.
setCreatedAt
(
performances
.
getCreatedAt
());
performanceRelations
.
setUpdatedAt
(
updatedAt
);
performancesMapper
.
delete
(
new
UpdateWrapper
<
KylinPerformances
>().
eq
(
"performances_id"
,
performances
.
getPerformancesId
()));
performancesMapper
.
insert
(
performances
);
performanceStatusMapper
.
delete
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
performanceStatus
.
getPerformanceId
()));
performanceStatusMapper
.
insert
(
performanceStatus
);
performanceRelationsMapper
.
delete
(
new
UpdateWrapper
<
KylinPerformanceRelations
>().
eq
(
"performance_id"
,
performanceRelations
.
getPerformanceId
()));
performanceRelationsMapper
.
insert
(
performanceRelations
);
//场次数据
List
<
KylinTicketTimesPartnerVo
>
kylinTicketTimesPartnerVos
=
ticketTimesPartnerService
.
getTimesMongoList
(
performancesId
);
for
(
KylinTicketTimesPartnerVo
ticketTimeItem
:
kylinTicketTimesPartnerVos
)
{
//创建场次
KylinTicketTimes
ticketTimes
=
new
KylinTicketTimes
();
BeanUtils
.
copyProperties
(
ticketTimeItem
,
ticketTimes
);
KylinTicketTimeRelation
ticketTimeRelation
=
new
KylinTicketTimeRelation
();
BeanUtils
.
copyProperties
(
ticketTimeItem
,
ticketTimeRelation
);
ticketTimes
.
setUseStart
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketTimeItem
.
getUseStart
())));
ticketTimes
.
setUseEnd
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketTimeItem
.
getUseEnd
())));
ticketTimes
.
setCreatedAt
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketTimeItem
.
getCreatedAt
())));
ticketTimes
.
setUpdatedAt
(
updatedAt
);
ticketTimeRelation
.
setPerformanceId
(
performancesId
);
ticketTimeRelation
.
setTicketTimeRelationId
(
IDGenerator
.
nextSnowId
().
toString
());
ticketTimeRelation
.
setTimesId
(
ticketTimes
.
getTicketTimesId
());
ticketTimeRelation
.
setCreatedAt
(
ticketTimes
.
getCreatedAt
());
ticketTimeRelation
.
setUpdatedAt
(
updatedAt
);
ticketTimesMapper
.
delete
(
new
UpdateWrapper
<
KylinTicketTimes
>().
eq
(
"ticket_times_id"
,
ticketTimes
.
getTicketTimesId
()));
ticketTimesMapper
.
insert
(
ticketTimes
);
ticketTimeRelationMapper
.
delete
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"times_id"
,
ticketTimeRelation
.
getTimesId
()));
ticketTimeRelationMapper
.
insert
(
ticketTimeRelation
);
//修改票
for
(
KylinTicketPartnerVo
ticketItem
:
ticketsPartnerService
.
getTicketMongoList
(
ticketTimeItem
.
getTicketTimesId
()))
{
BasicDBObject
objectTicketVo
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
map
));
Document
docTicket
=
mongoTemplate
.
getCollection
(
KylinTicketPartnerVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"ticketsId"
).
is
(
ticketItem
.
getTicketsId
())).
getQueryObject
(),
objectTicketVo
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
KylinTicketPartnerVo
kylinTicketPartnerVo
=
JsonUtils
.
fromJson
(
docTicket
.
toJson
(),
KylinTicketPartnerVo
.
class
);
//创建演出
KylinTickets
tickets
=
new
KylinTickets
();
BeanUtils
.
copyProperties
(
kylinTicketPartnerVo
,
tickets
);
KylinTicketStatus
ticketStatus
=
new
KylinTicketStatus
();
BeanUtils
.
copyProperties
(
kylinTicketPartnerVo
,
ticketStatus
);
KylinTicketRelations
ticketRelations
=
new
KylinTicketRelations
();
BeanUtils
.
copyProperties
(
kylinTicketPartnerVo
,
ticketRelations
);
tickets
.
setPriceExpress
(
new
BigDecimal
(
"0.00"
));
tickets
.
setPriceDiscountMember
(
new
BigDecimal
(
"0.00"
));
tickets
.
setPriceDiscount
(
new
BigDecimal
(
"0.00"
));
tickets
.
setTimeStart
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketItem
.
getTimeStart
())));
tickets
.
setTimeEnd
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketItem
.
getTimeEnd
())));
if
(
ticketItem
.
getIsExpress
()
==
1
)
{
tickets
.
setTimeEndExpress
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketItem
.
getTimeEndExpress
())));
tickets
.
setDescribeExpress
(
ticketItem
.
getDescribeExpress
());
}
if
(
ticketItem
.
getIsElectronic
()
==
1
)
{
tickets
.
setDescribeElectronic
(
ticketItem
.
getDescribeElectronic
());
}
tickets
.
setUseStart
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketTimeItem
.
getUseStart
())));
tickets
.
setUseEnd
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketTimeItem
.
getUseEnd
())));
tickets
.
setSaleRemindMinute
(
60
);
tickets
.
setCreatedAt
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketItem
.
getCreatedAt
())));
tickets
.
setUpdatedAt
(
updatedAt
);
ticketStatus
.
setTicketStatusId
(
IDGenerator
.
nextSnowId
().
toString
());
ticketStatus
.
setTicketId
(
tickets
.
getTicketsId
());
ticketStatus
.
setIsMember
(
1
);
ticketStatus
.
setIsExclusive
(
0
);
ticketStatus
.
setIsTrueName
(
performanceStatus
.
getIsTrueName
());
ticketStatus
.
setMemberLimitCount
(
1
);
ticketStatus
.
setStatusExchange
(
7
);
if
(
ticketItem
.
getIsShowCode
()
==
1
)
{
ticketStatus
.
setQrCodeShowTime
(
DateUtil
.
asLocalDateTime
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
ticketItem
.
getQrCodeShowTime
())));
}
ticketRelations
.
setCreatedAt
(
tickets
.
getCreatedAt
());
ticketRelations
.
setUpdatedAt
(
updatedAt
);
ticketRelations
.
setTicketRelationsId
(
IDGenerator
.
nextSnowId
().
toString
());
ticketRelations
.
setTicketId
(
tickets
.
getTicketsId
());
ticketRelations
.
setCreatedAt
(
tickets
.
getCreatedAt
());
ticketRelations
.
setUpdatedAt
(
updatedAt
);
ticketsMapper
.
delete
(
new
UpdateWrapper
<
KylinTickets
>().
eq
(
"tickets_id"
,
tickets
.
getTicketsId
()));
ticketsMapper
.
insert
(
tickets
);
ticketStatusMapper
.
delete
(
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketStatus
.
getTicketId
()));
ticketStatusMapper
.
insert
(
ticketStatus
);
ticketRelationsMapper
.
delete
(
new
UpdateWrapper
<
KylinTicketRelations
>().
eq
(
"ticket_id"
,
ticketRelations
.
getTicketId
()));
ticketRelationsMapper
.
insert
(
ticketRelations
);
dataUtils
.
setSurplusExchange
(
tickets
.
getTicketsId
(),
ticketStatus
.
getSurplusExchange
());
dataUtils
.
setSurplusGeneral
(
tickets
.
getTicketsId
(),
ticketStatus
.
getSurplusGeneral
());
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
// 判断是否需要审核
public
boolean
judgeIsAudit
(
String
performanceId
)
{
KylinPerformanceMisVo
misVo
=
getPerformanceMisVo
(
performanceId
);
KylinPerformanceVo
mongoVo
=
mongoVoUtils
.
combinePerformanceVoData
(
performanceId
);
if
(!
misVo
.
getTitle
().
equals
(
mongoVo
.
getTitle
()))
{
log
.
debug
(
"NEED CHANGE TITLE"
);
return
true
;
}
else
if
(!
misVo
.
getType
().
equals
(
mongoVo
.
getType
()))
{
log
.
debug
(
"NEED CHANGE TYPE"
);
return
true
;
}
else
if
(!
misVo
.
getTimeStart
().
equals
(
mongoVo
.
getTimeStart
()))
{
log
.
debug
(
"NEED CHANGE TIMESTART"
);
return
true
;
}
else
if
(!
misVo
.
getTimeEnd
().
equals
(
mongoVo
.
getTimeEnd
()))
{
log
.
debug
(
"NEED CHANGE TIMEEND"
);
return
true
;
}
else
if
(!
misVo
.
getFieldId
().
equals
(
mongoVo
.
getFieldId
()))
{
log
.
debug
(
"NEED CHANGE FIELDID"
);
return
true
;
}
else
if
(!
misVo
.
getNotice
().
equals
(
mongoVo
.
getNotice
()))
{
log
.
debug
(
"NEED CHANGE NOTICE"
);
return
true
;
}
else
if
(!
misVo
.
getDetails
().
equals
(
mongoVo
.
getDetails
()))
{
log
.
debug
(
"NEED CHANGE DETAILS"
);
return
true
;
}
else
if
(!
misVo
.
getApprovalUrl
().
equals
(
mongoVo
.
getApprovalUrl
()))
{
log
.
debug
(
"NEED CHANGE APPROVALURL"
);
return
true
;
}
else
if
(!
misVo
.
getPayCountdownMinute
().
equals
(
mongoVo
.
getPayCountdownMinute
()))
{
log
.
debug
(
"NEED CHANGE PAYCOUTDOWN"
);
return
true
;
}
boolean
exists
=
mongoTemplate
.
exists
(
Query
.
query
(
Criteria
.
where
(
"status"
).
is
(-
1
).
and
(
"performancesId"
).
is
(
performanceId
)),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
if
(
exists
)
{
log
.
debug
(
"NEED CHANGE NEW TIMES"
);
return
true
;
}
for
(
int
i
=
0
;
i
<
misVo
.
getTicketTimes
().
size
();
i
++)
{
TicketTimesTicketCreatePartnerVo
times
=
misVo
.
getTicketTimes
().
get
(
i
);
KylinTicketTimesVo
timesVo
=
mongoVo
.
getTicketTimeList
().
get
(
i
);
boolean
exists2
=
mongoTemplate
.
exists
(
Query
.
query
(
Criteria
.
where
(
"status"
).
is
(-
2
).
and
(
"timesId"
).
is
(
times
.
getTicketTimesId
())),
KylinTicketPartnerVo
.
class
,
KylinTicketPartnerVo
.
class
.
getSimpleName
());
if
(
exists2
)
{
log
.
debug
(
"NEED CHANGE NEW TICKET"
);
return
true
;
}
for
(
KylinTicketPartnerVo
ticketPartnerVo
:
times
.
getTicket
())
{
for
(
KylinTicketVo
ticketVo
:
timesVo
.
getTicketList
())
{
if
(
ticketVo
.
getTicketsId
().
equals
(
ticketPartnerVo
.
getTicketsId
()))
{
if
(!
ticketVo
.
getTitle
().
equals
(
ticketPartnerVo
.
getTitle
()))
{
log
.
debug
(
"NEED CHANGE TICKET TITLE"
);
log
.
debug
(
"ticketVo.getTitle() = "
+
ticketVo
.
getTitle
());
log
.
debug
(
"ticketPartnerVo.getTitle() = "
+
ticketPartnerVo
.
getTitle
());
return
true
;
}
// else if (!ticketVo.getQrCodeShowTime().equals(ticketPartnerVo.getQrCodeShowTime())) {
// log.debug("NEED CHANGE TICKET QRCODESHOWTIME");
// return true;
// }
else
if
(!
ticketVo
.
getDescribeElectronic
().
equals
(
ticketPartnerVo
.
getDescribeElectronic
()))
{
log
.
debug
(
"NEED CHANGE TICKET DESCRIBEELECTRONIC"
);
log
.
debug
(
"ticketVo.getDescribeElectronic() ="
+
ticketVo
.
getDescribeElectronic
());
log
.
debug
(
"ticketPartnerVo.getDescribeElectronic() ="
+
ticketPartnerVo
.
getDescribeElectronic
());
return
true
;
}
else
if
(!
ticketVo
.
getDescribeExpress
().
equals
(
ticketPartnerVo
.
getDescribeExpress
()))
{
log
.
debug
(
"NEED CHANGE TICKET DESCRIBEELEXPRESS"
);
log
.
debug
(
"ticketVo.getDescribeExpress() ="
+
ticketVo
.
getDescribeExpress
());
log
.
debug
(
"ticketPartnerVo.getDescribeExpress() ="
+
ticketPartnerVo
.
getDescribeExpress
());
return
true
;
}
if
(!
ticketVo
.
getDescribes
().
equals
(
ticketPartnerVo
.
getDescribes
()))
{
log
.
debug
(
"NEED CHANGE TICKET DESCRIBES"
);
log
.
debug
(
"ticketVo.getDescribes() ="
+
ticketVo
.
getDescribes
());
log
.
debug
(
"ticketPartnerVo.getDescribes() ="
+
ticketPartnerVo
.
getDescribes
());
return
true
;
}
break
;
}
}
}
}
return
false
;
}
}
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