记得上下班打卡 | 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
8dd2fcaf
Commit
8dd2fcaf
authored
Feb 28, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
迁移老推送大麦到 plarform
parent
46a09ccb
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
548 additions
and
13 deletions
+548
-13
FeignPlatformTaskClient.java
...net/service/feign/kylin/task/FeignPlatformTaskClient.java
+13
-7
KylinTaskHandler.java
...idnet/service/executor/main/handler/KylinTaskHandler.java
+26
-6
pom.xml
...-service-platform/liquidnet-service-platform-impl/pom.xml
+14
-0
PlatformDamaiController.java
.../service/platform/controller/PlatformDamaiController.java
+25
-0
PlatformDamaiServiceImpl.java
...rvice/platform/service/impl/PlatformDamaiServiceImpl.java
+350
-0
TaobaoTicketUtils.java
...m/liquidnet/service/platform/utils/TaobaoTicketUtils.java
+120
-0
No files found.
liquidnet-bus-feign/liquidnet-api-feign-kylin/src/main/java/com/liquidnet/service/feign/kylin/task/FeignPlatformTaskClient.java
View file @
8dd2fcaf
...
...
@@ -10,10 +10,8 @@ import org.springframework.web.bind.annotation.PutMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
@Component
@FeignClient
(
name
=
"liquidnet-service-platform"
,
contextId
=
"FeignPlatformTaskClient"
,
path
=
""
,
url
=
"${liquidnet.service.platform.url}"
,
// url = "",
@FeignClient
(
name
=
"liquidnet-service-platform"
,
contextId
=
"FeignPlatformTaskClient"
,
path
=
""
,
url
=
"${liquidnet.service.platform.url}"
,
// url = "",
fallback
=
FallbackFactory
.
Default
.
class
)
public
interface
FeignPlatformTaskClient
{
...
...
@@ -31,23 +29,31 @@ public interface FeignPlatformTaskClient {
@GetMapping
(
"platform/performance/line"
)
ResponseDto
<
Boolean
>
performanceLine
();
/**
* 定时开票提醒
*
* @author zjp
* @return: com.liquidnet.service.base.ResponseDto<java.lang.Boolean>
* @date 2024/3/21 18:03
*/
*/
@GetMapping
(
"platform/performance/subscribePush"
)
ResponseDto
<
Boolean
>
performanceSubscribePush
();
/*
* @description: 自动处理退款失败
*
* @author: zjp
*
* @date: 2025/4/27 14:28
*
* @param: []
*
* @return: com.liquidnet.service.base.ResponseDto<java.lang.Boolean>
**/
@GetMapping
(
"platform/refund/failRefund"
)
ResponseDto
<
Boolean
>
failRefund
();
@PostMapping
(
"platform/damai/sync"
)
ResponseDto
<
Boolean
>
syncDamai
(
@RequestParam
(
"performancesId"
)
String
performancesId
);
}
liquidnet-bus-service/liquidnet-service-executor-all/liquidnet-service-executor-main/src/main/java/com/liquidnet/service/executor/main/handler/KylinTaskHandler.java
View file @
8dd2fcaf
...
...
@@ -11,8 +11,10 @@ import org.springframework.stereotype.Component;
* XxlJob开发示例(Bean模式)
* <p>
* 开发步骤:
* 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
* 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
* 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String
* param)"
* 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法",
* destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
* 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
*/
@Component
...
...
@@ -56,7 +58,8 @@ public class KylinTaskHandler {
@XxlJob
(
value
=
"sev-platform:checkTransferOrderHandler"
)
public
void
checkTransferOrderHandler
()
{
try
{
XxlJobHelper
.
handleSuccess
(
"结果:"
+
feignPlatformTaskClient
.
checkTransferOrder
(
Integer
.
parseInt
(
XxlJobHelper
.
getJobParam
())).
getData
());
XxlJobHelper
.
handleSuccess
(
"结果:"
+
feignPlatformTaskClient
.
checkTransferOrder
(
Integer
.
parseInt
(
XxlJobHelper
.
getJobParam
())).
getData
());
}
catch
(
Exception
e
)
{
XxlJobHelper
.
log
(
e
);
XxlJobHelper
.
handleFail
();
...
...
@@ -82,14 +85,15 @@ public class KylinTaskHandler {
XxlJobHelper
.
handleFail
();
}
}
/**
* 开票提醒定时推送
*
* @author zjp
* @param null
* @param null
* @return: null
* @date 2024/3/21 15:32
*/
*/
@XxlJob
(
value
=
"sev-platform:performanceSubscribePush"
)
public
void
performanceSubscribePush
()
{
try
{
...
...
@@ -102,6 +106,7 @@ public class KylinTaskHandler {
/**
* 退款失败自动处理
*
* @author zjp
* @param null
* @return: null
...
...
@@ -116,4 +121,19 @@ public class KylinTaskHandler {
XxlJobHelper
.
handleFail
();
}
}
@XxlJob
(
value
=
"sev-platform:syncDamai"
)
public
void
syncDamaiHandler
()
{
try
{
String
param
=
XxlJobHelper
.
getJobParam
();
if
(
param
==
null
||
param
.
isEmpty
())
{
XxlJobHelper
.
handleFail
(
"performancesId is required"
);
return
;
}
XxlJobHelper
.
handleSuccess
(
"结果:"
+
feignPlatformTaskClient
.
syncDamai
(
param
).
getData
());
}
catch
(
Exception
e
)
{
XxlJobHelper
.
log
(
e
);
XxlJobHelper
.
handleFail
();
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/pom.xml
View file @
8dd2fcaf
...
...
@@ -139,6 +139,20 @@
<artifactId>
liquident-common-erp
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-kylin-do
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
taobao-sdk-id
</groupId>
<artifactId>
taobao-sdk
</artifactId>
<version>
1.0.0
</version>
<type>
jar
</type>
<scope>
system
</scope>
<systemPath>
${project.basedir}/lib/taobao-sdk-java-auto_1600401599540-20210607.jar
</systemPath>
</dependency>
</dependencies>
<build>
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/PlatformDamaiController.java
0 → 100644
View file @
8dd2fcaf
package
com
.
liquidnet
.
service
.
platform
.
controller
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.service.other.DamaiService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/platform/damai"
)
public
class
PlatformDamaiController
{
@Autowired
private
DamaiService
damaiService
;
@ApiOperation
(
"同步大麦"
)
@PostMapping
(
value
=
"/sync"
)
public
ResponseDto
<
Boolean
>
syncDamai
(
@RequestParam
(
"performancesId"
)
String
performancesId
)
{
boolean
result
=
damaiService
.
sycPerformance
(
performancesId
);
return
ResponseDto
.
success
(
result
);
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/impl/PlatformDamaiServiceImpl.java
0 → 100644
View file @
8dd2fcaf
package
com
.
liquidnet
.
service
.
platform
.
service
.
impl
;
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.service.kylin.dao.OrderPushDamaiDto
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.mapper.*
;
import
com.liquidnet.service.kylin.service.other.DamaiService
;
import
com.liquidnet.service.platform.utils.TaobaoTicketUtils
;
import
com.liquidnet.service.slime.dto.vo.SlimeFieldsVo
;
import
com.taobao.api.TaobaoClient
;
import
com.taobao.api.internal.util.StringUtils
;
import
com.taobao.api.request.*
;
import
com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest.ThirdTicketPushOpenParam
;
import
com.taobao.api.request.AlibabaDamaiMevOpenPushitemRequest.PushTicketItemPushOpenParam
;
import
com.taobao.api.request.AlibabaDamaiMevOpenPushperformRequest.ThirdPerformPushOpenParam
;
import
com.taobao.api.request.AlibabaDamaiMevOpenPushprojectRequest.ThirdProjectPushOpenParam
;
import
com.taobao.api.response.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 巡演 服务实现类 (Platform Clone)
* </p>
*/
@Service
@Slf4j
public
class
PlatformDamaiServiceImpl
extends
ServiceImpl
<
KylinRoadShowsMapper
,
KylinRoadShows
>
implements
DamaiService
{
@Autowired
private
TaobaoTicketUtils
taobaoTicketUtils
;
@Autowired
private
KylinOrderTicketsMapper
orderTicketsMapper
;
@Autowired
private
KylinPerformancesMapper
performancesMapper
;
@Autowired
private
KylinPerformanceRelationsMapper
performanceRelationsMapper
;
@Autowired
private
KylinTicketTimesMapper
ticketTimesMapper
;
@Autowired
private
KylinTicketTimeRelationMapper
ticketTimeRelationMapper
;
@Autowired
private
KylinTicketsMapper
ticketsMapper
;
@Autowired
private
KylinTicketRelationsMapper
ticketRelationsMapper
;
@Autowired
private
KylinTicketStatusMapper
ticketStatusMapper
;
@Autowired
private
MongoTemplate
mongoTemplate
;
private
ArrayList
<
Long
>
empty
=
new
ArrayList
<>();
int
orderCountAll
=
0
;
@Override
public
Boolean
sycPerformance
(
String
performanceId
)
{
try
{
empty
.
clear
();
orderCountAll
=
0
;
TaobaoClient
client
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenPushprojectRequest
req
=
new
AlibabaDamaiMevOpenPushprojectRequest
();
ThirdProjectPushOpenParam
obj1
=
new
ThirdProjectPushOpenParam
();
KylinPerformances
performanceData
=
performancesMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformances
>().
eq
(
"performances_id"
,
performanceId
));
KylinPerformanceRelations
performanceRelationData
=
performanceRelationsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceRelations
>().
eq
(
"performance_id"
,
performanceId
));
obj1
.
setPicUrl
(
performanceData
.
getImgPoster
());
long
performanceKey
=
IDGenerator
.
getDamaiCode
(
performanceData
.
getPerformancesId
());
obj1
.
setProjectId
(
performanceKey
);
obj1
.
setProjectName
(
performanceData
.
getTitle
());
if
(
performanceData
.
getCityId
().
equals
(
6977
))
{
obj1
.
setCityId
(
110100L
);
}
else
if
(
performanceData
.
getCityId
().
equals
(
3833
))
{
obj1
.
setCityId
(
520100L
);
}
else
{
// 520100
SlimeFieldsVo
fieldsVo
=
getFieldsVoByFieldId
(
performanceRelationData
.
getFieldId
());
String
cityId
=
fieldsVo
!=
null
?
fieldsVo
.
getCityId
()
:
"110100"
;
// Default or handle null
if
(
fieldsVo
==
null
)
{
log
.
warn
(
"Field not found for fieldId: {}"
,
performanceRelationData
.
getFieldId
());
}
obj1
.
setCityId
(
Long
.
parseLong
(
cityId
));
}
obj1
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj1
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
Long
venueId
=
sycField
(
performanceId
,
performanceRelationData
.
getFieldId
());
if
(
venueId
!=
0
)
{
obj1
.
setVenueId
(
venueId
);
}
req
.
setPushProjectParam
(
obj1
);
log
.
info
(
"[同步演出] 演出名称 = "
+
performanceData
.
getTitle
()
+
" 大麦演出id ="
+
performanceKey
);
AlibabaDamaiMevOpenPushprojectResponse
rsp
=
client
.
execute
(
req
);
log
.
info
(
"[BODY = {}]"
,
rsp
.
getBody
());
if
(
rsp
.
getResult
().
getSuccess
())
{
List
<
KylinTicketTimeRelation
>
timeRelation
=
ticketTimeRelationMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketTimeRelation
>().
eq
(
"performance_id"
,
performanceId
));
for
(
int
i
=
0
;
i
<
timeRelation
.
size
();
i
++)
{
KylinTicketTimes
timeData
=
ticketTimesMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketTimes
>()
.
eq
(
"ticket_times_id"
,
timeRelation
.
get
(
i
).
getTimesId
()));
boolean
result
=
sycTimes
(
performanceKey
,
timeData
,
venueId
);
if
(!
result
)
{
return
false
;
}
}
log
.
info
(
"[ 同步大麦-完成 ]"
);
return
true
;
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
// Local implementation of DataUtils.getFieldsVoByFieldId logic
private
SlimeFieldsVo
getFieldsVoByFieldId
(
String
fieldId
)
{
return
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"fieldId"
).
is
(
fieldId
)),
SlimeFieldsVo
.
class
,
SlimeFieldsVo
.
class
.
getSimpleName
());
}
public
Long
sycField
(
String
performanceId
,
String
fieldId
)
{
try
{
TaobaoClient
client
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenPushvenueRequest
req
=
new
AlibabaDamaiMevOpenPushvenueRequest
();
AlibabaDamaiMevOpenPushvenueRequest
.
ThirdVenuePushOpenParam
obj1
=
new
AlibabaDamaiMevOpenPushvenueRequest
.
ThirdVenuePushOpenParam
();
obj1
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj1
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
SlimeFieldsVo
fieldsVo
=
getFieldsVoByFieldId
(
fieldId
);
if
(
fieldsVo
==
null
)
{
return
0L
;
}
obj1
.
setVenueId
(
Long
.
parseLong
(
fieldsVo
.
getFieldId
()));
obj1
.
setVenueName
(
fieldsVo
.
getName
());
obj1
.
setVenueAddress
(
fieldsVo
.
getAddress
());
req
.
setPushVenueParam
(
obj1
);
AlibabaDamaiMevOpenPushvenueResponse
rsp
=
client
.
execute
(
req
);
log
.
info
(
"[同步场地] 场地名称 = "
+
obj1
.
getVenueName
()
+
" 大麦场地id ="
+
obj1
.
getVenueId
());
log
.
info
(
"[BODY = {}]"
,
rsp
.
getBody
());
if
(!
rsp
.
getResult
().
getSuccess
())
{
return
0L
;
}
return
obj1
.
getVenueId
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
0L
;
}
}
@Override
public
Boolean
sycTimes
(
long
performancesmId
,
KylinTicketTimes
timesData
,
Long
venueId
)
{
try
{
TaobaoClient
client
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenPushperformRequest
req
=
new
AlibabaDamaiMevOpenPushperformRequest
();
ThirdPerformPushOpenParam
obj1
=
new
ThirdPerformPushOpenParam
();
long
ticketTimesKey
=
IDGenerator
.
getDamaiCode
(
timesData
.
getTicketTimesId
());
obj1
.
setPerformId
(
ticketTimesKey
);
obj1
.
setPerformName
(
timesData
.
getTitle
());
obj1
.
setProjectId
(
performancesmId
);
obj1
.
setVenueId
(
venueId
);
obj1
.
setStartTime
(
StringUtils
.
parseDateTime
(
timesData
.
getUseStart
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
))));
obj1
.
setEndTime
(
StringUtils
.
parseDateTime
(
timesData
.
getUseEnd
().
plusDays
(
1
).
minusSeconds
(
1L
)
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
))));
obj1
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj1
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
req
.
setPushPerformParam
(
obj1
);
log
.
info
(
"[同步场次] 场次名称 = "
+
timesData
.
getTitle
()
+
" 大麦场次id ="
+
ticketTimesKey
);
AlibabaDamaiMevOpenPushperformResponse
rsp
=
client
.
execute
(
req
);
if
(
rsp
.
getResult
().
getSuccess
())
{
List
<
KylinTicketRelations
>
ticketRelation
=
ticketRelationsMapper
.
selectList
(
new
UpdateWrapper
<
KylinTicketRelations
>().
eq
(
"times_id"
,
timesData
.
getTicketTimesId
()));
for
(
int
i
=
0
;
i
<
ticketRelation
.
size
();
i
++)
{
if
(
null
!=
ticketStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTicketStatus
>()
.
eq
(
"ticket_id"
,
ticketRelation
.
get
(
i
).
getTicketId
()).
eq
(
"sync_damai"
,
1
)))
{
KylinTickets
ticketData
=
ticketsMapper
.
selectOne
(
new
UpdateWrapper
<
KylinTickets
>()
.
eq
(
"tickets_id"
,
ticketRelation
.
get
(
i
).
getTicketId
()));
boolean
result
=
sycTicket
(
ticketTimesKey
,
ticketData
);
if
(!
result
)
{
return
false
;
}
}
}
return
true
;
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
@Override
public
Boolean
sycTicket
(
long
timemId
,
KylinTickets
ticketsData
)
{
try
{
TaobaoClient
client
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenPushitemRequest
req
=
new
AlibabaDamaiMevOpenPushitemRequest
();
PushTicketItemPushOpenParam
obj1
=
new
PushTicketItemPushOpenParam
();
long
ticketIdKey
=
IDGenerator
.
getDamaiCode
(
ticketsData
.
getTicketsId
());
obj1
.
setItemId
(
ticketIdKey
);
obj1
.
setItemName
(
ticketsData
.
getTitle
());
obj1
.
setItemPrice
(
ticketsData
.
getPrice
().
longValue
()
*
100
);
obj1
.
setPerformId
(
timemId
);
obj1
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj1
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
req
.
setPushItemParam
(
obj1
);
log
.
info
(
"[同步票种] 票种名称 = "
+
ticketsData
.
getTitle
()
+
" 大麦票种id ="
+
ticketIdKey
+
" 票种价格 = "
+
ticketsData
.
getPrice
());
AlibabaDamaiMevOpenPushitemResponse
rsp
=
client
.
execute
(
req
);
if
(
rsp
.
getResult
().
getSuccess
())
{
TaobaoClient
client2
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenPushitemRequest
req2
=
new
AlibabaDamaiMevOpenPushitemRequest
();
PushTicketItemPushOpenParam
obj12
=
new
PushTicketItemPushOpenParam
();
long
ticketIdKey2
=
Long
.
valueOf
(
ticketIdKey
+
""
.
concat
(
"010"
));
obj12
.
setItemId
(
ticketIdKey2
);
obj12
.
setItemName
(
ticketsData
.
getTitle
()
+
"-登登登VIP"
);
obj12
.
setItemPrice
(
ticketsData
.
getPrice
().
longValue
()
*
100
);
obj12
.
setPerformId
(
timemId
);
obj12
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj12
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
req2
.
setPushItemParam
(
obj12
);
log
.
info
(
"[同步票种] 票种名称 = "
+
ticketsData
.
getTitle
()
+
"-登登登VIP 大麦票种id ="
+
ticketIdKey
+
" 票种价格 = "
+
ticketsData
.
getPrice
());
AlibabaDamaiMevOpenPushitemResponse
rsp2
=
client2
.
execute
(
req2
);
if
(
rsp2
.
getResult
().
getSuccess
())
{
return
sycOrder
(
timemId
,
ticketsData
.
getTicketsId
(),
ticketIdKey
,
ticketIdKey2
);
}
else
{
return
false
;
}
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
@Override
public
Boolean
sycOrder
(
long
timemId
,
String
ticketsId
,
long
ticketsmId
,
long
ticketIdMemberKey
)
{
try
{
TaobaoClient
client
=
taobaoTicketUtils
.
initTaobaoClient
();
AlibabaDamaiMevOpenBatchpushticketRequest
req
=
new
AlibabaDamaiMevOpenBatchpushticketRequest
();
List
<
OrderPushDamaiDto
>
data
=
orderTicketsMapper
.
pushDamaiDetailsList
(
ticketsId
);
log
.
info
(
"[同步订单] 票种张数 = "
+
data
.
size
()
+
" 票种id ="
+
ticketsId
);
int
forSize
=
100
;
int
orderCount
=
0
;
int
forCount
=
data
.
size
()
%
forSize
==
0
?
data
.
size
()
/
forSize
:
(
data
.
size
()
/
forSize
)
+
1
;
for
(
int
i
=
0
;
i
<
forCount
;
i
++)
{
List
<
ThirdTicketPushOpenParam
>
list2
=
new
ArrayList
<>();
for
(
int
y
=
0
;
y
<
forSize
;
y
++)
{
if
((
i
*
forSize
+
y
)
==
data
.
size
())
{
break
;
}
OrderPushDamaiDto
item
=
data
.
get
(
i
*
forSize
+
y
);
ThirdTicketPushOpenParam
obj3
=
new
ThirdTicketPushOpenParam
();
long
orderTicketEntitiesKey
;
if
(
item
.
getIsMember
()
==
1
)
{
orderTicketEntitiesKey
=
Long
.
valueOf
(
IDGenerator
.
getDamaiCode
(
item
.
getOrderTicketEntitiesId
()).
toString
().
concat
(
"010"
));
}
else
{
orderTicketEntitiesKey
=
Long
.
valueOf
(
IDGenerator
.
getDamaiCode
(
item
.
getOrderTicketEntitiesId
()).
toString
().
concat
(
"020"
));
}
long
orderIdKey
=
IDGenerator
.
getDamaiCode
(
item
.
getOrderTicketsId
());
if
(
item
.
getIsPayment
()
==
3
||
item
.
getIsPayment
()
==
2
)
{
taobaoTicketUtils
.
withdrawDamaiOrder
(
timemId
,
orderTicketEntitiesKey
);
}
else
if
(
item
.
getTransferStatus
()
==
2
||
item
.
getTransferStatus
()
==
6
)
{
taobaoTicketUtils
.
withdrawDamaiOrder
(
timemId
,
orderTicketEntitiesKey
);
}
else
{
if
(
item
.
getEnterType
()
==
0
&&
!
item
.
getEnterName
().
equals
(
""
))
{
log
.
info
(
"[入场人错误数据] 入场人id = "
+
item
.
getOrderTicketEntitiesId
()
+
" 入场人 name = "
+
item
.
getEnterName
());
}
if
(
empty
.
contains
(
orderTicketEntitiesKey
))
{
log
.
info
(
"[ ORDER COPY ] orderId = "
+
orderTicketEntitiesKey
);
orderTicketEntitiesKey
=
Long
.
parseLong
(
orderTicketEntitiesKey
+
"1"
);
}
empty
.
add
(
orderTicketEntitiesKey
);
orderCount
+=
1
;
orderCountAll
+=
1
;
list2
.
add
(
obj3
);
obj3
.
setUserName
(
item
.
getEnterName
());
// 用户名 入场人姓名
obj3
.
setCertificateNo
(
item
.
getEnterIdCode
());
// 证件号 入场人身份证
obj3
.
setOrderUserMobile
(
item
.
getEnterMobile
());
// 用户手机号 入场人手机号
obj3
.
setCertificateType
(
item
.
getEnterType
().
longValue
());
// 证件内容 入场人证件type
try
{
obj3
.
setPayTime
(
new
java
.
text
.
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
parse
(
item
.
getTimePay
()));
// 支付时间
}
catch
(
java
.
text
.
ParseException
e
)
{
log
.
error
(
"Parse pay time error"
,
e
);
}
obj3
.
setPerformId
(
timemId
);
// 场次id
if
(
item
.
getIsMember
()
==
1
)
{
obj3
.
setExt
(
"登登登VIP"
);
obj3
.
setTicketItemId
(
ticketIdMemberKey
);
}
else
{
obj3
.
setExt
(
"登登登VIP"
);
obj3
.
setTicketItemId
(
ticketsmId
);
}
obj3
.
setQrCode
(
"http://m.zhengzai.tv?c="
+
IDGenerator
.
ticketQrCode
(
item
.
getOrderTicketEntitiesId
()));
obj3
.
setVoucherId
(
orderTicketEntitiesKey
);
// 票单号 入场人id
obj3
.
setOrderId
(
orderIdKey
);
// 订单id orderId
obj3
.
setMediumType
(
item
.
getGetTicketType
().
equals
(
"express"
)
?
1L
:
2L
);
// 票类型 快递 电子
obj3
.
setSupplierSecret
(
taobaoTicketUtils
.
getSupplierSecret
());
obj3
.
setSystemId
(
taobaoTicketUtils
.
getSystemId
());
obj3
.
setSeatType
(
1L
);
obj3
.
setTicketType
(
1L
);
// 票类型
}
}
req
.
setThirdTicketSetOpenParamList
(
list2
);
if
(
list2
.
size
()
==
0
)
{
return
true
;
}
else
{
AlibabaDamaiMevOpenBatchpushticketResponse
rsp
=
client
.
execute
(
req
);
if
(!
rsp
.
getResult
().
getSuccess
())
{
return
false
;
}
}
}
log
.
info
(
"[ ORDER COUNT ] orderCount = "
+
orderCount
);
log
.
info
(
"[ ORDER COUNT ALL ] orderCount = "
+
orderCountAll
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/TaobaoTicketUtils.java
0 → 100644
View file @
8dd2fcaf
package
com
.
liquidnet
.
service
.
platform
.
utils
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
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.taobao.api.DefaultTaobaoClient
;
import
com.taobao.api.TaobaoClient
;
import
com.taobao.api.request.AlibabaDamaiMevOpenWithdrawticketRequest
;
import
com.taobao.api.response.AlibabaDamaiMevOpenWithdrawticketResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
@Slf4j
public
class
TaobaoTicketUtils
{
private
String
URL
=
"http://gw.api.taobao.com/router/rest"
;
private
String
APPKEY
=
"27542597"
;
private
String
SECRET
=
"900025efc616fd2446344bb8fa21d039"
;
private
String
SUPPLIER_SECRET
=
"444d0752439f921a75eaf5951a8bc03c"
;
private
Long
SYSTEM_ID
=
15669L
;
// private String url = "http://gw.api.tbsandbox.com/router/rest";
// private String appkey = "4272";
// private String secret = "0ebbcccfee18d7ad1aebc5b135ffa906";
private
TaobaoClient
client
=
null
;
public
TaobaoClient
initTaobaoClient
()
{
if
(
client
==
null
)
{
client
=
new
DefaultTaobaoClient
(
URL
,
APPKEY
,
SECRET
);
}
return
client
;
}
public
String
getSupplierSecret
()
{
return
SUPPLIER_SECRET
;
}
public
Long
getSystemId
()
{
return
SYSTEM_ID
;
}
/**
* @param timesId 场次的id
* @param orderEntitiesId 入场人的id
* @return
*/
public
boolean
withdrawDamaiOrder
(
long
timesId
,
long
orderEntitiesId
)
{
try
{
TaobaoClient
client
=
initTaobaoClient
();
AlibabaDamaiMevOpenWithdrawticketRequest
req
=
new
AlibabaDamaiMevOpenWithdrawticketRequest
();
AlibabaDamaiMevOpenWithdrawticketRequest
.
TicketIdOpenParam
obj1
=
new
AlibabaDamaiMevOpenWithdrawticketRequest
.
TicketIdOpenParam
();
obj1
.
setPerformId
(
timesId
);
// 场次id
obj1
.
setVoucherId
(
orderEntitiesId
);
// 票单号 入场人id
obj1
.
setSupplierSecret
(
SUPPLIER_SECRET
);
obj1
.
setSystemId
(
SYSTEM_ID
);
req
.
setTicketIdOpenParam
(
obj1
);
AlibabaDamaiMevOpenWithdrawticketResponse
rsp
=
client
.
execute
(
req
);
return
rsp
.
getResult
().
getSuccess
();
}
catch
(
Exception
e
)
{
return
false
;
}
}
public
boolean
refundDamaiOrder
(
KylinOrderTicketVo
orderData
,
KylinPerformanceVo
vo
)
{
try
{
int
isSysDamai
=
0
;
for
(
int
x
=
0
;
x
<
vo
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
vo
.
getTicketTimeList
().
get
(
x
);
for
(
int
y
=
0
;
y
<
timeItem
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
timeItem
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getTicketsId
().
equals
(
orderData
.
getTicketId
()))
{
isSysDamai
=
ticketItem
.
getSysDamai
();
break
;
}
}
}
if
(
isSysDamai
==
1
)
{
List
<
KylinOrderTicketEntitiesVo
>
listData
=
orderData
.
getEntitiesVoList
();
for
(
int
i
=
0
;
i
<
listData
.
size
();
i
++)
{
KylinOrderTicketEntitiesVo
item
=
listData
.
get
(
i
);
long
ticketTimesKey
;
if
(
item
.
getTicketId
().
length
()
>
13
)
{
ticketTimesKey
=
Long
.
valueOf
(
IDGenerator
.
getDamaiCode
(
item
.
getTimeId
()));
}
else
{
ticketTimesKey
=
Long
.
parseLong
(
item
.
getTimeId
());
}
long
orderTicketEntitiesKey
;
// if (item.getOrderTicketEntitiesId().length() > 13) {
// orderTicketEntitiesKey =
// Long.valueOf(IDGenerator.getDamaiCode(item.getOrderTicketEntitiesId()));
// } else {
// orderTicketEntitiesKey = Long.valueOf(item.getOrderTicketEntitiesId());//票单号
// 入场人id
// }
if
(
orderData
.
getIsMember
()
==
1
)
{
orderTicketEntitiesKey
=
Long
.
valueOf
(
IDGenerator
.
getDamaiCode
(
item
.
getOrderTicketEntitiesId
()).
toString
().
concat
(
"010"
));
}
else
{
orderTicketEntitiesKey
=
Long
.
valueOf
(
IDGenerator
.
getDamaiCode
(
item
.
getOrderTicketEntitiesId
()).
toString
().
concat
(
"020"
));
}
if
(
item
.
getIsPayment
()
==
2
)
{
withdrawDamaiOrder
(
ticketTimesKey
,
orderTicketEntitiesKey
);
}
}
return
true
;
}
return
true
;
}
catch
(
Exception
e
)
{
log
.
info
(
"REFUND DAMAI ERROR = {}"
,
e
);
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