记得上下班打卡 | 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
56016f55
Commit
56016f55
authored
Sep 16, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 导入 初步测试
parent
8df400b3
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
498 additions
and
52 deletions
+498
-52
OrderOutLineVo.java
...idnet/client/admin/zhengzai/kylin/dto/OrderOutLineVo.java
+8
-4
ImportServiceImpl.java
.../admin/zhengzai/kylin/service/impl/ImportServiceImpl.java
+281
-47
DataUtils.java
...iquidnet/client/admin/zhengzai/kylin/utils/DataUtils.java
+36
-0
OrderUtils.java
...quidnet/client/admin/zhengzai/kylin/utils/OrderUtils.java
+170
-0
RedisUtil.java
...java/com.liquidnet.common.cache/redis/util/RedisUtil.java
+3
-1
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/dto/OrderOutLineVo.java
View file @
56016f55
...
@@ -12,11 +12,15 @@ public class OrderOutLineVo {
...
@@ -12,11 +12,15 @@ public class OrderOutLineVo {
@Excel
(
name
=
"身份证"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
@Excel
(
name
=
"身份证"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
enterIdCode
;
private
String
enterIdCode
;
@Excel
(
name
=
"购票数量"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
@Excel
(
name
=
"购票数量"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
String
number
;
private
Integer
number
;
@Excel
(
name
=
"票种名称"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
@Excel
(
name
=
"票种名称"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
ticketTitle
;
private
String
ticketTitle
;
@Excel
(
name
=
"票种适用时间"
,
cellType
=
Excel
.
ColumnType
.
STRING
,
dateFormat
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"票种适用开始时间"
,
cellType
=
Excel
.
ColumnType
.
STRING
,
dateFormat
=
"yyyy-MM-dd"
)
private
String
useTime
;
private
String
useStart
;
@Excel
(
name
=
"票种类型(电子票)"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
@Excel
(
name
=
"票种适用结束时间"
,
cellType
=
Excel
.
ColumnType
.
STRING
,
dateFormat
=
"yyyy-MM-dd"
)
private
String
useEnd
;
@Excel
(
name
=
"票种类型(电子票,快递票)"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
ticketType
;
private
String
ticketType
;
@Excel
(
name
=
"快递票地址"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
address
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/ImportServiceImpl.java
View file @
56016f55
...
@@ -5,20 +5,36 @@ import com.liquidnet.client.admin.common.exception.BusinessException;
...
@@ -5,20 +5,36 @@ import com.liquidnet.client.admin.common.exception.BusinessException;
import
com.liquidnet.client.admin.common.utils.StringUtils
;
import
com.liquidnet.client.admin.common.utils.StringUtils
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo
;
import
com.liquidnet.client.admin.zhengzai.kylin.service.IImportService
;
import
com.liquidnet.client.admin.zhengzai.kylin.service.IImportService
;
import
com.liquidnet.c
ommons.lang.util.HttpUtil
;
import
com.liquidnet.c
lient.admin.zhengzai.kylin.utils.DataUtils
;
import
com.liquidnet.c
ommons.lang.util.Json
Utils
;
import
com.liquidnet.c
lient.admin.zhengzai.kylin.utils.Order
Utils
;
import
com.liquidnet.
service.adam.dto.vo.AdamEntersVo
;
import
com.liquidnet.
commons.lang.util.*
;
import
com.liquidnet.service.adam.dto.vo.AdamUserInfoVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserInfoVo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.dto.param.SyncOrderParam
;
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.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketRelations
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketStatus
;
import
com.liquidnet.service.kylin.entity.KylinOrderTickets
;
import
com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService
;
import
com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Service
public
class
ImportServiceImpl
implements
IImportService
{
public
class
ImportServiceImpl
implements
IImportService
{
...
@@ -27,6 +43,12 @@ public class ImportServiceImpl implements IImportService {
...
@@ -27,6 +43,12 @@ public class ImportServiceImpl implements IImportService {
IKylinPerformancesAdminService
kylinPerformancesService
;
IKylinPerformancesAdminService
kylinPerformancesService
;
@Value
(
"${liquidnet.service.adam.url}"
)
@Value
(
"${liquidnet.service.adam.url}"
)
private
String
adamUrl
;
private
String
adamUrl
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
OrderUtils
orderUtils
;
@Autowired
private
MongoTemplate
mongoTemplate
;
/**
/**
* 导入订单数据
* 导入订单数据
...
@@ -41,61 +63,98 @@ public class ImportServiceImpl implements IImportService {
...
@@ -41,61 +63,98 @@ public class ImportServiceImpl implements IImportService {
StringBuilder
failureMsg
=
new
StringBuilder
();
StringBuilder
failureMsg
=
new
StringBuilder
();
for
(
OrderOutLineVo
orderOutLineVo
:
orderOutLineVoList
)
{
for
(
OrderOutLineVo
orderOutLineVo
:
orderOutLineVoList
)
{
//获取演出维度数据
KylinPerformanceMisVo
misVo
=
kylinPerformancesService
.
performanceDetails
(
performancesId
);
//获取账号维度数据
//获取账号维度数据
String
enterMobile
=
orderOutLineVo
.
getEnterMobile
();
String
enterMobile
=
orderOutLineVo
.
getEnterMobile
();
String
enterIdCode
=
orderOutLineVo
.
getEnterIdCode
();
String
enterIdCode
=
orderOutLineVo
.
getEnterIdCode
();
String
enterName
=
orderOutLineVo
.
getEnterName
();
String
enterName
=
orderOutLineVo
.
getEnterName
();
String
number
=
orderOutLineVo
.
getNumber
();
Integer
number
=
orderOutLineVo
.
getNumber
();
String
address
=
orderOutLineVo
.
getAddress
();
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
params
.
add
(
"mobile"
,
orderOutLineVo
.
getEnterMobile
()
);
params
.
add
(
"mobile"
,
enterMobile
);
String
returnData
=
HttpUtil
.
post
(
adamUrl
.
concat
(
"/adam/rsc/reg/mobile"
),
params
);
String
returnData
=
HttpUtil
.
post
(
adamUrl
.
concat
(
"/adam/rsc/reg/mobile"
),
params
);
AdamUserInfoVo
adamUserInfoVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
AdamUserInfoVo
>>()
{}).
getData
();
AdamUserInfoVo
adamUserInfoVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
AdamUserInfoVo
>>()
{
String
uid
=
adamUserInfoVo
.
getUid
();
}).
getData
();
String
uid
=
adamUserInfoVo
.
getUid
();
Boolean
isMember
;
Boolean
isMember
;
if
(
adamUserInfoVo
.
getStageMarker
().
equals
(
"10"
)
||
adamUserInfoVo
.
getStageMarker
().
equals
(
"11"
))
{
if
(
adamUserInfoVo
.
getStageMarker
().
equals
(
"10"
)
||
adamUserInfoVo
.
getStageMarker
().
equals
(
"11"
))
{
isMember
=
true
;
isMember
=
true
;
}
else
{
}
else
{
isMember
=
false
;
isMember
=
false
;
}
}
Boolean
isTrueName
;
//找到对应票种和场次
Boolean
isStudent
;
String
ticketTitle
=
orderOutLineVo
.
getTicketTitle
();
String
ticketTitle
=
orderOutLineVo
.
getTicketTitle
();
String
useTime
=
orderOutLineVo
.
getUseTime
();
String
startTime
=
orderOutLineVo
.
getUseStart
();
String
ticketType
;
String
endTime
=
orderOutLineVo
.
getUseEnd
();
if
(
orderOutLineVo
.
getTicketType
().
equals
(
"电子票"
)){
KylinPerformanceVo
performanceData
=
dataUtils
.
getPerformanceVo
(
performancesId
);
ticketType
=
"electronic"
;
KylinTicketTimesVo
ticketTimesData
=
null
;
}
KylinTicketVo
ticketData
=
null
;
// else if(orderOutLineVo.getTicketType().equals("快递票")){
for
(
int
x
=
0
;
x
<
performanceData
.
getTicketTimeList
().
size
();
x
++)
{
// ticketType="express";
KylinTicketTimesVo
timeItem
=
performanceData
.
getTicketTimeList
().
get
(
x
);
// }
if
(
timeItem
.
getUseStart
().
equals
(
startTime
)
&&
timeItem
.
getUseEnd
().
equals
(
endTime
))
{
ticketTimesData
=
timeItem
;
for
(
int
y
=
0
;
y
<
ticketTimesData
.
getTicketList
().
size
();
y
++)
{
// try {
KylinTicketVo
ticketItem
=
ticketTimesData
.
getTicketList
().
get
(
y
);
// // 验证是否存在这个用户
if
(
ticketItem
.
getTitle
().
equals
(
ticketTitle
))
{
// OrderOutLineVo u = studentMapper.selectStudentByName(student.getStudentName());
ticketData
=
ticketItem
;
// if (StringUtils.isNull(u)) {
break
;
// student.setStudentName(student.getStudentName());
}
// this.insertStudent(student);
}
// successNum++;
break
;
// successMsg.append("<br/>" + successNum + "学校信息" + student.getStudentName() + " 导入成功");
}
// } else if (updateSupport) {
}
// student.setUpdateBy(operName);
// 获取限购 实名
// this.updateStudent(student);
int
ticketLimit
=
ticketData
.
getLimitCount
();
//普通票种限购
// successNum++;
int
ticketMemberLimit
=
ticketData
.
getLimitCountMember
();
//会员票种限购
// successMsg.append("<br/>" + successNum + "学校信息 " + student.getStudentName() + " 更新成功");
int
performanceLimit
=
performanceData
.
getLimitCount
();
//普通演出限购
// } else {
int
performanceMemberLimit
=
performanceData
.
getLimitCountMember
();
//会员演出限购
// failureNum++;
int
isTrueName
=
ticketData
.
getIsTrueName
();
//是否演出实名
// failureMsg.append("<br/>" + failureNum + "学校信息" + student.getStudentName() + " 已存在");
Integer
isStudent
=
ticketData
.
getIsStudent
();
// }
String
ticketType
=
""
;
// } catch (Exception e) {
if
(
orderOutLineVo
.
getTicketType
().
contains
(
"电子"
))
{
// failureNum++;
ticketType
=
"electronic"
;
// String msg = "<br/>" + failureNum + "学校信息" + student.getStudentName() + " 导入失败:";
}
else
if
(
orderOutLineVo
.
getTicketType
().
contains
(
"快递"
))
{
// failureMsg.append(msg + e.getMessage());
ticketType
=
"express"
;
// log.error(msg, e);
}
// }
//快递票判断
if
(
ticketType
.
equals
(
"express"
))
{
if
(
address
.
isEmpty
())
{
return
"快递票未填写收货地址"
;
}
}
//实名判断
if
(
isTrueName
==
1
&&
(
enterIdCode
.
isEmpty
()
||
enterName
.
isEmpty
()))
{
return
"实名票未填写入场人"
;
}
//学生票 判断
if
(
isTrueName
==
1
)
{
if
(
isStudent
==
1
)
{
int
age
=
IDCard
.
getAgeByIdCard
(
enterIdCode
);
if
(
age
>
25
)
{
return
"年龄不符合"
;
//年龄超了
}
}
}
//限购判断 如果实名 则身份证维度限购 如果不实名则数量限购
if
(
isTrueName
==
1
)
{
String
res1
=
orderUtils
.
judgeOrderLimit
(
performanceData
.
getType
(),
uid
,
enterIdCode
,
performancesId
,
ticketData
.
getTicketsId
(),
performanceLimit
,
performanceMemberLimit
,
ticketLimit
,
ticketMemberLimit
,
1
,
1
,
0
,
isTrueName
);
if
(!
res1
.
equals
(
""
))
{
return
res1
;
//乱七八糟异常
}
}
else
{
String
res1
=
orderUtils
.
judgeOrderLimit
(
performanceData
.
getType
(),
uid
,
""
,
performancesId
,
ticketData
.
getTicketsId
(),
performanceLimit
,
performanceMemberLimit
,
ticketLimit
,
ticketMemberLimit
,
number
,
number
,
0
,
isTrueName
);
if
(!
res1
.
equals
(
""
))
{
return
res1
;
//乱七八糟异常
}
}
try
{
order
(
number
,
ticketType
.
equals
(
"express"
)
?
1
:
0
,
uid
,
isMember
,
performanceData
,
ticketTimesData
,
ticketData
,
enterMobile
,
enterName
,
enterIdCode
,
address
);
successNum
++;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
failureNum
++;
}
}
}
if
(
failureNum
>
0
)
{
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
...
@@ -105,4 +164,179 @@ public class ImportServiceImpl implements IImportService {
...
@@ -105,4 +164,179 @@ public class ImportServiceImpl implements IImportService {
}
}
return
successMsg
.
toString
();
return
successMsg
.
toString
();
}
}
private
void
order
(
Integer
number
,
Integer
IsExpress
,
String
uid
,
boolean
isMember
,
KylinPerformanceVo
performanceData
,
KylinTicketTimesVo
ticketTimesVo
,
KylinTicketVo
ticketData
,
String
enterMobile
,
String
enterName
,
String
enterIdCode
,
String
address
)
throws
Exception
{
String
source
=
"OUTLINE"
;
String
version
=
"OUTLINE"
;
LocalDateTime
now
=
LocalDateTime
.
now
();
//生成订单 order_ticket
KylinOrderTickets
orderTickets
=
KylinOrderTickets
.
getNew
();
String
orderTicketId
=
IDGenerator
.
nextSnowId
();
orderTickets
.
setOrderTicketsId
(
orderTicketId
);
orderTickets
.
setUserId
(
uid
);
Map
token
=
CurrentUtil
.
getTokenClaims
();
orderTickets
.
setUserName
(
StringUtils
.
defaultString
(((
String
)
token
.
get
(
"nickname"
)),
""
));
orderTickets
.
setUserMobile
(
StringUtils
.
defaultString
(((
String
)
token
.
get
(
"mobile"
)),
""
));
orderTickets
.
setPerformanceTitle
(
performanceData
.
getTitle
());
orderTickets
.
setOrderCode
(
IDGenerator
.
ticketOrderCode
(
orderTicketId
));
orderTickets
.
setPayCode
(
"OUTLINE"
);
orderTickets
.
setQrCode
(
IDGenerator
.
ticketQrCode
(
orderTickets
.
getOrderTicketsId
()));
orderTickets
.
setOrderType
(
source
);
orderTickets
.
setOrderVersion
(
version
);
orderTickets
.
setNumber
(
number
);
orderTickets
.
setPrice
(
ticketData
.
getPrice
());
orderTickets
.
setPriceMember
(
ticketData
.
getMemberPrice
());
if
(
isMember
)
{
orderTickets
.
setPriceTotal
(
ticketData
.
getMemberPrice
().
multiply
(
BigDecimal
.
valueOf
(
number
)).
add
(
IsExpress
==
1
?
ticketData
.
getPriceExpress
()
:
BigDecimal
.
valueOf
(
0
)));
}
else
{
orderTickets
.
setPriceTotal
(
ticketData
.
getPrice
().
multiply
(
BigDecimal
.
valueOf
(
number
)).
add
(
IsExpress
==
1
?
ticketData
.
getPriceExpress
()
:
BigDecimal
.
valueOf
(
0
)));
}
orderTickets
.
setPriceActual
(
orderTickets
.
getPriceTotal
());
orderTickets
.
setPriceVoucher
(
BigDecimal
.
valueOf
(
0.0
));
orderTickets
.
setPriceExpress
(
IsExpress
==
1
?
ticketData
.
getPriceExpress
()
:
BigDecimal
.
valueOf
(
0
));
orderTickets
.
setPriceRefund
(
BigDecimal
.
valueOf
(
0.0
));
orderTickets
.
setRefundNumber
(
0
);
orderTickets
.
setPayType
(
"OUTLINE"
);
orderTickets
.
setPaymentType
(
"OUTLINE"
);
orderTickets
.
setPaymentId
(
"OUTLINE"
);
orderTickets
.
setTimePay
(
DateUtil
.
getNowTime
());
if
(
IsExpress
==
1
)
{
orderTickets
.
setExpressContacts
(
enterName
);
orderTickets
.
setExpressAddress
(
address
);
orderTickets
.
setExpressPhone
(
enterMobile
);
orderTickets
.
setCity
(
""
);
orderTickets
.
setProvince
(
""
);
orderTickets
.
setCounty
(
""
);
orderTickets
.
setGetTicketType
(
"express"
);
}
else
{
orderTickets
.
setExpressContacts
(
""
);
orderTickets
.
setExpressAddress
(
""
);
orderTickets
.
setExpressPhone
(
""
);
orderTickets
.
setCity
(
""
);
orderTickets
.
setProvince
(
""
);
orderTickets
.
setCounty
(
""
);
orderTickets
.
setGetTicketType
(
"electronic"
);
}
orderTickets
.
setCouponType
(
"no"
);
orderTickets
.
setGetTicketDescribe
(
""
);
orderTickets
.
setPayCountdownMinute
(
performanceData
.
getPayCountdownMinute
());
orderTickets
.
setCreatedAt
(
now
);
orderTickets
.
setUpdatedAt
(
null
);
//生成订单 order_ticket_status
KylinOrderTicketStatus
orderTicketStatus
=
KylinOrderTicketStatus
.
getNew
();
String
orderTicketStatusId
=
IDGenerator
.
nextSnowId
();
orderTicketStatus
.
setOrderTicketStatusId
(
orderTicketStatusId
);
orderTicketStatus
.
setOrderId
(
orderTicketId
);
orderTicketStatus
.
setExpressType
(
2
);
orderTicketStatus
.
setTransferStatus
(
KylinTableStatusConst
.
ORDER_TRANSFER_STATUS0
);
orderTicketStatus
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketStatus
.
setIsStudent
(
ticketData
.
getIsStudent
());
orderTicketStatus
.
setPayStatus
(
KylinTableStatusConst
.
ORDER_PAY_STATUS1
);
orderTicketStatus
.
setCreatedAt
(
now
);
orderTicketStatus
.
setUpdatedAt
(
null
);
//生成订单 order_ticket_relation
KylinOrderTicketRelations
orderTicketRelations
=
KylinOrderTicketRelations
.
getNew
();
String
orderTicketRelationId
=
IDGenerator
.
nextSnowId
();
orderTicketRelations
.
setOrderTicketRelationsId
(
orderTicketRelationId
);
orderTicketRelations
.
setOrderId
(
orderTicketId
);
orderTicketRelations
.
setTransferId
(
""
);
orderTicketRelations
.
setLiveId
(
""
);
orderTicketRelations
.
setAgentId
(
"0"
);
orderTicketRelations
.
setIsMember
(
isMember
?
1
:
0
);
orderTicketRelations
.
setPerformanceId
(
performanceData
.
getPerformancesId
());
orderTicketRelations
.
setTimeId
(
ticketTimesVo
.
getTimeId
());
orderTicketRelations
.
setTicketId
(
ticketData
.
getTicketsId
());
orderTicketRelations
.
setCreatedAt
(
now
);
orderTicketRelations
.
setUpdatedAt
(
null
);
//生成票
KylinOrderTicketEntities
orderTicketEntities
=
KylinOrderTicketEntities
.
getNew
();
if
(
performanceData
.
getIsTrueName
()
==
1
)
{
String
orderTicketEntitiesId
=
IDGenerator
.
nextSnowId
();
orderTicketEntities
.
setOrderTicketEntitiesId
(
orderTicketEntitiesId
);
orderTicketEntities
.
setOrderId
(
orderTicketId
);
orderTicketEntities
.
setUserId
(
uid
);
orderTicketEntities
.
setTicketId
(
ticketData
.
getTicketsId
());
orderTicketEntities
.
setPerformanceId
(
performanceData
.
getPerformancesId
());
orderTicketEntities
.
setTimeId
(
ticketTimesVo
.
getTimeId
());
orderTicketEntities
.
setEnterType
(
1
);
orderTicketEntities
.
setEnterName
(
enterName
);
orderTicketEntities
.
setEnterMobile
(
enterMobile
);
orderTicketEntities
.
setEnterIdCode
(
enterIdCode
);
orderTicketEntities
.
setStatus
(
KylinTableStatusConst
.
ENTITIES_STATUS0
);
orderTicketEntities
.
setSysDamai
(
ticketData
.
getSysDamai
());
orderTicketEntities
.
setCheckClient
(
""
);
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setRefundPrice
(
BigDecimal
.
valueOf
(
0.0
));
orderTicketEntities
.
setComment
(
""
);
orderTicketEntities
.
setCreatedAt
(
now
);
orderTicketEntities
.
setUpdatedAt
(
null
);
// 生成vo
KylinOrderTicketEntitiesVo
orderTicketEntitiesVo
=
KylinOrderTicketEntitiesVo
.
getNew
();
BeanUtils
.
copyProperties
(
orderTicketEntities
,
orderTicketEntitiesVo
);
orderTicketEntitiesVo
.
setPerformanceTitle
(
performanceData
.
getTitle
());
orderTicketEntitiesVo
.
setTicketTitle
(
ticketData
.
getTitle
());
orderTicketEntitiesVo
.
setUseStart
(
ticketData
.
getUseStart
());
orderTicketEntitiesVo
.
setUseEnd
(
ticketData
.
getUseEnd
());
orderTicketEntitiesVo
.
setCreatedAt
(
orderTicketEntities
.
getCreatedAt
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
orderTicketEntitiesVo
.
setUpdatedAt
(
null
);
orderTicketEntitiesVo
.
setChangeDate
(
orderTicketEntities
.
getCreatedAt
());
mongoTemplate
.
insert
(
orderTicketEntitiesVo
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
dataUtils
.
changeBuyInfo
(
orderTicketEntitiesVo
.
getUserId
(),
orderTicketEntitiesVo
.
getEnterIdCode
(),
orderTicketEntitiesVo
.
getPerformanceId
(),
orderTicketEntitiesVo
.
getTicketId
(),
1
);
}
else
{
String
orderTicketEntitiesId
=
IDGenerator
.
nextSnowId
();
orderTicketEntities
.
setOrderTicketEntitiesId
(
orderTicketEntitiesId
);
orderTicketEntities
.
setOrderId
(
orderTicketId
);
orderTicketEntities
.
setUserId
(
uid
);
orderTicketEntities
.
setTicketId
(
ticketData
.
getTicketsId
());
orderTicketEntities
.
setPerformanceId
(
performanceData
.
getPerformancesId
());
orderTicketEntities
.
setTimeId
(
ticketTimesVo
.
getTimeId
());
orderTicketEntities
.
setEnterType
(
0
);
orderTicketEntities
.
setEnterName
(
""
);
orderTicketEntities
.
setEnterMobile
(
""
);
orderTicketEntities
.
setEnterIdCode
(
""
);
orderTicketEntities
.
setStatus
(
KylinTableStatusConst
.
ENTITIES_STATUS0
);
orderTicketEntities
.
setSysDamai
(
ticketData
.
getSysDamai
());
orderTicketEntities
.
setCheckClient
(
""
);
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setComment
(
""
);
orderTicketEntities
.
setCreatedAt
(
now
);
orderTicketEntities
.
setUpdatedAt
(
null
);
// 生成vo
KylinOrderTicketEntitiesVo
orderTicketEntitiesVo
=
KylinOrderTicketEntitiesVo
.
getNew
();
BeanUtils
.
copyProperties
(
orderTicketEntities
,
orderTicketEntitiesVo
);
orderTicketEntitiesVo
.
setPerformanceTitle
(
performanceData
.
getTitle
());
orderTicketEntitiesVo
.
setTicketTitle
(
ticketData
.
getTitle
());
orderTicketEntitiesVo
.
setUseStart
(
ticketData
.
getUseStart
());
orderTicketEntitiesVo
.
setUseEnd
(
ticketData
.
getUseEnd
());
orderTicketEntitiesVo
.
setCreatedAt
(
orderTicketEntities
.
getCreatedAt
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
orderTicketEntitiesVo
.
setUpdatedAt
(
null
);
orderTicketEntitiesVo
.
setChangeDate
(
orderTicketEntities
.
getCreatedAt
());
mongoTemplate
.
insert
(
orderTicketEntitiesVo
,
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
());
dataUtils
.
changeBuyInfo
(
orderTicketEntitiesVo
.
getUserId
(),
orderTicketEntitiesVo
.
getEnterIdCode
(),
orderTicketEntitiesVo
.
getPerformanceId
(),
orderTicketEntitiesVo
.
getTicketId
(),
1
);
}
// 生成vo
KylinOrderTicketVo
orderTicketVo
=
KylinOrderTicketVo
.
getNew
();
orderTicketVo
.
setOrderTicket
(
orderTickets
);
orderTicketVo
.
setOrderTicketStatus
(
orderTicketStatus
);
orderTicketVo
.
setOrderTicketRelation
(
orderTicketRelations
);
orderTicketVo
.
setPerformanceImg
(
performanceData
.
getImgPoster
());
orderTicketVo
.
setTicketTitle
(
ticketData
.
getTitle
());
orderTicketVo
.
setUseStart
(
ticketData
.
getUseStart
());
orderTicketVo
.
setTimeStart
(
performanceData
.
getTimeStart
());
orderTicketVo
.
setOverdueAt
(
orderTickets
.
getCreatedAt
().
plusMinutes
(
performanceData
.
getPayCountdownMinute
()).
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
orderTicketVo
.
setCreatedAt
(
orderTickets
.
getCreatedAt
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
orderTicketVo
.
setChangeDate
(
orderTickets
.
getCreatedAt
());
mongoTemplate
.
insert
(
orderTicketVo
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
orderUtils
.
resetOrderListVo
(
uid
,
1
,
orderTicketVo
.
getOrderTicketsId
(),
orderTicketVo
);
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/utils/DataUtils.java
View file @
56016f55
...
@@ -352,4 +352,40 @@ public class DataUtils {
...
@@ -352,4 +352,40 @@ public class DataUtils {
}
}
return
ret
;
return
ret
;
}
}
// 获取 用户维度 演出购买数量
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
;
}
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/utils/OrderUtils.java
0 → 100644
View file @
56016f55
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
utils
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
@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
(
101
==
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
],
isTrueName
);
}
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
);
}
Integer
[]
array
=
new
Integer
[
2
];
array
[
0
]
=
performanceBuyCount
;
array
[
1
]
=
ticketBuyCount
;
return
array
;
}
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
);
}
Integer
[]
array
=
new
Integer
[
2
];
array
[
0
]
=
performanceBuyCount
;
array
[
1
]
=
ticketBuyCount
;
return
array
;
}
public
String
judgeMemberType
(
int
performanceLimitCount
,
int
performanceMemberLimitCount
,
int
ticketLimitCount
,
int
ticketMemberLimitCount
,
int
memberType
,
int
performanceBuyCount
,
int
ticketBuyCount
,
int
isTrueName
)
{
if
(
memberType
==
1
||
memberType
==
2
)
{
if
(
performanceBuyCount
>
performanceMemberLimitCount
&&
performanceMemberLimitCount
!=
0
)
{
return
(
1
==
isTrueName
?
"实名制"
:
"本场"
)
+
"演出限购"
+
performanceMemberLimitCount
+
"张,已超出"
;
//超过演出维度购买量
}
if
(
ticketBuyCount
>
ticketMemberLimitCount
&&
ticketMemberLimitCount
!=
0
)
{
return
(
1
==
isTrueName
?
"实名制"
:
"该"
)
+
"票种限购"
+
ticketMemberLimitCount
+
"张,已超出"
;
//超过票维度购买量
}
}
else
{
//非会员区间
if
(
performanceBuyCount
>
performanceLimitCount
&&
performanceLimitCount
!=
0
)
{
return
(
1
==
isTrueName
?
"实名制"
:
"本场"
)
+
"演出限购"
+
performanceLimitCount
+
"张,已超出"
;
//超过演出维度购买量
}
if
(
ticketBuyCount
>
ticketLimitCount
&&
ticketLimitCount
!=
0
)
{
return
(
1
==
isTrueName
?
"实名制"
:
"该"
)
+
"票种限购"
+
ticketLimitCount
+
"张,已超出"
;
//超过票维度购买量
}
}
return
""
;
}
/**
* @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
=
KylinOrderListVo
.
getNew
();
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-common/liquidnet-common-cache/liquidnet-common-cache-redis/src/main/java/com.liquidnet.common.cache/redis/util/RedisUtil.java
View file @
56016f55
...
@@ -755,7 +755,9 @@ public final class RedisUtil {
...
@@ -755,7 +755,9 @@ public final class RedisUtil {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
String
[]
keys
=
{
String
[]
keys
=
{
"adam:identity:mobile:18518013286"
"kylin:order:id:302624032735805444241994"
,
"kylin:order:id:302739844787937288909968"
,
"kylin:order:id:302739847197122562214368"
};
};
for
(
String
key
:
keys
)
{
for
(
String
key
:
keys
)
{
long
value
=
key
.
hashCode
();
long
value
=
key
.
hashCode
();
...
...
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