记得上下班打卡 | 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
5611e208
Commit
5611e208
authored
Jun 11, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单限购修改
parent
85d8283c
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
313 additions
and
94 deletions
+313
-94
KylinRedisConst.java
...com/liquidnet/service/kylin/constant/KylinRedisConst.java
+7
-0
KylinOrderListVo.java
...uidnet/service/kylin/dto/vo/returns/KylinOrderListVo.java
+2
-0
KylinPerformancesController.java
...service/kylin/controller/KylinPerformancesController.java
+3
-2
KylinLackRegistersServiceImpl.java
...ice/kylin/service/impl/KylinLackRegistersServiceImpl.java
+1
-0
KylinOrderTicketsServiceImpl.java
...vice/kylin/service/impl/KylinOrderTicketsServiceImpl.java
+45
-86
KylinPerformancesServiceImpl.java
...vice/kylin/service/impl/KylinPerformancesServiceImpl.java
+2
-2
KylinPerformancesPartnerServiceImpl.java
...ice/impl/partner/KylinPerformancesPartnerServiceImpl.java
+0
-1
DataUtils.java
...ain/java/com/liquidnet/service/kylin/utils/DataUtils.java
+153
-3
OrderUtils.java
...in/java/com/liquidnet/service/kylin/utils/OrderUtils.java
+100
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/constant/KylinRedisConst.java
View file @
5611e208
...
...
@@ -15,6 +15,13 @@ public class KylinRedisConst {
public
static
final
String
AGENT
=
"kylin:agent:info"
;
public
static
final
String
ORDER_LIST
=
"kylin:order:list:userId:"
;
public
static
final
String
USERID_BUY_INFO
=
"kylin:buy:userId:"
;
public
static
final
String
IDCARD_BUY_INFO
=
"kylin:buy:idCard:"
;
public
static
final
String
PERFORMANCE_ID
=
"performanceId"
;
public
static
final
String
TICKET_ID
=
"ticketId"
;
public
static
final
String
USE_TIME
=
"useTime"
;
public
static
final
String
BUY_COUNT
=
"buyCount"
;
public
static
final
String
ENTER_INFO
=
"kylin:enter:info:id:"
;
//入场须知
public
static
final
String
CHECK_USER
=
"kylin:checkUser:id:"
;
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/returns/KylinOrderListVo.java
View file @
5611e208
...
...
@@ -9,6 +9,8 @@ import java.math.BigDecimal;
public
class
KylinOrderListVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6554829077875538374L
;
private
String
orderTicketsId
;
private
String
performanceId
;
private
String
ticketId
;
private
String
performanceTitle
;
private
String
performanceImg
;
private
String
orderCode
;
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinPerformancesController.java
View file @
5611e208
...
...
@@ -218,8 +218,9 @@ public class KylinPerformancesController {
}
@PostMapping
(
"/checkPerformanceTime"
)
public
ResponseDto
<
String
>
checkPerformanceTime
(){
return
ResponseDto
.
success
(
kylinPerformancesService
.
checkPerformanceTime
());
@ApiOperation
(
"演出脚本"
)
public
ResponseDto
<
String
>
checkPerformanceTime
(
@RequestParam
(
value
=
"performancesId"
,
required
=
false
)
String
performancesId
){
return
ResponseDto
.
success
(
kylinPerformancesService
.
checkPerformanceTime
(
performancesId
));
}
@PostMapping
(
"lackRegister"
)
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinLackRegistersServiceImpl.java
View file @
5611e208
...
...
@@ -40,6 +40,7 @@ public class KylinLackRegistersServiceImpl extends ServiceImpl<KylinLackRegister
SqlMapping
.
get
(
"kylin_lack_register.insert"
,
lackRegisters
.
getInsertObj
()));
return
ResponseDto
.
success
(
"登记成功"
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ResponseDto
.
success
(
"登记失败"
);
}
}
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
View file @
5611e208
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinPerformancesServiceImpl.java
View file @
5611e208
...
...
@@ -475,9 +475,9 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
return
payDetailVo
;
}
public
String
checkPerformanceTime
(){
public
String
checkPerformanceTime
(
String
performancesId
){
try
{
task
.
performanceVoStatus
(
null
);
task
.
performanceVoStatus
(
performancesId
);
return
"成功"
;
}
catch
(
Exception
e
){
e
.
printStackTrace
();
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/partner/KylinPerformancesPartnerServiceImpl.java
View file @
5611e208
...
...
@@ -477,7 +477,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
,
new
UpdateWrapper
<
KylinTicketStatus
>().
eq
(
"ticket_id"
,
ticketRelationsItem
.
getTicketId
()).
eq
(
"status"
,
7
));
}
}
dataUtils
.
updatePerformanceMongo
(
performancesId
);
// 判断状态
performanceVoTask
.
performanceVoStatus
(
performancesId
);
return
ResponseDto
.
success
(
"上线成功"
);
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
View file @
5611e208
...
...
@@ -5,11 +5,12 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.*
;
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.*
;
import
com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper
;
import
io.lettuce.core.GeoArgs
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
...
...
@@ -17,6 +18,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
@Component
...
...
@@ -77,6 +80,20 @@ public class DataUtils {
}
}
/**
* 判断 当前库存是否售罄
*
* @param ticketId 票id
* @return boolean
*/
public
boolean
ticketIsSoldOut
(
String
ticketId
)
{
if
(
0
>=
getSurplusGeneral
(
ticketId
))
{
return
true
;
}
else
{
return
false
;
}
}
/**
* 初始化兑换库存
*
...
...
@@ -127,7 +144,7 @@ public class DataUtils {
return
(
KylinPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
);
}
public
void
setOrderTicketVo
(
String
userId
,
List
<
KylinOrderListVo
>
vo
)
{
public
void
setOrderTicketVo
(
String
userId
,
List
<
KylinOrderListVo
>
vo
)
{
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
vo
);
}
...
...
@@ -135,7 +152,7 @@ public class DataUtils {
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
),
.
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
)).
limit
(
40
),
KylinOrderListVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
voList
);
}
...
...
@@ -170,6 +187,7 @@ public class DataUtils {
/**
* 获取bannerVo
*
* @param bannerId
* @return
*/
...
...
@@ -304,4 +322,136 @@ public class DataUtils {
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
();
int
ticketType
=
0
;
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
();
ticketType
=
ticketItem
.
getType
();
}
}
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
);
if
(
1
==
ticketType
)
{
int
count
=
0
;
for
(
int
i
=
0
;
i
<
allTicketId
.
get
(
useTime
).
size
();
i
++)
{
String
item
=
allTicketId
.
get
(
useTime
).
get
(
i
);
if
(
allTicketId
.
get
(
useTime
).
size
()==
1
){
redisUtil
.
incr
(
performanceIdKey
,
buyCount
);
break
;
}
if
(
i
==
0
)
{
count
=
(
int
)
redisUtil
.
get
(
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
item
);
}
else
{
if
(
count
!=
(
int
)
redisUtil
.
get
(
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
item
)){
redisUtil
.
incr
(
performanceIdKey
,
buyCount
);
break
;
}
}
}
}
else
{
redisUtil
.
incr
(
performanceIdKey
,
buyCount
);
}
}
else
{
redisUtil
.
decr
(
ticketIdKey
,
Math
.
abs
(
buyCount
));
if
(
1
==
ticketType
)
{
int
count
=
0
;
for
(
int
i
=
0
;
i
<
allTicketId
.
get
(
useTime
).
size
();
i
++)
{
String
item
=
allTicketId
.
get
(
useTime
).
get
(
i
);
if
(
allTicketId
.
get
(
useTime
).
size
()==
1
){
redisUtil
.
decr
(
performanceIdKey
,
Math
.
abs
(
buyCount
));
break
;
}
if
(
i
==
0
)
{
count
=
(
int
)
redisUtil
.
get
(
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
item
);
}
else
{
if
(
count
!=
(
int
)
redisUtil
.
get
(
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
item
)){
redisUtil
.
decr
(
performanceIdKey
,
Math
.
abs
(
buyCount
));
break
;
}
}
}
}
else
{
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
.
USERID_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
.
USERID_BUY_INFO
+
idCard
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
);
}
catch
(
Exception
e
)
{
return
0
;
}
}
// 获取 证件维度 票种适用时间
public
String
getIdCardTUseTime
(
String
idCard
,
String
ticketId
)
{
try
{
return
(
String
)
redisUtil
.
get
(
KylinRedisConst
.
USERID_BUY_INFO
+
idCard
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
+
":"
+
KylinRedisConst
.
USE_TIME
);
}
catch
(
Exception
e
)
{
return
""
;
}
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/OrderUtils.java
0 → 100644
View file @
5611e208
package
com
.
liquidnet
.
service
.
kylin
.
utils
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
io.swagger.models.auth.In
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
@Component
public
class
OrderUtils
{
@Autowired
private
DataUtils
dataUtils
;
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
;
if
(
103
==
type
)
{
integers
=
festivalOrderLimit
(
userId
,
idCard
,
performanceId
,
ticketId
,
performanceBuyCount
,
ticketBuyCount
,
isTrueName
);
}
else
{
integers
=
roadShowOrderLimit
(
userId
,
idCard
,
performanceId
,
ticketId
,
performanceBuyCount
,
ticketBuyCount
,
isTrueName
);
}
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
.
getUserPBuyCount
(
idCard
,
performanceId
);
ticketBuyCount
+=
dataUtils
.
getUserTBuyCount
(
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
""
;
}
}
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