记得上下班打卡 | 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
6b4261b4
Commit
6b4261b4
authored
Mar 11, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'refs/heads/jxl-260205-damai' into container-test
parents
82870da9
34349732
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1070 additions
and
13 deletions
+1070
-13
PerformanceStep2Param.java
...uidnet/service/kylin/dto/param/PerformanceStep2Param.java
+3
-0
DamaiService.java
...m/liquidnet/service/kylin/service/other/DamaiService.java
+4
-0
KylinOrderTicketEntities.java
...uidnet/service/kylin/entity/KylinOrderTicketEntities.java
+21
-0
KylinPerformanceStatus.java
...iquidnet/service/kylin/entity/KylinPerformanceStatus.java
+6
-0
KylinOrderTicketsMapper.java
...quidnet/service/kylin/mapper/KylinOrderTicketsMapper.java
+10
-0
KylinPerformancesMapper.java
...quidnet/service/kylin/mapper/KylinPerformancesMapper.java
+5
-0
KylinOrderTicketsMapper.xml
...iquidnet.service.kylin.mapper/KylinOrderTicketsMapper.xml
+51
-0
KylinPerformancesMapper.xml
...iquidnet.service.kylin.mapper/KylinPerformancesMapper.xml
+12
-0
FeignPlatformTaskClient.java
...net/service/feign/kylin/task/FeignPlatformTaskClient.java
+14
-7
KylinTaskHandler.java
...idnet/service/executor/main/handler/KylinTaskHandler.java
+22
-6
damai_sync_migration.sql
...idnet-service-platform-impl/docu/damai_sync_migration.sql
+9
-0
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
+578
-0
DataUtils.java
.../java/com/liquidnet/service/platform/utils/DataUtils.java
+12
-0
DateUtils.java
.../java/com/liquidnet/service/platform/utils/DateUtils.java
+164
-0
TaobaoTicketUtils.java
...m/liquidnet/service/platform/utils/TaobaoTicketUtils.java
+120
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/PerformanceStep2Param.java
View file @
6b4261b4
...
...
@@ -54,6 +54,9 @@ public class PerformanceStep2Param implements Serializable,Cloneable {
@NotNull
(
message
=
"须知提醒不能为空"
)
private
Integer
noticeRemindStatus
;
@ApiModelProperty
(
value
=
"是否开启大麦同步 0:关闭 1:开启"
,
example
=
"0"
)
private
Integer
isSyncDamai
;
private
static
final
PerformanceStep2Param
obj
=
new
PerformanceStep2Param
();
public
static
PerformanceStep2Param
getNew
()
{
try
{
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/other/DamaiService.java
View file @
6b4261b4
package
com
.
liquidnet
.
service
.
kylin
.
service
.
other
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.entity.KylinTicketTimes
;
import
com.liquidnet.service.kylin.entity.KylinTickets
;
...
...
@@ -15,4 +16,7 @@ public interface DamaiService {
//订单
Boolean
sycOrder
(
long
timeId
,
String
ticketsId
,
long
ticketsmId
,
long
ticketIdMemberKey
);
//定时同步大麦(扫描所有开启同步的演出)
ResponseDto
<
Boolean
>
scheduledSyncDamai
();
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/entity/KylinOrderTicketEntities.java
View file @
6b4261b4
package
com
.
liquidnet
.
service
.
kylin
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.math.BigDecimal
;
...
...
@@ -141,6 +142,26 @@ public class KylinOrderTicketEntities implements Serializable ,Cloneable {
};
}
private
Integer
isDamaiPushSynced
;
private
Integer
isDamaiWithdrawSynced
;
/** 以下字段均为非数据库字段,仅定时同步大麦查询时携带,不参与 MyBatis-Plus 自动 INSERT/UPDATE **/
@TableField
(
exist
=
false
)
private
Integer
syncType
;
@TableField
(
exist
=
false
)
private
String
timePay
;
@TableField
(
exist
=
false
)
private
Integer
isMember
;
@TableField
(
exist
=
false
)
private
String
getTicketType
;
@TableField
(
exist
=
false
)
private
Integer
transferStatus
;
private
static
final
KylinOrderTicketEntities
obj
=
new
KylinOrderTicketEntities
();
public
static
KylinOrderTicketEntities
getNew
()
{
try
{
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/entity/KylinPerformanceStatus.java
View file @
6b4261b4
...
...
@@ -160,6 +160,12 @@ public class KylinPerformanceStatus implements Serializable ,Cloneable{
*/
private
Integer
fieldAuditStatus
;
/** 是否开启大麦同步 0:关闭 1:开启 */
private
Integer
isSyncDamai
;
/** 该演出的场地场次票种基础信息是否已推过大麦 0否 1是 */
private
Integer
isDamaiBasicSynced
;
/**
* 创建时间
*/
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinOrderTicketsMapper.java
View file @
6b4261b4
...
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.dao.*
;
import
com.liquidnet.service.kylin.entity.KylinOrderTicketEntities
;
import
com.liquidnet.service.kylin.entity.KylinOrderTickets
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -61,4 +62,13 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
List
<
String
>
getAgentIdListByPerId
(
@Param
(
"performancesId"
)
String
performancesId
);
Map
selectNumAndPrice
(
@Param
(
"performancesId"
)
String
performancesId
,
@Param
(
"ticketsId"
)
String
ticketsId
);
List
<
KylinOrderTicketEntities
>
getDamaiOrderSyncList
(
@Param
(
"performanceId"
)
String
performanceId
);
int
updateDamaiPushSyncStatus
(
@Param
(
"ids"
)
List
<
String
>
ids
,
@Param
(
"status"
)
Integer
status
);
int
updateDamaiWithdrawSyncStatus
(
@Param
(
"ids"
)
List
<
String
>
ids
,
@Param
(
"status"
)
Integer
status
);
// 撤单场景:一次 SQL 同时更新推单和撤单状态(减少数据库操作)
int
updateDamaiWithdrawAndPushSyncStatus
(
@Param
(
"ids"
)
List
<
String
>
ids
,
@Param
(
"status"
)
Integer
status
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinPerformancesMapper.java
View file @
6b4261b4
...
...
@@ -5,6 +5,7 @@ import com.liquidnet.service.kylin.dao.*;
import
com.liquidnet.service.kylin.dao.report.KylinPerformanceSubscribeStatisticalDao
;
import
com.liquidnet.service.kylin.dao.report.KylinPerformanceSubscribeTicketStatisticalDao
;
import
com.liquidnet.service.kylin.dao.report.KylinPerformancesDto
;
import
com.liquidnet.service.kylin.entity.KylinPerformanceStatus
;
import
com.liquidnet.service.kylin.entity.KylinPerformances
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -126,4 +127,8 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
* @date 2024/3/21 18:02
*/
void
updatePerformanceSubscribePushById
(
@Param
(
"ids"
)
List
<
Integer
>
ids
);
List
<
KylinPerformanceStatus
>
getDamaiSyncPerformances
();
int
updateDamaiBasicSynced
(
@Param
(
"performancesId"
)
String
performancesId
,
@Param
(
"val"
)
Integer
val
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinOrderTicketsMapper.xml
View file @
6b4261b4
...
...
@@ -577,4 +577,55 @@ WHERE kotr.performance_id = #{performanceId}
AND kots.status IN (1, 3, 6)
AND kots.transfer_status in (0, 1, 3, 5);
</select>
<select
id=
"getDamaiOrderSyncList"
resultType=
"com.liquidnet.service.kylin.entity.KylinOrderTicketEntities"
>
SELECT ote.order_ticket_entities_id, ote.time_id, ote.ticket_id, ote.performance_id,
ote.enter_name, ote.enter_id_code, ote.enter_type, ote.enter_mobile, ote.is_payment,
ote.is_damai_push_synced,
ot.time_pay, ot.order_tickets_id AS order_id, ot.get_ticket_type,
otr.is_member,
ots.transfer_status,
CASE
WHEN ote.is_payment = 1 AND ote.is_damai_push_synced = 0 THEN 1
WHEN (ote.is_payment IN (2, 3) OR ots.transfer_status IN (2, 6)) AND ote.is_damai_withdraw_synced = 0 THEN 2
END AS sync_type
FROM kylin_order_ticket_entities ote
LEFT JOIN kylin_order_tickets ot ON ote.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations otr ON otr.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_status ots ON ots.order_id = ot.order_tickets_id
WHERE ote.performance_id = #{performanceId}
AND (
(ote.is_payment = 1 AND ote.is_damai_push_synced = 0)
OR
((ote.is_payment IN (2, 3) OR ots.transfer_status IN (2, 6)) AND ote.is_damai_withdraw_synced = 0)
)
LIMIT 200
</select>
<update
id=
"updateDamaiPushSyncStatus"
>
UPDATE kylin_order_ticket_entities
SET is_damai_push_synced = #{status}
WHERE order_ticket_entities_id IN
<foreach
collection=
"ids"
item=
"id"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</update>
<update
id=
"updateDamaiWithdrawSyncStatus"
>
UPDATE kylin_order_ticket_entities
SET is_damai_withdraw_synced = #{status}
WHERE order_ticket_entities_id IN
<foreach
collection=
"ids"
item=
"id"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</update>
<!-- 撤单场景:一次 SQL 同时更新推单和撤单状态,减少数据库操作 -->
<update
id=
"updateDamaiWithdrawAndPushSyncStatus"
>
UPDATE kylin_order_ticket_entities
SET is_damai_withdraw_synced = #{status}, is_damai_push_synced = #{status}
WHERE order_ticket_entities_id IN
<foreach
collection=
"ids"
item=
"id"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</update>
</mapper>
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinPerformancesMapper.xml
View file @
6b4261b4
...
...
@@ -1327,4 +1327,16 @@ GROUP BY user_mobile,tickets_id;
#{id}
</foreach>
</update>
<select
id=
"getDamaiSyncPerformances"
resultType=
"com.liquidnet.service.kylin.entity.KylinPerformanceStatus"
>
SELECT kps.performance_id, kps.is_damai_basic_synced
FROM kylin_performance_status kps
LEFT JOIN kylin_performances kp ON kp.performances_id = kps.performance_id
WHERE kps.is_sync_damai = 1
AND kps.status IN (3, 6, 7, 8, 9, 10)
AND kp.time_end > NOW()
</select>
<update
id=
"updateDamaiBasicSynced"
>
UPDATE kylin_performance_status SET is_damai_basic_synced = #{val} WHERE performance_id = #{performancesId}
</update>
</mapper>
liquidnet-bus-feign/liquidnet-api-feign-kylin/src/main/java/com/liquidnet/service/feign/kylin/task/FeignPlatformTaskClient.java
View file @
6b4261b4
...
...
@@ -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,32 @@ 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/scheduledSync"
)
ResponseDto
<
Boolean
>
scheduledSyncDamai
();
}
liquidnet-bus-service/liquidnet-service-executor-all/liquidnet-service-executor-main/src/main/java/com/liquidnet/service/executor/main/handler/KylinTaskHandler.java
View file @
6b4261b4
...
...
@@ -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,15 @@ public class KylinTaskHandler {
XxlJobHelper
.
handleFail
();
}
}
@XxlJob
(
value
=
"sev-platform:scheduledSyncDamai"
)
public
void
scheduledSyncDamaiHandler
()
{
try
{
XxlJobHelper
.
handleSuccess
(
"定时大麦同步结果:"
+
feignPlatformTaskClient
.
scheduledSyncDamai
().
getData
());
}
catch
(
Exception
e
)
{
XxlJobHelper
.
log
(
e
);
XxlJobHelper
.
handleFail
();
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/docu/damai_sync_migration.sql
0 → 100644
View file @
6b4261b4
-- 1. 商演同步大麦开关设计及防复推
ALTER
TABLE
`kylin_performances`
ADD
COLUMN
`is_sync_damai`
tinyint
(
2
)
DEFAULT
0
COMMENT
'是否开启大麦同步 0:关闭 1:开启'
,
ADD
COLUMN
`is_damai_basic_synced`
tinyint
(
2
)
DEFAULT
0
COMMENT
'该演出的场地场次票种基础信息是否已推过大麦 0否 1是'
;
-- 2. 入场人基本门票粒度的分离式同步流转追踪设计
ALTER
TABLE
`kylin_order_ticket_entities`
ADD
COLUMN
`is_damai_push_synced`
tinyint
(
2
)
DEFAULT
0
COMMENT
'正向推单至大麦状态: 0=待推(默认) 1=推送中 2=推送成功 3=推送失败'
,
ADD
COLUMN
`is_damai_withdraw_synced`
tinyint
(
2
)
DEFAULT
0
COMMENT
'逆向撤单(退单/转赠)至大麦状态: 0=待推(默认/初始) 1=推送中 2=推送成功 3=推送失败'
;
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/pom.xml
View file @
6b4261b4
...
...
@@ -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 @
6b4261b4
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.RestController
;
@RestController
@RequestMapping
(
"/platform/damai"
)
public
class
PlatformDamaiController
{
@Autowired
private
DamaiService
damaiService
;
@ApiOperation
(
"定时同步大麦(扫描所有开启同步的演出)"
)
@PostMapping
(
value
=
"/scheduledSync"
)
public
ResponseDto
<
Boolean
>
scheduledSyncDamai
()
{
return
damaiService
.
scheduledSyncDamai
();
}
}
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 @
6b4261b4
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/DataUtils.java
View file @
6b4261b4
...
...
@@ -524,4 +524,16 @@ public class DataUtils {
log
.
error
(
"回退券ERROR:{}"
,
e
);
}
}
// 【场地】获取详情
public
SlimeFieldsVo
getFieldsVoByFieldId
(
String
fieldId
)
{
String
key
=
SlimeRedisConst
.
INFO_FIELD
.
concat
(
fieldId
);
long
s
=
System
.
currentTimeMillis
();
SlimeFieldsVo
vo
=
(
SlimeFieldsVo
)
redisDataSourceUtil
.
getRedisKylinUtil
().
get
(
key
);
if
(
null
==
vo
)
{
vo
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"fieldId"
).
is
(
fieldId
)),
SlimeFieldsVo
.
class
,
SlimeFieldsVo
.
class
.
getSimpleName
());
redisDataSourceUtil
.
getRedisKylinUtil
().
set
(
SlimeRedisConst
.
INFO_FIELD
.
concat
(
fieldId
),
vo
);
}
return
vo
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/DateUtils.java
0 → 100644
View file @
6b4261b4
package
com
.
liquidnet
.
service
.
platform
.
utils
;
import
org.apache.commons.lang3.time.DateFormatUtils
;
import
java.lang.management.ManagementFactory
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
/**
* 时间工具类
*
* @author ruoyi
*/
public
class
DateUtils
extends
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
{
public
static
String
YYYY
=
"yyyy"
;
public
static
String
YYYY_MM
=
"yyyy-MM"
;
public
static
String
YYYY_MM_DD
=
"yyyy-MM-dd"
;
public
static
String
YYYYMMDDHHMMSS
=
"yyyyMMddHHmmss"
;
public
static
String
YYYY_MM_DD_HH_MM_SS
=
"yyyy-MM-dd HH:mm:ss"
;
private
static
String
[]
parsePatterns
=
{
"yyyy-MM-dd"
,
"yyyy-MM-dd HH:mm:ss"
,
"yyyy-MM-dd HH:mm"
,
"yyyy-MM"
,
"yyyy/MM/dd"
,
"yyyy/MM/dd HH:mm:ss"
,
"yyyy/MM/dd HH:mm"
,
"yyyy/MM"
,
"yyyy.MM.dd"
,
"yyyy.MM.dd HH:mm:ss"
,
"yyyy.MM.dd HH:mm"
,
"yyyy.MM"
};
/**
* 获取当前Date型日期
*
* @return Date() 当前日期
*/
public
static
Date
getNowDate
()
{
return
new
Date
();
}
/**
* 获取当前日期, 默认格式为yyyy-MM-dd
*
* @return String
*/
public
static
String
getDate
()
{
return
dateTimeNow
(
YYYY_MM_DD
);
}
public
static
final
String
getTime
()
{
return
dateTimeNow
(
YYYY_MM_DD_HH_MM_SS
);
}
public
static
final
String
dateTimeNow
()
{
return
dateTimeNow
(
YYYYMMDDHHMMSS
);
}
public
static
final
String
dateTimeNow
(
final
String
format
)
{
return
parseDateToStr
(
format
,
new
Date
());
}
public
static
final
String
dateTime
(
final
Date
date
)
{
return
parseDateToStr
(
YYYY_MM_DD
,
date
);
}
public
static
final
String
parseDateToStr
(
final
String
format
,
final
Date
date
)
{
return
new
SimpleDateFormat
(
format
).
format
(
date
);
}
public
static
final
Date
dateTime
(
final
String
format
,
final
String
ts
)
{
try
{
return
new
SimpleDateFormat
(
format
).
parse
(
ts
);
}
catch
(
ParseException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
/**
* 日期路径 即年/月/日 如2018/08/08
*/
public
static
final
String
datePath
()
{
Date
now
=
new
Date
();
return
DateFormatUtils
.
format
(
now
,
"yyyy/MM/dd"
);
}
/**
* 日期路径 即年/月/日 如20180808
*/
public
static
final
String
dateTime
()
{
Date
now
=
new
Date
();
return
DateFormatUtils
.
format
(
now
,
"yyyyMMdd"
);
}
/**
* 日期型字符串转化为日期 格式
*/
public
static
Date
parseDate
(
Object
str
)
{
if
(
str
==
null
)
{
return
null
;
}
try
{
return
parseDate
(
str
.
toString
(),
parsePatterns
);
}
catch
(
ParseException
e
)
{
return
null
;
}
}
/**
* 获取服务器启动时间
*/
public
static
Date
getServerStartDate
()
{
long
time
=
ManagementFactory
.
getRuntimeMXBean
().
getStartTime
();
return
new
Date
(
time
);
}
/**
* 计算相差天数
*/
public
static
int
differentDaysByMillisecond
(
Date
date1
,
Date
date2
)
{
return
Math
.
abs
((
int
)
((
date2
.
getTime
()
-
date1
.
getTime
())
/
(
1000
*
3600
*
24
)));
}
/**
* 计算两个时间差
*/
public
static
String
getDatePoor
(
Date
endDate
,
Date
nowDate
)
{
long
nd
=
1000
*
24
*
60
*
60
;
long
nh
=
1000
*
60
*
60
;
long
nm
=
1000
*
60
;
// long ns = 1000;
// 获得两个时间的毫秒时间差异
long
diff
=
endDate
.
getTime
()
-
nowDate
.
getTime
();
// 计算差多少天
long
day
=
diff
/
nd
;
// 计算差多少小时
long
hour
=
diff
%
nd
/
nh
;
// 计算差多少分钟
long
min
=
diff
%
nd
%
nh
/
nm
;
// 计算差多少秒//输出结果
// long sec = diff % nd % nh % nm / ns;
return
day
+
"天"
+
hour
+
"小时"
+
min
+
"分钟"
;
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/TaobaoTicketUtils.java
0 → 100644
View file @
6b4261b4
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